Je hebt mijn (geëditte) code niet helemaal goed overgenomen :)quote:Op zaterdag 9 december 2006 21:23 schreef qu63 het volgende:
[..]
[ code verwijderd ]
dit geeft als output alleen maar "Ar"..
ik snap niet waar ie fout gaat
1 |
ah!quote:Op zaterdag 9 december 2006 21:33 schreef JeRa het volgende:
[..]
Je hebt mijn (geëditte) code niet helemaal goed overgenomen
[ code verwijderd ]
1 2 3 4 5 6 7 | //code zoals ik het gebruik $autojob_time=mktime($_POST['uur'] . "," . $_POST['minuut'] . ",00," . $_POST ['maand']) . "," . $_POST['dag'] . "," . $_POST['jaar']); // de $_POST variabelen worden opgeschoond, heb ik in dit voorbeeld weggelaten. ?> |
oei, blijkt mijn laatste sprankje stille hoop niet ongegrond. Ergens had ik een vermoeden dath et zoiets zou moeten zijn.quote:Op zondag 10 december 2006 12:48 schreef Breuls het volgende:
Je geeft een string door aan mktime, in plaats van losse parameters.
1 |
Mjah, daar is toch de manual voor. Daar kan naar verwezen worden, dwing je beginners ook nog eens om op php.net te kijkenquote:Op zondag 10 december 2006 13:21 schreef CraZaay het volgende:
Wellicht is het een idee om in de startpost op te nemen (het is immers voor dummies) wat de verschillende data types zijn (string, integer, etc), hoe de documentatie op php.net te lezen (bv. over parameters), het verschil tussen enkele en dubbele quotes (worden ook hier vaak onnodig/onjuist gebruikt), etc?
Ik heb ooit eens een kleine FAQ gemaakt over php, misschien ben je daar wat meequote:Op zondag 10 december 2006 13:40 schreef Breuls het volgende:
Ik zou zeggen, schrijf er een wiki-pagina over.
Mensen die met PHP beginnen en nog nooit op php.net geweest zijn moeten toch wel uberprutsers zijnquote:Op zondag 10 december 2006 13:51 schreef Swetsenegger het volgende:
[..]
Mjah, daar is toch de manual voor. Daar kan naar verwezen worden, dwing je beginners ook nog eens om op php.net te kijken
Goeie! Daar staat zo'n beetje in waar ik op doelde.quote:Op zondag 10 december 2006 14:52 schreef fate het volgende:
[..]
Ik heb ooit eens een kleine FAQ gemaakt over php, misschien ben je daar wat mee. Die staat op m'n site voor de geinteresseerden
![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $query = "SELECT * FROM `site_menu` WHERE ParentID='".$ParentID."' ORDER BY id ASC"; $result = mysql_query($query) or die (mysql_error()); while($row = mysql_fetch_array($result)) { $items .= '<li>'.$row[title]; $items .= (build_menu($row[ID])) ? build_menu($row[ID]) : ''; $items .= '</li>'."n"; } return ($items) ? '<ul>'."n".$items.'</ul>'."n" : 0 ; } $menu = build_menu(0); |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $query = " SELECT * FROM bookmark_cat, bookmark_links WHERE bookmark_cat.id = bookmark_links.cat_id GROUP BY cat_id"; $result = mysql_query($query) or die (mysql_error()); while($row = mysql_fetch_array($result)) { echo '<h2>'. $row['cat_naam'] . '</h2>'; echo '<p>' . $row['naam'] . '</p>'; } ?> |
1 2 3 4 5 6 7 8 | link 1 CAT NAAM 1 link 2 CAT NAAM 1 link 3 |
1 2 3 4 5 6 7 8 | link 1 link 2 link 3 CAT NAAM 2 link 4 link 5 |
Je query kun je zo laten. Maar je hele probleem is toch dat je de header maar één keer wilt weergeven? Als je nou eens de header in het loopje telkens opslaat in een variabele en de header alleen weergeeft als ie niet meer overeenkomt met wat er in de variabele staat?quote:Op dinsdag 12 december 2006 11:25 schreef super-muffin het volgende:
hm ja, ik had eerst een query in een while loop. Maar dat lijkt me te server belastend. Ik dacht dat er wel een andere manier moet zijn.
Dat komt omdat je $titel éérst vult met de header en daarna controleert of het verschilt met de header. (:?)quote:Op dinsdag 12 december 2006 12:18 schreef super-muffin het volgende:
Zoals dit? :?
Dit staat in de while loop:
[ code verwijderd ]
Dan krijg ik geen headings.
1 |
1 2 3 4 5 | { $titel = $row['cat_naam']; echo '<h2>etc</h2>'; } |
Een aanroep naar unlink() is in Windows weinig meer dan een wrapper om de API-call om een bestand te verwijderen. Kennelijk vindt Windows dat de gebruiker waaronder IIS wordt uitgevoerd niet genoeg rechten heeft om het bestand te verwijderenquote:Op dinsdag 12 december 2006 15:23 schreef papernote het volgende:
Ik draai PHP 5 op Windows Server 2003 R2 met IIS 6.0. Maar ik heb een probleem met het verwijderen van bestanden. De unlink() functie wil niet werken, wegens een "permission denied".
Ik heb de IIS user Full Control gegeven over alle bestanden in de wwwroot. Ik heb zelfs Everyone Full Control gegeven over de wwwroot. Beide werkt niet.quote:Op dinsdag 12 december 2006 15:31 schreef JeRa het volgende:
[..]
Een aanroep naar unlink() is in Windows weinig meer dan een wrapper om de API-call om een bestand te verwijderen. Kennelijk vindt Windows dat de gebruiker waaronder IIS wordt uitgevoerd niet genoeg rechten heeft om het bestand te verwijderendus hoe zit het met de permissies van gebruikers op het bestand dat je wilt verwijderen?
Ben ik nou topickiller?quote:Op dinsdag 12 december 2006 17:06 schreef fokME2 het volgende:
Ben voor mijn school bezig met een filebeheer te maken. Het probleem is echter dat dit via het netwerk gaat.
Het uitlezen van de bestanden gaat perfect "//server/bla/leerlingmap", echter bij het uploaden van files gaat het fout. Dan krijg ik een "permission denied", de server kan wel mappen aanmaken?
De pc waarop de Apache server draait met PHP5 heeft alle rechten op de netwerkmap.
Heeft iemand hier ervaringen/tips/oplossingen met/voor dit probleem?
Beetje welquote:
Probeer mbv php en move_uploaded_file(), of copy() de file te verplaatsen. Dan krijg ik de errorquote:Op woensdag 13 december 2006 20:19 schreef JeRa het volgende:
Hoe upload je je bestanden? Welke functies, waar worden de tijdelijke bestanden opgeslagen, etc?
[..]
Beetje wel
Dat lees ik net op php.net. Weet iemand of je bij Apache misschien het netwerkpath zou moeten instellen? En of dat uberhaupt kan?quote:On windows I made the directory writable, by changing the Apache httpd.conf file.
The problem I had, was with the upload directory. The move_uploaded_file produced an error like: failed to open stream: Permission denied.
I changed my php.ini to specify an upload directory:
upload_tmp_dir = "d:/temp/php/uploads/"
and I added the following in the Apache hpptd.conf file:
<Directory "D:/temp/php/uploads">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
restarted Apache, and the upload succeeded.
1 2 3 4 | --------+-----------+-------- 1 | Smaak | 0 2 | Test | 1 |
1 2 3 4 5 6 7 | -----------------+----------------------+------- 1 | Smaakt uw vlees | 1 2 | Smaakt uw koffie | 1 3 | Smaakt uw groente | 1 4 | Testvraag 1 | 2 5 | Testvraag 2 | 2 |
1 2 3 4 5 6 7 8 9 10 11 | ---------------+-------+-----------+------- 1 | 1 | 2 | ip van voter 2 | 1 | 2 | 3 | 1 | 1 | 4 | 1 | 1 | 5 | 1 | 1 | 6 | 1 | 2 | 7 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 2 | |
1 2 3 | SELECT Question, COUNT(Question) as vote FROM Poll_Answers WHERE Poll=".$poll." GROUP BY Question ?> |
1 2 3 | SELECT q.Question, COUNT(a.Question) as vote FROM Poll_Questions q JOIN Poll_Answers a ON (q.Poll=a.Poll) WHERE a.Poll=".$poll." GROUP BY a.Question ?> |
PHP draait als apart proces met de rechten van de gebruiker van de webserver, dus daar hoef je niet voor in httpd.conf te zijn. Lukt het je wel om de bestanden in een lokale map (op de eigen harde schijf) op te slaan?quote:Op woensdag 13 december 2006 21:01 schreef fokME2 het volgende:
[..]
Dat lees ik net op php.net. Weet iemand of je bij Apache misschien het netwerkpath zou moeten instellen? En of dat uberhaupt kan?![]()
Ik kom er vanavond even op terug, ik zit voornamelijk nog met hoe ik een count van rijen kan koppelen aan 1 vraag uit de andere tabel in m'n query. Je performance verhaal lees ik even als ik niet meer op mijn werk zit. Het database model kan nu nog volledig op de schopquote:Op donderdag 14 december 2006 08:38 schreef JeRa het volgende:
@Swetsenegger
Een normale LEFT JOIN (== LEFT OUTER JOIN) zou afdoende moeten zijn. Je hebt gelijk dat er geen relatie hoeft te bestaan, dus pak je de tabel met de rijen die je wilt hebben (de questions) en join je daar hetgene op waar je informatie over wilt hebben (de answers). Let wel op dat je formeel een NULL-waarde krijgt van MySQL in het geval dat er geen rijen gevonden zijn bij een bepaalde question.
Verder een tip voor Poll_Answers; als je Poll_Answer_Id dropt en een PRIMARY KEY op de kolommen (IP, Poll) legt dan zorg je ervoor dat er in MySQL een restrictie komt: elk IP-adres kan maar één keer op één bepaalde poll stemmen.
En over het algemeen zal deze opzet niet de snelste qua performance zijn; MySQL is niet zo geweldig met GROUP BY's (zelfs niet als je de juiste indices aanlegt). Persoonlijk zou ik een aparte tabel hebben gemaakt met de scores per antwoord op een poll zodat je die simpel kunt incrementen bij een stem. Je Poll_Answers-tabel kun je dan zo versimpelen Dat je 'IP' en 'Poll' overhoudt (inclusief de eerder genoemde PRIMARY KEY natuurlijk).
Dan ben je erg beperkt met vertalenquote:Op donderdag 14 december 2006 10:48 schreef ViPeRII het volgende:
Lol dat is nooit een class. Dat is een lijst met woorden die vertaalt worden.
Nope. Lijkt me ook raar nu de paar beste (en zelfs dan nog matige) oplossingen commerciëel zijnquote:Op donderdag 14 december 2006 10:45 schreef wipes66 het volgende:
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
Dit kan vrij simpel omdat je telkens maar één poll opvraagt. Je koppelt de stemmen aan de vragen:quote:Op donderdag 14 december 2006 11:05 schreef Swetsenegger het volgende:
[..]
Ik kom er vanavond even op terug, ik zit voornamelijk nog met hoe ik een count van rijen kan koppelen aan 1 vraag uit de andere tabel in m'n query.
1 |
1 |
Een PRIMARY KEY is niets anders dan een UNIQUE INDEX met een extra tagje zodat je bij natural joins niet hoeft aan te geven hoe je tabellen koppelt. Een INDEX kun je gewoon over meerdere kolommen leggen, dat heb ik een tijd geleden in deze topicreeks redelijk uitgebreid besproken. UNIQUE zorgt ervoor dat je altijd unieke combinaties van die kolommen moet hebben. In het geval van de combinatie IP,PollID is dat dus een unieke combinatie van IP-adres en Poll-ID voor een stemquote:-edit- oeh, je primary key tip voor de poll answers tabel is wel een goeie. Ik wist niet eens dat je twee kolommen in 1 tabel primary key kan maken?
Je hebt in je huidige opzet een hoop redundante informatie, aangezien je geen informatie aan een stem koppelt (het is een primitieve, een integer 1 waarvan je het totaal wilt weten). Dan is zo'n aparte tabel een erg goed idee aangezien je er zo ook voor zorgt dat MySQL na een tijdje zich niet verslikt in de GROUP BY (en je hoeft iets minder rekening te houden met de juiste indices).quote:-edit2-
Hmz, een aparte score tabel incrementen is ook wel aardig idee
Ik zou eerder denken aan een soort van webservice die je kunt aanroepen met SOAP of iets dergelijks. Volgens mij bestaan er wel dergelijke vertaalwebservices.quote:Op donderdag 14 december 2006 10:45 schreef wipes66 het volgende:
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
Google met de magische keywords: "sql countries"quote:Op donderdag 14 december 2006 12:31 schreef super-muffin het volgende:
Vraagje: kun je ook ergens een soort van voorbeeld database downloaden met bv alle landen, of een aantal namen er in?
Die heb ik namelijk nodig voor een testje, maar heb geen zin om zelf al die informatie bij elkaar te zoeken.
quote:Op donderdag 14 december 2006 11:31 schreef JeRa het volgende:
[..]
Dit kan vrij simpel omdat je telkens maar één poll opvraagt. Je koppelt de stemmen aan de vragen:
[ code verwijderd ]
Door nu te GROUP BY'en op de vragen zorg je ervoor dat je het aantal stemmen per vraag kunt tellen:
[ code verwijderd ]
COUNT() is dan dus een aggregate function die werkt op alle rijen in de tabel 'stemmen' die gekoppeld zijn aan een bepaalde vraag. Maar dit is natuurlijk niet meer relevant als je dat idee gebruikt van een aparte tabel met scores.
1 |
Ik zie geen fout in de syntax?quote:You have an error in you SQL syntax ... ~ ... syntax to use near 'GROUP BY q.Question' at line 1
1 |
Hier ga ik ook mee aan de slagquote:Een PRIMARY KEY is niets anders dan een UNIQUE INDEX met een extra tagje zodat je bij natural joins niet hoeft aan te geven hoe je tabellen koppelt. Een INDEX kun je gewoon over meerdere kolommen leggen, dat heb ik een tijd geleden in deze topicreeks redelijk uitgebreid besproken. UNIQUE zorgt ervoor dat je altijd unieke combinaties van die kolommen moet hebben. In het geval van de combinatie IP,PollID is dat dus een unieke combinatie van IP-adres en Poll-ID voor een stem
[..]
Je hebt in je huidige opzet een hoop redundante informatie, aangezien je geen informatie aan een stem koppelt (het is een primitieve, een integer 1 waarvan je het totaal wilt weten). Dan is zo'n aparte tabel een erg goed idee aangezien je er zo ook voor zorgt dat MySQL na een tijdje zich niet verslikt in de GROUP BY (en je hoeft iets minder rekening te houden met de juiste indices).
Ben per ongeluk de ON-clausule vergetenquote:Op donderdag 14 december 2006 16:31 schreef Swetsenegger het volgende:
[..]
Ik zie geen fout in de syntax?
Ik had pagina 4 nog niet gezienquote:Op donderdag 14 december 2006 16:39 schreef JeRa het volgende:
[..]
Ben per ongeluk de ON-clausule vergetenje moet dus nog even aangeven hoe je de tabellen aan elkaar koppelt (in dit geval dus op Poll_Question_Id).
In de tabel Poll_Answers is de kolom 'Poll' nu redundant omdat je die informatie ook al hebt opgeslagen in Poll_Questions, trouwens.
Het lijkt erop dat PHP niet in zijn eigen temp map mag als het op files neer komt? Sessies etc worden wel gewoon goed geset enzo.quote:Op donderdag 14 december 2006 08:27 schreef JeRa het volgende:
[..]
PHP draait als apart proces met de rechten van de gebruiker van de webserver, dus daar hoef je niet voor in httpd.conf te zijn. Lukt het je wel om de bestanden in een lokale map (op de eigen harde schijf) op te slaan?
Het kán wel in één query, maar niet erg mooi. Moet je met subqueries of 3 extra joins gaan werken gok ik zo. Voor losse polls zou ik het gewoon bij elkaar optellen zodra je de resultaten binnenhaalt.quote:Op donderdag 14 december 2006 17:33 schreef Swetsenegger het volgende:
kan ik in dezelfde query nog een totaal aantal stemmen frotten. Scheelt me een query (hoewel ik me afvraag of het perfomrance scheelt)
Staat de safe_mode wel uit?quote:Op donderdag 14 december 2006 20:44 schreef fokME2 het volgende:
[..]
Het lijkt erop dat PHP niet in zijn eigen temp map mag als het op files neer komt? Sessies etc worden wel gewoon goed geset enzo.![]()
>> Lokaal "./" lukt dus ook niet.![]()
Ik kreeg het inderdaad niet eenvoudig voor elkaarquote:Op donderdag 14 december 2006 21:14 schreef JeRa het volgende:
[..]
Het kán wel in één query, maar niet erg mooi. Moet je met subqueries of 3 extra joins gaan werken gok ik zo. Voor losse polls zou ik het gewoon bij elkaar optellen zodra je de resultaten binnenhaalt.
Als je niet weet hoe het wachtwoord gehashed is houdt het opquote:Op vrijdag 15 december 2006 16:49 schreef Xevor het volgende:
Dat is inderdaad wat ik zelf ook dacht maar hoe kan ik de ingevulde wachtwoord hashen? Als ik md5 gebruik krijg ik een heel ander getal.
password = test en bij de hash in mijn tabel staat er 378b243e220ca493 en met md5() komt er 098f6bcd4621d373cade4e832627b4f6 uit
1 2 3 | abad497fb7efcd189dd07cd632a9fc22 ?EDONKEY*[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi dca3d6f4ffc59464a48a7a7c3dbd56c6 *[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi |
quote:Op zaterdag 16 december 2006 10:14 schreef mschol het volgende:
klein vraagje/RFC (:P)
ik krijg vanuit een shell_exec() in php een bestand terug met de volgende opbouw:
[ code verwijderd ]
wat is de meest efficiente manier om:
1. de hashes eruit te trekken (ik zelf dacht aan splitten op spatie en dan $arr[0] opslaan
2. de hashes bij de juiste filenames houden (ik zelf had in gedachten: splitten op * en dan deel 1 (voor de * ) doen als bij punt 1
ik heb alleen het gevoel dat het absoluut niet efficient is(ik moet het nogal vaak doen dus het moet wel redelijk rap zijn
)
1 2 3 4 5 6 7 | $file=file('het_bestand.txt'); foreach($file as $str) { $hashes[substr($str,strpos($str,'*')+1)]=substr($str,0,strpos($str,' ')); } ?> |
1 2 3 4 5 6 7 8 | $handle = fopen('test.txt','r'); while (!feof($handle)) { $x=fscanf($handle,"%s %[^*]*%[^\r]s\r\n"); if ($x!=null) $hashes[$x[2]]=$x[0]; } fclose($handle); ?> |
Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen, en laat dat nou ook in PHP mogelijk zijnquote:Op vrijdag 15 december 2006 17:36 schreef Xevor het volgende:
Ok het is gelukt:
$oudepass = mysql_real_escape_string($_POST['pass']);
$sql = "SELECT PASSWORD('".$oudepass."') AS pwdhash";
$resultpw = mysql_query($sql) or die(mysql_error());
$arrPwd = mysql_fetch_assoc($resultpw);
echo $arrPwd['pwdhash'];
Bedankt voor de reacties.
SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.quote:Op zondag 17 december 2006 09:22 schreef CraZaay het volgende:
[..]
Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen, en laat dat nou ook in PHP mogelijk zijnMocht dat niet werken, dan moet toch snel te googlen zijn hoe MySQL hashes maakt. Dat scheelt weer een query met je bovenstaande oplossing.
ke dan , hier ga ik eens naar kijkenquote:Op zaterdag 16 december 2006 20:13 schreef ralfie het volgende:
[..]
[ code verwijderd ]
je moet alleen wel nog rtrim() op de filename loslaten als je de newlines niet wil hebben, en verder nog checks mocht een regel blanco zijn
het zou ook met scanf kunnen, kweet niet wat sneller is
[ code verwijderd ]
(let hier wel op \r\n en \n)
Dan is het MySQL < 4.1. Weet niet van buiten welke encryptie die gebruikt.quote:Op zondag 17 december 2006 09:51 schreef Swetsenegger het volgende:
[..]
SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.
quote:The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead.
Je vergist je. De methode van hashing is afhankelijk van de configuratie, en een hoop distributies hebben standaard nog de oude hashing ingeschakeld om compatibiliteit met oudere programma's te bewerkstelligen.quote:Op zondag 17 december 2006 09:22 schreef CraZaay het volgende:
[..]
Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen
1 2 3 4 | $language = "dutch"; ?> <a href="http://www.go.com/index.php?lang=<?=$language;?>"> |
1 2 3 4 | $language = "dutch"; echo'<a href="http://www.go.com/index.php?lang='.$language.'">'; ?> |
1 2 3 4 | $language = 'dutch'; echo '<a href="'.$link.'?lang='.$language.'">Link</a>'; ?> |
1 |
Waarom zou je geen html kunnen opslaan in de database? Dit gaat wel, maar je moet wel eerst je code beveiligen voor je hem door een query jaagt.quote:Op vrijdag 22 december 2006 14:05 schreef markiemark het volgende:
De link is opgeslagen als volgt:
[ code verwijderd ]
Nu wil ik voordat de content (en dus de link) wordt getoond die get-variabele-waarde (language) vervangen door de variabele die is ingesteld in de site. ($language)
Ik kan geen html code in de db gooien toch?
1 2 3 4 5 6 7 8 9 | $language="dutch"; $query="SELECT * FROM links"; $result=mysql_query($query); while($row=mysql_fetch_assoc($result)){ $link=str_replace('language', $language, $row['link']) echo $link; } ?> |
Nog niet, was even onderweg naar Utrecht, nu weer ff verder. Maar wat jij in je voorbeeld beschrijft komt toch op hetzelfde neer met str_replace?quote:Op vrijdag 22 december 2006 15:14 schreef Swetsenegger het volgende:
Gelukt?
1 2 | <IMG src="<?php echo $image; ?>" border="0"> |
1 |
Ik heb het helemaal voorgekauwd, wat snap je nu niet.quote:Op vrijdag 22 december 2006 17:24 schreef markiemark het volgende:
[..]
Nog niet, was even onderweg naar Utrecht, nu weer ff verder. Maar wat jij in je voorbeeld beschrijft komt toch op hetzelfde neer met str_replace?
Is het wel mogelijk om een deel uit html code te vervangen met str_replace dat is opgeslagen in de db?
Hier een stukje code zoals hij werkelijk in mijn script staat.
Dit werkt wel:
Nee, je probeert een functie te echo'enquote:En dit werkt niet:
[ code verwijderd ]
quote:Het gaat uiteindelijk om het keyword dat wordt meegestuurd en niet om de language zoals ik aanvankelijk zei. Dat probleem is anders opgelost..
Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.quote:Op zaterdag 23 december 2006 19:53 schreef BlueCurl het volgende:
hey ik heb een gastenboek die volloopt met spam. nu wil ik dat als iemand "[url" of "href" gebruikt het ingevoerde bericht niet word ingevoerd. deze lijst moet in de toekomst makkelijk kunnen worden uitgebreid... nu ben ik nog een erge n00b en gebruik ik telkens een "if" met die twee dingen. maar dat neemt erg veel regels in beslag als ik dat iwl uitbreiden. is er een betere manier om dat allemaal in een functie te zetten met een bepaalde opzet? zo ja waar kan ik het beste op googlen? (mijn spam bevat enkel linken vandaar dat ik geen moeilijk uitgebreid script wil etc.
ik bedoel qua php scripten... al die onlogische namen al eens geprobeerd maar maakte niks uit. ik wil gewoon een lijst met behulp van php die niet toegelaten mogen worden... hoe moet ik dat aanpakken.... zie uitleg gewoon in mijn vorige postquote:Op zaterdag 23 december 2006 20:19 schreef beerten het volgende:
[..]
Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.
Niet "gastenboek.html" maar "lmadfhbvlkjsd.html" bijvoorbeeld
De velden van je gastenboek geef je ook onlogische namen.
'naam" ----> "ljfh"
"email" ----> "mvkkfvdf"
"onderwerp" ----> "erietuhirtuh"
Zoiets
Spambots zoeken naar patronen, herkenbare zaken. Duidelijke namen voor variabelen/pagina's zijn handige patronen en worden dus snel gevonden.
Das echt geen manier om met spam om te gaan zeg, je formulieren blijven nog steeds bestaan in de HTML wat wou je daar aan doen? Die zien die spambots toch wel, dat is hun referentie punt wat wil je daaraan doen.quote:Op zaterdag 23 december 2006 20:19 schreef beerten het volgende:
[..]
Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.
Niet "gastenboek.html" maar "lmadfhbvlkjsd.html" bijvoorbeeld
De velden van je gastenboek geef je ook onlogische namen.
'naam" ----> "ljfh"
"email" ----> "mvkkfvdf"
"onderwerp" ----> "erietuhirtuh"
Zoiets
Spambots zoeken naar patronen, herkenbare zaken. Duidelijke namen voor variabelen/pagina's zijn handige patronen en worden dus snel gevonden.
1 2 3 4 5 6 7 8 9 | $message=strip_tags($_POST['message']); foreach ($verboden as $search) { if(stristr($message,$search)!=FALSE){ header("HTTP/1.0 403 Forbidden"); die(); } } |
Het werkt voor mij.quote:Op zaterdag 23 december 2006 21:13 schreef Cageon het volgende:
[..]
Das echt geen manier om met spam om te gaan zeg, je formulieren blijven nog steeds bestaan in de HTML wat wou je daar aan doen? Die zien die spambots toch wel, dat is hun referentie punt wat wil je daaraan doen.
"Security by obscurity", das nooit een oplossing.![]()
Wat ik zou doen is een image verificatie inbouwen of iets van die zin, maar bij het posten in een gastenboek kan dit als irritant worden beschouwt. Maar op het moment dat url/links verboden worden treden er ook weer irritaties op dus dat is gewoon een keuze maken...
Ja, dus ze accepteren geen cookies of hebben geen referer.quote:Op zaterdag 23 december 2006 23:48 schreef Desdinova het volgende:
hebben spambots geen bepaalde afwijkende user agent?
ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.quote:Op zondag 24 december 2006 00:00 schreef Swetsenegger het volgende:
[..]
Ja, dus ze accepteren geen cookies of hebben geen referer.
Maar ik heb wel eens op referer geblokt (als de referer niet gelijk is aan de pagina waar het form staat, dan geen post toestaan) en dat werkt aardig, totdat mensen in bv firefoc referers uit hebben staan.
Ik gebruik nu een combinatie van captcha, lijst met woorden en een ip banlist. Geen spam meer
1 |
Zo heb ik al tijden succesvolle anti-spam formule:quote:Op zondag 24 december 2006 00:05 schreef qu63 het volgende:
[..]
ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.
[ code verwijderd ]
en achter de schermen wordt gecontroleerd of 'check' de waarde 4 heeft, en anders wordt je gewoon lekker terug gestuurd
Dat zal best werken tot je gewoon spam uit nederland krijgt.quote:Op zondag 24 december 2006 00:05 schreef qu63 het volgende:
[..]
ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.
[ code verwijderd ]
en achter de schermen wordt gecontroleerd of 'check' de waarde 4 heeft, en anders wordt je gewoon lekker terug gestuurd
Als ik Nederlandse spam krijg zie ik wel weer verderquote:Op zondag 24 december 2006 09:59 schreef Swetsenegger het volgende:
[..]
Dat zal best werken tot je gewoon spam uit nederland krijgt.
Ik kreeg nog gewoon spam DOOR een captcha heen. Pas nadat ik in die captcha de letters schots en scheef neer zet is het over
En eigenlijk doet een captcha hetzelfde als wat jij nu doet, alleen is een captcha wat ingewikkelder.
Als je de letters niet erg goed verbergt is het voor spam-bots niet zo heel moeilijk om ook de letters te herkennen. Tekstherkenningquote:Op zondag 24 december 2006 09:59 schreef Swetsenegger het volgende:
[..]
Dat zal best werken tot je gewoon spam uit nederland krijgt.
Ik kreeg nog gewoon spam DOOR een captcha heen. Pas nadat ik in die captcha de letters schots en scheef neer zet is het over
En eigenlijk doet een captcha hetzelfde als wat jij nu doet, alleen is een captcha wat ingewikkelder.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |