anoniem Geplaatst: 27 augustus 2002 Delen Geplaatst: 27 augustus 2002 Waarom wekt het zo wel goed en als ik er meer regels bij zet dan blockt hij ineens alles. if (strrpos($email,'hotmail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'freemail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; Wat kan de oorzaak zijn? Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 En wat zet je er dan nog meer bij? Moeten wij maar gaan gokken wat er mis kan zijn? Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 Ik bedoel dit zo werkt het goed if (strrpos($email,'hotmail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'freemail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; Maar zo niet want dan blockt hij alles ook wat er niet in staat. if (strrpos($email,'hotmail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'freemail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'yahoo') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'msn') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 [quote:6da08d9282="sony"] zo werkt het goed if (strrpos($email,'hotmail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; if (strrpos($email,'freemail') > 0) $stop = "<center>".translate("ERROR: Sorry! Invalid email!")."</center>"; [/quote:6da08d9282] Werkt dit echt? Ik mis wat '{}'... Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 [quote:90d3cb6146="Remytje"]Werkt dit echt? Ik mis wat '{}'...[/quote:90d3cb6146]Zolang je één commando na een if (else etc ook natuurlijk) gebruikt, hoef je geen accolades te gebruiken. Sony: check de [url=http://www.php.net/manual/en/function.strrpos.php]manual[/url], volgens mij vergelijk jij verkeerd... [edit]Typo's...[/edit] Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 [quote:99cdd094ed="Bill Gates"]Zolang je één commando na een if (else etc ook natuurlijk) gebruikt, [b:99cdd094ed]hoe je geef [/b:99cdd094ed]accolades te gebruiken.[/quote:99cdd094ed] Bill, zo laat is het toch nog niet? :wink: Ik heb in ieder geval er weer wat bij geleerd :D Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 De functie strrpos volgens [url=http://www.php.net/strrpos]php.net[/url] :): [quote:4d1eb8ab5c]Returns the numeric position of the last occurrence of needle in the haystack string. Note that the needle in this case can only be a single character. If a string is passed as the needle, then only the first character of that string will be used.[/quote:4d1eb8ab5c]Oftewel: Zodra je een string meegeeft zal alleen het eerste 'teken' vergeleken worden. Dus als je als $email al de waarde "piro@himalayah.com" zou hebben, is de waarde al > 0 (5 in dit geval). Zowiezo kun je beter iets anders verzinnen, want als je email adres bijvoorbeeld al met "[b:4d1eb8ab5c]msn[/b:4d1eb8ab5c]atuurlijk@jp.nl" zou beginnen, wordt het ook al afgewezen :). Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 Je zou inderdaad beter kunnen checken op "@hotmail", dat zal beter werken... Quote Link naar reactie
anoniem Geplaatst: 27 augustus 2002 Auteur Delen Geplaatst: 27 augustus 2002 Ja ik snap jullie wel maar ik ben maar een simpele beginner Quote Link naar reactie
anoniem Geplaatst: 28 augustus 2002 Auteur Delen Geplaatst: 28 augustus 2002 [quote:105fc0748e="Bill Gates"]Je zou inderdaad beter kunnen checken op "@hotmail", dat zal beter werken...[/quote:105fc0748e] Klopt dat is dus de fout hij kijkt alleen naar de letters en niet alleen naar hele naam. shit iemand een idee hoe dat zo aan te passen is ? veder werkt hij erg goed alleen hij moet de helenaam pakken en niet alleen de letters. Quote Link naar reactie
anoniem Geplaatst: 28 augustus 2002 Auteur Delen Geplaatst: 28 augustus 2002 Allereerst zou ik het emailadres controleren op geldigheid door het op te slaan in bijv. $adres en het te controleren met[code:1:07608d017b]if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $adres)){ ... // Adres is geldig. }[/code:1:07608d017b]Vervolgens wil je de code controleren op het bestaan van een string, dat kan je waarschijnlijk het berste doen met ereg(), of beter nog; met eregi(), aangezien deze geen rekening houdt met hoofdletters, wat in het geval van emailadressen ook niet interessant is. Op de plek waar boven staat "..." zou je dus het volgende kunnen plaatsen:[code:1:07608d017b] if (eregi("@hotmail.",$adres)){ ... // Stel een variabele in die jou vertelt dat het geblokkeerd moet worden } elseif (eregi("@freemail.",$adres)){ ... // Stel een variabele in die jou vertelt dat het geblokkeerd moet worden } // Enzovoorts...[/code:1:07608d017b]Ik heb deze code niet getest, maar met de handleiding van PHP.net ernaast moet je hiermee toch een heel eind komen. Succes ermee! - Basje. Quote Link naar reactie
anoniem Geplaatst: 28 augustus 2002 Auteur Delen Geplaatst: 28 augustus 2002 Ik heb die code erin gegooit en hier en daar wat bij gewerkt en volgens mij werkt hij. Bas hartstikke Bedankt. Quote Link naar reactie
anoniem Geplaatst: 28 augustus 2002 Auteur Delen Geplaatst: 28 augustus 2002 [quote:459ab9ca2f="BasHamar"]Allereerst zou ik het emailadres controleren op geldigheid door het op te slaan in bijv. $adres en het te controleren ...[/quote:459ab9ca2f] .info adressen slikt 'ie niet [quote:459ab9ca2f="BasHamar"]Vervolgens wil je de code controleren op het bestaan van een string, dat kan je waarschijnlijk het berste doen met ereg(), of beter nog; met eregi(), aangezien deze geen rekening houdt met hoofdletters, wat in het geval van emailadressen ook niet interessant is. [/quote:459ab9ca2f]Zijn strpos() en/of stristr() niet geschikter? Heb het nooit getest maar een simpele string search lijkt me sneller dan een regexp, als ik fout zit hoor ik het wel :) Quote Link naar reactie
anoniem Geplaatst: 28 augustus 2002 Auteur Delen Geplaatst: 28 augustus 2002 [quote:dd17ff4894="Annie"].info adressen slikt 'ie niet[/quote:dd17ff4894]Sorry, mijn fout... Al die veranderingen op internet ook... ;) Het moet dus zijn:[code:1:dd17ff4894]if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $adres)){ ... // Adres is geldig. }[/code:1:dd17ff4894] [quote:dd17ff4894="Annie"]Zijn strpos() en/of stristr() niet geschikter? Heb het nooit getest maar een simpele string search lijkt me sneller dan een regexp, als ik fout zit hoor ik het wel :)[/quote:dd17ff4894]Hmmm... Misschien heb je wel gelijk, maar ik werk altijd graag met eregi(), weet eigenlijk ook niet waarom. Dussuh, sony: de code is voor verbetering vatbaar, aan jou om dat zelf uit te zoeken. :D - Basje. Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 Mooi en hoe kan je het omdraaien (als het nodig moet zijn) dus dat alleen de opgegeven mails toe gelaten worden. Veder werkt het script zeergoed moet ik zegen. Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 tuurlijk moet je hier strpos gebruiken, een regular expression voor een simpele string is nogal overkill. Misschien met heel veel adressen die je wil checken, maar dan nog... en als je dan toch regexps wilt gebruiken, dan kun je beter met de preg variant in php werken. De werking verschilt niet veel (behalve dat deze veel dichter tegen perl aanligt, waar ik persoonlijk bekender mee ben) maar is wel sneller dan de ereg methode. Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 Ok, ff een vraagje tussendoor aan Jurriaan R... Stel ik heb een pagina met daarop alleen 100 regexps zoals hierboven en ik vervang die door strpos, enig idee hoeveel sneller dat zou zijn? Ongeveer uiteraard, maar in welke orde moet ik dan denken? - Basje. Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 [quote:99d264d5fb="BasHamar"]Ok, ff een vraagje tussendoor aan Jurriaan R... Stel ik heb een pagina met daarop alleen 100 regexps zoals hierboven en ik vervang die door strpos, enig idee hoeveel sneller dat zou zijn? Ongeveer uiteraard, maar in welke orde moet ik dan denken? [/quote:99d264d5fb] kan je daarvoor geen testpaginaatje schrijven? 1. begintijd bepalen 2. stukje code tig keer uitvoeren 3. eindtijd bepalen 4. verschil is de verstreken tijd en dat kan je dan uitvoeren voor de regexp en de strpos (en evt. met verschillende strings: bjiv. lang/kort, veel/weinig matches) Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 het kan tot een paar seconde schelen, maar voor de meeste bewerkingen zitten de verschillen in een paar tienden/honderdsten secondes. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen