vooruit: curl heeft er een speciale functie voor.quote:Op dinsdag 4 oktober 2011 09:52 schreef GI het volgende:
Hij heeft wel een punt. Een schopje in de juiste richting ismoeilijk omdat er 100 richtingen zijn.
zijn de files alleen via ftp, of ook via http bereikbaar (kun je hotlinken)?quote:Op dinsdag 4 oktober 2011 09:31 schreef boem-dikkie het volgende:
[..]
Ik bedoel niet per se via FTP, maar hoe te embedden?
Haha, ik weet dat zoeken met Google makkelijk is. Het enige waar ik altijd over struikel is de termen die ik moet gebruiken om de juiste dingen te vinden. Vooral bij redelijk specifieke dingen.quote:Op dinsdag 4 oktober 2011 09:53 schreef GI het volgende:
[..]
Aangezien je de bestandlijst eigenlijk alleen maar nodig hebt kom je met " http://php.net/manual/en/function.ftp-rawlist.php " een heel eind denk ik.
http://www.php.net/manual/en/function.ftp-nlist.php
is ook een leuke
Google is your friend (Niet denigrerend bedoelt) " php get file list from ftp server "
Ik bedoelde dat jij een punt hadquote:Op dinsdag 4 oktober 2011 09:56 schreef GlowMouse het volgende:
[..]
vooruit: curl heeft er een speciale functie voor.
[..]
zijn de files alleen via ftp, of ook via http bereikbaar (kun je hotlinken)?
Ja, kan wel hotlinken.quote:Op dinsdag 4 oktober 2011 09:56 schreef GlowMouse het volgende:
[..]
vooruit: curl heeft er een speciale functie voor.
[..]
zijn de files alleen via ftp, of ook via http bereikbaar (kun je hotlinken)?
Dan zou ik via de ftplist een lijst ophalen en die dan via http://anderdomein.com/plaatje.jpg in je weergave opnemenquote:
Top. Ga ik vanavond meteen even proberen.quote:Op dinsdag 4 oktober 2011 09:57 schreef GI het volgende:
[..]
Dan zou ik via de ftplist een lijst ophalen en die dan via http://anderdomein.com/plaatje.jpg in je weergave opnemen
1 2 3 4 5 6 7 | function geteuro($contents){ return stripos($contents,'€') ? stripos($contents,'#8364') : null; break; return stripos($contents,'€') ? stripos($contents,'€') : null; break; return stripos($contents,'¤') ? stripos($contents,'¤') : null; break; return stripos($contents,'& euro ;') ? stripos($contents,'& euro ;') : null; break; } |
omdat?quote:Op dinsdag 4 oktober 2011 11:39 schreef Light het volgende:
Die code levert ook onverwachte resultaten op als de string begint met een euro-teken.
De functie gaat sowieso niet door na een return.quote:Op dinsdag 4 oktober 2011 11:42 schreef Crazy Harry het volgende:
De code is ongetwijfeld verre van perfect (ik ben niet heel ervaren in PHP).
Als het teken niet gevonden wordt, moet er niets (null) teruggeven worden, en mag hij niet verder gaan met de rest (break).
Dat laatste is misschien niet zo heel slim bedenk ik me nu
Aan de andere kant wordt er anders doorgegaan met de code terwijl het euro-teken al gevonden is. Maar omdat hij dan niet op een andere manier gevonden wordt, wordt alsnog null teruggegeven, vandaar de break.
Omdat stripos() dan 0 teruggeeft. En als de string niet gevonden wordt, krijg je false terug. In jouw geval is de afhandeling voor beide gevallen hetzelfde, je returnt beide keren null.quote:Op dinsdag 4 oktober 2011 11:42 schreef Crazy Harry het volgende:
De code is ongetwijfeld verre van perfect (ik ben niet heel ervaren in PHP).
Als het teken niet gevonden wordt, moet er niets (null) teruggeven worden, en mag hij niet verder gaan met de rest (break).
Dat laatste is misschien niet zo heel slim bedenk ik me nu
Aan de andere kant wordt er anders doorgegaan met de code terwijl het euro-teken al gevonden is. Maar omdat hij dan niet op een andere manier gevonden wordt, wordt alsnog null teruggegeven, vandaar de break.
Maar dat kan inderdaad ongetwijfeld beter.
[..]
omdat?
1 2 3 4 5 | if(stripos($contents,'¤') !== false) { // Er staat een ¤ in $content. return stripos($contents,'¤'); } |
Mja, dat verwachtte ik ook, alleen met testen deed ie dat eens wel, nu kan dat aan mijn test gelegen hebben. Nu overigens nog eens geprobeerd en gaat het wel goed...quote:Op dinsdag 4 oktober 2011 11:43 schreef Tijn het volgende:
De functie gaat sowieso niet door na een return.
Ik snap nog niet waarom het niet goed gaat, ik merk nu alleen maar met testen dat het inderdaad niet goed gaat.quote:Op dinsdag 4 oktober 2011 11:50 schreef Light het volgende:
[..]
Omdat stripos() dan 0 teruggeeft. En als de string niet gevonden wordt, krijg je false terug. In jouw geval is de afhandeling voor beide gevallen hetzelfde, je returnt beide keren null.
Dit werkt wel:
[ code verwijderd ]
Omdat er in jouw code geen onderscheid wordt gemaakt tussen 0 (het euro-teken staat aan het begin van de string) en false (het euro-teken is niet gevonden in de string).quote:Op dinsdag 4 oktober 2011 12:03 schreef Crazy Harry het volgende:
Ik snap nog niet waarom het niet goed gaat
Het heeft niks met de compacte syntax te maken. Als je in je conditie van je if-statement geen operators gebruikt, is er geen verschil tussen 0, false, null of een lege string/array.quote:Op dinsdag 4 oktober 2011 12:07 schreef Crazy Harry het volgende:
De compacte if statement ziet 0 als false begrijp ik daaruit?
Ik dacht namelijk dat het niets anders dan een compacte maar echte if-statement was, maar die werkt dus alleen met booleans dan?
Ah zo. Dat is een goeie om op te letten. Geldt dat voor andere talen ook dat je weet?quote:Op dinsdag 4 oktober 2011 12:13 schreef Tijn het volgende:
[..]
Het heeft niks met de compacte syntax te maken. Als je in je conditie van je if-statement geen operators gebruikt, is er geen verschil tussen 0, false, null of een lege string/array.
Dat is inderdaad wel een idee.quote:Op dinsdag 4 oktober 2011 12:14 schreef GlowMouse het volgende:
Als je mooiere code wilt, kun je beter $euros = array('¤','€', ...); definiëren en met foreach werken.
1 2 3 4 5 6 7 8 9 | $contents = file_get_contents('./prooi.html'); if (isset($contents)){ $euro = geteuro($contents); print (substr($contents,$euro,10)); } function geteuro($c){ return stripos($c,'& euro;') ? stripos($c,'& euro;') : null; } |
1 | $string = preg_replace("#\[code\](.+?)\[/code\]#is","<pre>\\1</pre>",$string); |
1 2 3 | preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", $html_body); |
Als dat een vraag is, is het antwoord nee. Wat dit met strtoupper te maken heeft zie ik ook niet.quote:Op dinsdag 4 oktober 2011 12:41 schreef Chandler het volgende:
als ik deze met de volgende regel omzet krijg ik dubbele enters?
1 2 3 4 | $string = preg_replace( "#\[code\](.+?)\[/code\]#ise", "<pre>' . str_replace(\"\r\n\r\n\",\"\r\n\", \"\\1\") . '</pre>", $string); |
Google Analytics?quote:Op woensdag 5 oktober 2011 09:58 schreef Cue_ het volgende:
Ik moet een scriptje schrijven die ervoor zorgt dat we kunnen loggen hoe vaak en welke users gebruik maken van bepaalde php pagina's. Zodat we oude troep kunnen wegdoen en de gebruikte kunnen verbeteren.
Misschien dat jullie mij een richting kunnen geven waar ik naar dien te zoeken of dat jullie hier al een goede site voor weten?
Dat is echt voor internetwebsites toch? Gaat om logging van pagina's die op een server staan en intern worden gebruikt.quote:
Kan het mishebben, maar geloof dat GA wel gaat werken.quote:Op woensdag 5 oktober 2011 10:28 schreef Cue_ het volgende:
[..]
Dat is echt voor internetwebsites toch? Gaat om logging van pagina's die op een server staan en intern worden gebruikt.
http://www.google.com/sup(...)cb263740621905&hl=enquote:In order for Google Analytics to populate reports for your intranet usage, your corporate network needs to reach the ga.js JavaScript at http://www.google-analytics.com/ga.js, http://www.google-analytics.com/__utm.gif, https://ssl.google-analytics.com/ga.js, https://ssl.google-analytics.com/__utm.gif.
If you can reach the above URL using your network's internet connection, you have satisfied the first requirement. Additionally, your intranet must be accessed using a fully qualified domain name (FQDN) such as http://intranet.example.com. The ga.js JavaScript will not work if your intranet is accessed using a non-FQDN (such ashttp://intranet).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | QUOTE <table width="100%" border="1" cellspacing="1" cellpadding="1" > <tr bgcolor="#FFFF00"> <th>Time/Date</th> <th>IP</th> <th>Referrer</th> <th>Browser</th> <th>Page</th> </tr> Next, copy and paste the following code to the page(s) on your site where you would like to log your users' information (most likely your main/index page): QUOTE <?php // Get user's time/date $time = date("F jS Y, h:iA"); // Get user's IP address $ip = $REMOTE_ADDR; // Get user's referrer $referer = $HTTP_REFERER; // Get user's browser $browser = $HTTP_USER_AGENT; // Get page user came from $page = $_SERVER['REQUEST_URI']; $fp = fopen("log.html", "a"); // Print user information to log.html file fputs($fp, " <tr> <td>$time</td> <td>$ip</td> <td><a href=$referer>$referer</a></td> <td>$browser</td> <td><a href=$page>$page</a></td></tr> "); fclose($fp); ?> |
Voor alleen loggen heb je aan de logfiles van je webserver al genoeg.quote:Op woensdag 5 oktober 2011 09:58 schreef Cue_ het volgende:
Ik moet een scriptje schrijven die ervoor zorgt dat we kunnen loggen hoe vaak en welke users gebruik maken van bepaalde php pagina's. Zodat we oude troep kunnen wegdoen en de gebruikte kunnen verbeteren.
Misschien dat jullie mij een richting kunnen geven waar ik naar dien te zoeken of dat jullie hier al een goede site voor weten?
Kijk hier eens naar:quote:Op dinsdag 4 oktober 2011 13:05 schreef Chandler het volgende:
Dat was het voorbeeld, zoals op PHP.net staat!
http://nl.php.net/preg_replace
vandaar dat ik dacht dat ik dit ook kon aanpassen om het met str_replace oid te kunnen laten werken bv; (let op #ise, extra e modifier)
[ code verwijderd ]
maar dit geeft dus een prachtige error
1 2 3 | <?php $str = preg_replace("/(ftp:\/\/[^ )\r\n!]+)/eim", "'<a href=\"\\1\" title=\"\\1\">'.shortenurl('\\1').'</a>'", $str); ?> |
Het wordt wat moeilijker ben ik bang. De bestanden die ik moet hebben staan op een NAS waarmee je moet inloggen met een wachtwoord en gebruikersnaam.quote:Op dinsdag 4 oktober 2011 09:56 schreef GlowMouse het volgende:
[..]
vooruit: curl heeft er een speciale functie voor.
[..]
zijn de files alleen via ftp, of ook via http bereikbaar (kun je hotlinken)?
1 2 3 4 5 6 7 8 | <?php $conn_id = ftp_connect('server'); $login_result = ftp_login($conn_id, 'gebruiker', 'wachtwoord'); $contents = ftp_nlist($conn_id, 'photo'); for ($i = 0 ; $i < count($contents) ; $i++) echo "<li>" . $contents[$i] . "</li>"; ftp_close($conn_id); ?> |
Misschien ./photo/map gebruiken?quote:Op woensdag 5 oktober 2011 17:15 schreef boem-dikkie het volgende:
[ code verwijderd ]
Weet iemand waarom ik een witte pagina krijg zodra ik submappen ga gebruiken op rij 4?
Als ik daar photo/map invul dan krijg ik een witte pagina. Als ik er -la voor zet krijg ik wel de inhoud te zien maar dan wordt het geoutput als ftp_rawlist en dat wil ik niet.
Weet je zeker dat de map bestaat? (Wat gebeurt er als je een map wilt uitlezen die niet bestaat?)quote:Op woensdag 5 oktober 2011 17:58 schreef boem-dikkie het volgende:
Ik krijg met een var_dump dit terug:
array(0) { }
Error reports geeft niks.
Uit de PHP docs van ftp_nlist:quote:Op woensdag 5 oktober 2011 18:04 schreef boem-dikkie het volgende:
Hij struikelt over spaties. Heb het al opgelost.
quote:The directory to be listed. This parameter can also include arguments, eg. ftp_nlist($conn_id, "-la /your/dir"); Note that this parameter isn't escaped so there may be some issues with filenames containing spaces and other characters.
Jep, had het ook al gevonden.quote:
LOL, ik ben er al achter waarom ik extra enters heb!!! komt door de enters die ik met nl2br toevoeg aan de <pre> inhoudt! deze moet ik dus verwijderenquote:Op woensdag 5 oktober 2011 14:05 schreef Pakspul het volgende:
[..]
Kijk hier eens naar:
http://www.talkincode.com(...)reg_replace-400.html
Volgens mij lijkt dit meeste op wat jij zoekt:
[ code verwijderd ]
Kan zo even niet testen, maar als je het nog niet lukt laat het even weten.
1 | $string = preg_replace("#\[code\](.+?)\[/code\]#ise","'<pre>'.str_replace(array('<br>','<br />'),'','\\1').'</pre>'",$string); |
quote:Op woensdag 5 oktober 2011 13:56 schreef Catbert het volgende:
dit is al snel een gevalletje "premature optimization".
1 | $update_database = mysql_query("UPDATE users SET `firstname` = '$firstname', `lastname` = '$lastname', `email` = '$email', `showemail` = '$showemail_option', `smoking` = '$smoking', `city` = '$city', `study` = '$study', `description` = '$description', `relation` = '$relation', `sex` = '$sex', `instrument` = '$instrument', `age` = '$age', `pet` = '$pet', `facebook` = '$facebook', `twitter` = '$twitter', `profile_image` = '$image' WHERE `user_id` = '".$_COOKIE['user']."' "); |
quote:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `user_id` = '10'' at line 1
Het is ook niet echt heel fraai om al die variabelen zo in je string quotes te houden, liever:quote:Op donderdag 6 oktober 2011 15:22 schreef dirkjo het volgende:
Waarschijnlijk zie ik iets snoeihard over het hoofd, maar ik krijg constant een error op deze lijn:
[ code verwijderd ]
[..]
1 | `profile_image` = '" . $image . "' |
Op dit moment krijgt elke variabel een mysql_remove_special_string(), zijn er nog meer die ik er aan zou moeten toevoegen?quote:Op donderdag 6 oktober 2011 15:25 schreef GlowMouse het volgende:
Echo je query, en let op SQL injection.
Ga het even aanpassen en proberen.quote:Op donderdag 6 oktober 2011 15:33 schreef Luchtkoker het volgende:
[..]
Het is ook niet echt heel fraai om al die variabelen zo in je string quotes te houden, liever:
[ code verwijderd ]
(let op, dat is dus ' " en " ') etc. Ik weet niet of dat nu de boosdoener is, maar alsnog.
remove_special? het koekje al nietquote:Op donderdag 6 oktober 2011 15:40 schreef dirkjo het volgende:
[..]
Op dit moment krijgt elke variabel een mysql_remove_special_string(),
Sorry, real_escape_string.. Geen flauw idee hoe ik aan remove special komquote:Op donderdag 6 oktober 2011 15:43 schreef GlowMouse het volgende:
[..]
remove_special? het koekje al niet
en ik mis de echo van de query.
Dan ga ik die even lezenquote:Op donderdag 6 oktober 2011 16:06 schreef GlowMouse het volgende:
http://www.php.net/manual/en/ heeft een heel hoofdstuk over beveiliging.
Als het werkt wanneer je er ftp voorzet, wat is dan je probleem?quote:Op zondag 9 oktober 2011 23:40 schreef boem-dikkie het volgende:
Oké. Nog even over mijn vorige vraag.
Ik heb het voor elkaar gekregen om met ftp_nlist op mijn eigen server de bestandsnamen van een andere FTP server op te halen.. Ik moet deze foto's nu laten zien. Nou zou je zeggen dat dat wel wil met gewoon <img> maar niet dus. Als ik ze link naar http://zijnserver.com/foto/bla.png werkt het niet, zodra ik er FTP voor zet werkt het wel. Het pad is dus juist, alleen er gebeurd iets waardoor ik op die andere site via dat pad de foto's niet kan vinden.
Die andere website is een NAS waar via dynDNS een naam wordt gegeven aan het IPadres.
Iemand (die mijn warrige verhaal snapt) een idee hoe ik dit kan oplossen?
Het probleem is dat als mensen dan naar die pagina gaan ze moeten inloggen.quote:Op zondag 9 oktober 2011 23:53 schreef Thomass het volgende:
[..]
Als het werkt wanneer je er ftp voorzet, wat is dan je probleem?
Ok, maar ftp://pad/ is iets _compleet_ anders dan http://pad/. Het een heeft absoluut niets met het ander te maken en dus kun je niet zomaar ftp in http veranderen en verwachten dat het werkt.quote:Op zondag 9 oktober 2011 23:56 schreef boem-dikkie het volgende:
[..]
Het probleem is dat als mensen dan naar die pagina gaan ze moeten inloggen.
Ik wil dat ze gewoon de foto's kunnen zien.
Dan moet je zorgen voor een webserver die de foto's kan weergeven.quote:Op zondag 9 oktober 2011 23:56 schreef boem-dikkie het volgende:
[..]
Ik wil dat ze gewoon de foto's kunnen zien.
of je downloadt ze met php naar je eigen serverquote:Op maandag 10 oktober 2011 01:00 schreef Tijn het volgende:
[..]
Dan moet je zorgen voor een webserver die de foto's kan weergeven.
Heb je zelf beheer over die server waar je het met FTP vandaan moet halen ? Is er een http:// link die naar dezelfde map als jouw FTP map verwijst ?quote:Op zondag 9 oktober 2011 23:40 schreef boem-dikkie het volgende:
Oké. Nog even over mijn vorige vraag.
Ik heb het voor elkaar gekregen om met ftp_nlist op mijn eigen server de bestandsnamen van een andere FTP server op te halen.. Ik moet deze foto's nu laten zien. Nou zou je zeggen dat dat wel wil met gewoon <img> maar niet dus. Als ik ze link naar http://zijnserver.com/foto/bla.png werkt het niet, zodra ik er FTP voor zet werkt het wel. Het pad is dus juist, alleen er gebeurd iets waardoor ik op die andere site via dat pad de foto's niet kan vinden.
Die andere website is een NAS waar via dynDNS een naam wordt gegeven aan het IPadres.
Iemand (die mijn warrige verhaal snapt) een idee hoe ik dit kan oplossen?
Das nogal logisch, want FTP en HTTP zijn 2 compleet andere dingen. Je FTP is beveiligd met een username en pass. Trek gewoon via FTP die directory leeg, sla de foto`s lokaal op en toon ze dan, of kijk naar de mogelijkheid om een webserver op je NAS te draaien.quote:Op zondag 9 oktober 2011 23:56 schreef boem-dikkie het volgende:
[..]
Het probleem is dat als mensen dan naar die pagina gaan ze moeten inloggen.
Ik wil dat ze gewoon de foto's kunnen zien.
Dat snap ik wel. Ik snap alleen niet waarom ik via HTTP niet bij die files kan en via FTP wel. Diegene die die FTP server gebruikt heeft een of ander programma'tje draaien die alle namen van bestanden veranderd in een random naam van cijfers en letters.quote:Op maandag 10 oktober 2011 07:10 schreef Scorpie het volgende:
[..]
Das nogal logisch, want FTP en HTTP zijn 2 compleet andere dingen. Je FTP is beveiligd met een username en pass. Trek gewoon via FTP die directory leeg, sla de foto`s lokaal op en toon ze dan, of kijk naar de mogelijkheid om een webserver op je NAS te draaien.
Draait er uberhaupt een HTTP server op die NAS?quote:Op maandag 10 oktober 2011 09:19 schreef boem-dikkie het volgende:
[..]
Dat snap ik wel. Ik snap alleen niet waarom ik via HTTP niet bij die files kan en via FTP wel. Diegene die die FTP server gebruikt heeft een of ander programma'tje draaien die alle namen van bestanden veranderd in een random naam van cijfers en letters.
Ja want hij heeft ook twee andere websites draaien op die NAS.quote:Op maandag 10 oktober 2011 09:23 schreef Scorpie het volgende:
[..]
Draait er uberhaupt een HTTP server op die NAS?
Dan moet je er dus alleen voor zorgen dat je erachter komt welk http adres koppelt aan de ftp folderquote:Op maandag 10 oktober 2011 09:26 schreef boem-dikkie het volgende:
[..]
Ja want hij heeft ook twee andere websites draaien op die NAS.
Wellicht handig. Zal even kijken.quote:Op maandag 10 oktober 2011 09:33 schreef GI het volgende:
[..]
Dan moet je er dus alleen voor zorgen dat je erachter komt welk http adres koppelt aan de ftp folder
True.quote:Op maandag 10 oktober 2011 09:37 schreef GI het volgende:
Om even een cliche door de bocht te gooien :
"Denk in oplossingen, niet in problemen". Ze staat op de server, de server heeft een webserver. 1+1=2.
Omdat de document root van de webserver blijkbaar niet hetzelfde is als de homefolder van de FTP-user.quote:Op maandag 10 oktober 2011 09:19 schreef boem-dikkie het volgende:
[..]
Dat snap ik wel. Ik snap alleen niet waarom ik via HTTP niet bij die files kan en via FTP wel.
Je zou de standaard FTP functies van PHP kunnen gebruiken en het script dmv een cronjob elke 12 uur laten uitvoeren.quote:Op dinsdag 11 oktober 2011 11:32 schreef boem-dikkie het volgende:
Ik heb het uitgevogeld. De map /photo/ waar de foto's in staan die ik wil bereiken is beheerd door een programma Photo Station op de NAS die als webserver dient. Hierdoor is het dus onmogelijk om zonder het daadwerkelijke Photo Station die foto's op te halen en neer te plempen op een andere website..
Weten jullie of er misschien een functie is waarmee ik gemakkelijk in kan loggen op die FTP (nas), elke 12 uur check op updates en dan alles automatisch kopieer naar de FTP waar ook de website staat die de foto's moet laten zien?
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
1 2 | article id, text, date |
1 2 | feedback id, article_id, choice, date |
1 | SELECT id, COUNT(feedback.id) AS aantal FROM article LEFT JOIN feedback ON (article.id = feedback.article_id) GROUP BY id |
1 | COUNT(feedback.choice = 1 / COUNT(feedback.id) * 100) AS percentage |
1 | (SUM(IF(feedback.choice = 1,1,0)) / COUNT(*) * 100) AS percentage |
1 | (SUM(feedback.choice) / COUNT(*) * 100) AS percentage |
http://forums.mysql.com/read.php?52,134684,134741#msg-134741quote:Op donderdag 13 oktober 2011 14:58 schreef remi1986 het volgende:
Ik ben bezig met een klein artikel waardering systeem.
Op een pagina kan een gebruiker aangeven of die pagina 'nuttig' was (dit is ja/nee, wat in de database wordt neergezet als 1/0).
Nu wil ik vanuit een soort van beheer systeem dit uitlezen.
De structuur is heel simpel:
De tabel met artikelen
[ code verwijderd ]
De tabel met feedback
[ code verwijderd ]
Ik heb met een simpele query met een left join de tabellen aan elkaar, alleen wil ik het percentage weten welke op "ja" (=1) hebben geklikt
[ code verwijderd ]
Dit is in het kort de query zoals ik die nu heb (ik heb nog wat aliassen toegevoegd, maar is niet relevant). De query werkt zover. Van ieder artikel, krijg ik daarnaast het aantal waarderingen. Nu wil ik weten hoeveel van die waarderingen dus 1 zijn. Dit krijg ik niet voor elkaar. Dacht zelf in de richting van
[ code verwijderd ]
Wie kan me helpen? Kan het eventueel wel in PHP doen, maar het is mooier en scheelt code als het direct met MySQL kan.
Super, dit is precies wat ik zocht!quote:Op donderdag 13 oktober 2011 15:02 schreef GlowMouse het volgende:
Denormaliseer en stop het aantal in de tabel article. Anders zoek je:
[ code verwijderd ]
of simpeler:
[ code verwijderd ]
Ik had hetzelfde probleem en heb het ook ongeveer zo opgelost, maar dan met sha512.quote:Op vrijdag 14 oktober 2011 09:59 schreef Chandler het volgende:
Vraag aan de experts!
Ik wil een site aanpassen qua 'wachtwoorden'. Nu gebruikt de site standaard MD5 (die met een simpele rainbowtable kan gehacked worden). Nu wil ik deze aanpassen en omzetten naar sha oid.
Alleen is het niet mogelijk om het originele wachtwoord te achterhalen, hoe zou ik deze user base toch beter kunnen beschermen.
Zelf zit ik te denken aan dit.
VAN DB -> MD5(PASS) -> SHA1(MD5 - SALT - MD5) -> NAAR DB
Idee of zit ik verkeerd te denken?
Op tweakers.net hebben ze op het moment een overgangsperiode. Ze zijn overgegaan naar een nieuwe manier van hashen. De eerste keer dat je inlogt wordt dat nog geconfirmeerd met de oude hash en wordt direct een nieuwe hash aangemaakt en de oude verwijderd (neem ik aan).quote:Op vrijdag 14 oktober 2011 09:59 schreef Chandler het volgende:
Vraag aan de experts!
Ik wil een site aanpassen qua 'wachtwoorden'. Nu gebruikt de site standaard MD5 (die met een simpele rainbowtable kan gehacked worden). Nu wil ik deze aanpassen en omzetten naar sha oid.
Alleen is het niet mogelijk om het originele wachtwoord te achterhalen, hoe zou ik deze user base toch beter kunnen beschermen.
Zelf zit ik te denken aan dit.
VAN DB -> MD5(PASS) -> SHA1(MD5 - SALT - MD5) -> NAAR DB
Idee of zit ik verkeerd te denken?
Dat laatste heb je natuurlijk geen hol aan. Als ze je userdatabase hebben, hebben ze ook je salts. Kun je net zo goed de username als een van de salts gebruiken.quote:Op vrijdag 14 oktober 2011 10:16 schreef Koepad het volgende:
Maar je kunt idd ook dubbel hashen, lijkt me weinig mis mee. En voor de salt kun je idd vanalles gebruiken wat je opslaat over een user: gebruikersnaam, registratiedatum, desnoods met een random-string generator voor iedere user een speciale saltstring maken en opslaan in je users tabel.
bcrypt is overkill. Een sterke dynamische salt voor elke user met sha(512) is voldoende voor de meesten. Zodra je hele database kan worden ingekeken ben je een stuk sterker met een dynamisch stuk salt.quote:Op vrijdag 14 oktober 2011 10:17 schreef Catbert het volgende:
Zowel SHA als MD5 zijn niet veilig. Rainbow tables is niet je grootste probleem. Je grootste probleem is dat zelfs SHA te snel is. GPU bruteforcen is tegenwoordig de manier waarop deze passwords gekraakt worden, niet d.m.v. rainbow tables want die zijn te verslaan met een simpele salt.
Ter info:
http://chargen.matasano.c(...)to-know-about-s.html
Conclusie: je moet bcrypt gebruiken, en geen MD5 of SHA.
http://stackoverflow.com/(...)ing-passwords-in-php
Dat laatste heb je natuurlijk geen hol aan. Als ze je userdatabase hebben, hebben ze ook je salts. Kun je net zo goed de username als een van de salts gebruiken.
Dan hebben ze een stukje van je salt. Ze weten niet hoe vaak jij die nog achterstevoren, binnenstebuiten, base64 en md5't. En wat je nog meer aan gegevens gebruikt.quote:Op vrijdag 14 oktober 2011 10:17 schreef Catbert het volgende:
Dat laatste heb je natuurlijk geen hol aan. Als ze je userdatabase hebben, hebben ze ook je salts. Kun je net zo goed de username als een van de salts gebruiken.
Ik zeg niet dat je niet moet salten. Ik bedoel alleen dat een oplossing puur op MD5 en/of SHA een beetje te wensen overlaat omdat tegenwoordig passwords gewoon gebruteforced worden. Natuurlijk is bcrypt voor een simpele site misschien wat overkill, maar bcrypt is tenminste redelijk future-proof.quote:Op vrijdag 14 oktober 2011 10:24 schreef Ouqz het volgende:
bcrypt is overkill. Een sterke dynamische salt voor elke user met sha(512) is voldoende voor de meesten. Zodra je hele database kan worden ingekeken ben je een stuk sterker met een dynamisch stuk salt.
Is het idee van salten niet dat bruteforcen weinig zin heeft en dat daarom MD5 of SHA1 opeens helemaal niet zo brak meer zijn?quote:Op vrijdag 14 oktober 2011 10:29 schreef Catbert het volgende:
[..]
Ik zeg niet dat je niet moet salten. Ik bedoel alleen dat een oplossing puur op MD5 en/of SHA een beetje te wensen overlaat omdat tegenwoordig passwords gewoon gebruteforced worden.
Het gaat er voornamelijk om wat je doet als je hele usertabel uitlekt.quote:Op vrijdag 14 oktober 2011 10:34 schreef ursel het volgende:
Je bescherm je toch wel tegen bruteforcen neem ik aan?
Na X aantal mislukte pogingen binnen Y periode is gewoon geen toegang.
Zie daarvoor weer de reactie van Koepadquote:Op vrijdag 14 oktober 2011 10:36 schreef Tijn het volgende:
[..]
Het gaat er voornamelijk om wat je doet als je hele usertabel uitlekt.
quote:Op vrijdag 14 oktober 2011 10:28 schreef Koepad het volgende:
[..]
Dan hebben ze een stukje van je salt. Ze weten niet hoe vaak jij die nog achterstevoren, binnenstebuiten, base64 en md5't. En wat je nog meer aan gegevens gebruikt.
En bovendien het hele idee van een salt is dat het onmogelijk wordt om hashes te vergelijken. Daarvoor boeit het nieteens of de aanvaller weet hoe de salt eruit ziet. Als ze maar uniek zijn.
Nee, bruteforcen kun je altijd doen. salten doe je zodat als iemand je database te pakken krijgt, hij niet simpelweg de hashes kan vergelijken met een andere database met hashes die hij gemaakt heeft met zijn "check wie jou geblokkeerd heeft op msn"-website.quote:Op vrijdag 14 oktober 2011 10:32 schreef Tijn het volgende:
[..]
Is het idee van salten niet dat bruteforcen weinig zin heeft en dat daarom MD5 of SHA1 opeens helemaal niet zo brak meer zijn?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |