Bekijk Volledige Versie : PHP - Iets filteren uit een tekst
Hallo,
In een formulier moet iemand een e-mailadres invullen en ik ga dat opgegeven
e-mailadres bekijken of het wel een e-mailadres is/kan zijn.
Daarvoor heb ik vreschillende patterns die ik nog eens allemaal zal
controleren welke het beste is. Ik kijk dan of er een geldig adres staat in
de opgegeven tekst:
if ( eregi(
"[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",
$email_address)){
// code
}
Werkt helemaal goed, maar...... Als iemand invoert naam@q1q1q1.nl AND
DELETE WHERE 1=1' of zoiets dan sla ik het zo op in mijn database, en dat
wil ik niet. Ik wil dat hij het stuk string wat voldoet aan mijn pattern of
patroon eruit haalt zodat ik DAT in mijn database kan opslaan.
Ik heb het al geprobeerd met :
$patroon = "([a-zA-Z0-9_-.]*)@([a-zA-Z0-9_-]*).([a-zA-Z]{2,4})" ;
preg_match ($patroon, $email_address, $eruit);
// $eruit = preg_grep($patroon, $email);
echo "eruit = ".$eruit[1]." <br>";
Plus hier nog wat varianten van ;-)
en natuurlijk veel gezocht met Google , veel gevonden en gelezen maar helaas
niet het antwoord. Daarom mijn vraag; ik hoef geen code te hebben maar
alleen welke functie ik moet gaan gebruiken voor het eruitvissen van een
stuk string uit een andere string dat voldoet aan een patroon?.
Alvast bedankt!
Haico
Erick T. Barkhuis
10/12/05, 17:45
> In een formulier moet iemand een e-mailadres invullen en ik ga dat
> opgegeven e-mailadres bekijken of het wel een e-mailadres is/kan zijn.
Verstandig.
[eregi]
> Werkt helemaal goed, maar...... Als iemand invoert naam@q1q1q1.nl AND
> DELETE WHERE 1=1' of zoiets dan sla ik het zo op in mijn database, en dat
> wil ik niet.
Nee, natuurlijk niet. Je wilt 'm er van langs geven!
> Ik wil dat hij het stuk string wat voldoet aan mijn pattern of
> patroon eruit haalt zodat ik DAT in mijn database kan opslaan.
Eh? Waarom wil je zulke invoer goedkeuren?
> welke functie ik moet gaan gebruiken voor het eruitvissen van een
> stuk string uit een andere string dat voldoet aan een patroon?.
En wat wil je dan doen als zo'n belhamel gaat invoeren:
"piet@jan.en.klaas@gerrit.nl maar ook truus@invoer.com"
--
Erick
"You have the right to remain silent. Anything you say will be misquoted,
then used against you."
"Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef in bericht
news:MPG.1e05218d86784edf989ba6@news.individual.ne t...
>
>> In een formulier moet iemand een e-mailadres invullen en ik ga dat
>> opgegeven e-mailadres bekijken of het wel een e-mailadres is/kan zijn.
>
> Verstandig.
Heb ik van jullie geleerd ;-)
>
>> Ik wil dat hij het stuk string wat voldoet aan mijn pattern of
>> patroon eruit haalt zodat ik DAT in mijn database kan opslaan.
>
> Eh? Waarom wil je zulke invoer goedkeuren?
OK, misschien wil ik wel een foutmelding gaan maken a la "Uw invoer was niet
helemaal correct, bedoelde u soms dit? "
>
>> welke functie ik moet gaan gebruiken voor het eruitvissen van een
>> stuk string uit een andere string dat voldoet aan een patroon?.
>
> En wat wil je dan doen als zo'n belhamel gaat invoeren:
> "piet@jan.en.klaas@gerrit.nl maar ook truus@invoer.com"
Dan wil ik helemaal niets gaan doen. Ik kan natuurlijk al bij voorbaat de
invoer weigeren omdat er een mogelijkheid bestaat dat iemand iets in gaat
voeren dat niet de bedoeling is....Beetje afhankelijk van de functie. Ik heb
begrepen dat tenminste enkele van die functies die patronen zoeken, de
gevonden patronen opslaan in een array. Misschien krijg je dan wel 3 waarden
piet@jan.en , en.kees@gerrit.nl en truus@invoer.com. Dan zou het
makkelijk zijn om met count() het aantal items te tellen en bij meer als 1
alsnog de hele boel te weigeren.
Of inderdaad; indien de invoer mer als een mogelijk geldig e-mailadres
bevat; weigeren.
Maar ik wil in ieder geval weten of er behalve een mogelijk geldig adres nog
meer is ingevuld voordat ik het in mijn database opsla.
Dus als iemand daar alsnog de functie voor weet, dan graag.
Groeten,
Haico
Erick T. Barkhuis
10/12/05, 21:15
> Maar ik wil in ieder geval weten of er behalve een mogelijk geldig adres nog
> meer is ingevuld voordat ik het in mijn database opsla.
>
> Dus als iemand daar alsnog de functie voor weet, dan graag.
Je zou met preg_match() de mailstring kunnen vinden, en vervolgens de
lengte van die mailstring kunnen vergelijken met de lengte van de
volledige invoer.
--
Erick
"Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef in bericht
news:MPG.1e0553f12b321d44989ba9@news.individual.ne t...
>
>> Maar ik wil in ieder geval weten of er behalve een mogelijk geldig adres
>> nog
>> meer is ingevuld voordat ik het in mijn database opsla.
>>
>> Dus als iemand daar alsnog de functie voor weet, dan graag.
>
> Je zou met preg_match() de mailstring kunnen vinden, en vervolgens de
> lengte van die mailstring kunnen vergelijken met de lengte van de
> volledige invoer.
>
Dus toch preg_match. Zat ik daar tenminste op de goede weg. Op php.net het
volgende:
preg_match ( string pattern, string subject [, array &matches [, int flags
[, int offset]]] )
Dus had ik deze code geschreven:
37> $patroon = "([a-zA-Z0-9_-.]*)@([a-zA-Z0-9_-]*).([a-zA-Z]{2,4})" ;
38> preg_match ($patroon, $email_address, $eruit);
Warning: preg_match(): Unknown modifier '@' in
/home/users/jag/uuui/proeven/validate_email.php on line 38
38> $patroon =
"[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+"
;
39> preg_match ($patroon, $email_address, $eruit);
Warning: preg_match(): Unknown modifier '+' in
/home/users/jag/uuui/proeven/validate_email.php on line 39
Haico
Jeffrey Drooghenbroodt
11/12/05, 00:30
Haico wrote:
> Dus toch preg_match. Zat ik daar tenminste op de goede weg. Op
> php.net het volgende:
> preg_match ( string pattern, string subject [, array &matches [,
> int flags [, int offset]]] )
> Dus had ik deze code geschreven:
>
> 37> $patroon =
> "([a-zA-Z0-9_-.]*)@([a-zA-Z0-9_-]*).([a-zA-Z]{2,4})" ; 38>
> preg_match ($patroon, $email_address, $eruit);
>
> Warning: preg_match(): Unknown modifier '@' in
> /home/users/jag/uuui/proeven/validate_email.php on line 38
$email_address = "mijn adres is abc@def.com ofzo";
$patroon = "([a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9_\-]+\.[a-zA-Z]{2,4})";
preg_match ($patroon, $email_address, $eruit);
// resultaat:
// $eruit[0] => abc@def.com
finalwebsites.com
11/12/05, 11:30
Hoi,
Het pattern van Jeffrey is al goed, maar je kan ook nog bepalen dat het
veld alleen het adres bevat: (let op de het ^teken aan het begin en het
$ teken aan het eind)
zie ook het e-mail validation snippet op:
http://www.finalwebsites.com/snippets.php?id=27
gr. Olaf
Erick T. Barkhuis
11/12/05, 11:45
finalwebsites.com:
> Het pattern van Jeffrey is al goed, maar je kan ook nog bepalen dat het
> veld alleen het adres bevat:
Pfff....
dat is al gesuggereerd, maar zoals je ongetwijfeld in deze thread hebt
gelezen (?) wilde hij dat niet.
--
Erick
"The right to be heard does not include the right to be taken
seriously." - Hubert Humphrey
> $email_address = "mijn adres is abc@def.com ofzo";
>
> $patroon = "([a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9_\-]+\.[a-zA-Z]{2,4})";
> preg_match ($patroon, $email_address, $eruit);
>
> // resultaat:
> // $eruit[0] => abc@def.com
Bedankt Jeffrey, het werkt nu.
Haico
"Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef in bericht
>> Het pattern van Jeffrey is al goed, maar je kan ook nog bepalen dat het
>> veld alleen het adres bevat:
>
> Pfff....
> dat is al gesuggereerd, maar zoals je ongetwijfeld in deze thread hebt
> gelezen (?) wilde hij dat niet.
>
Mijn excuses, ik had ^ en $ verkeerd begrepen, begrijp ik nu . Dan moet mijn
eerdere opmerking over dat ik wou weten 'of er nog meer dan een geldig adres
was ingevoerd' nogal dom hebben geklonken :-( Ach ja, weer wat
geleerd....
Haico
Jeffrey Drooghenbroodt schreef:
> Haico wrote:
>
> > Dus toch preg_match. Zat ik daar tenminste op de goede weg. Op
> > php.net het volgende:
> > preg_match ( string pattern, string subject [, array &matches [,
> > int flags [, int offset]]] )
> > Dus had ik deze code geschreven:
> >
> > 37> $patroon =
> > "([a-zA-Z0-9_-.]*)@([a-zA-Z0-9_-]*).([a-zA-Z]{2,4})" ; 38>
> > preg_match ($patroon, $email_address, $eruit);
> >
> > Warning: preg_match(): Unknown modifier '@' in
> > /home/users/jag/uuui/proeven/validate_email.php on line 38
>
> $email_address = "mijn adres is abc@def.com ofzo";
>
> $patroon = "([a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9_\-]+\.[a-zA-Z]{2,4})";
> preg_match ($patroon, $email_address, $eruit);
>
> // resultaat:
> // $eruit[0] => abc@def.com
>
En wat doet 'ie met *geldige* e-mailadressen als <a+b@smithsonian.museum>,
<eli @ [204 . 141 . 25]> of <S=N.OTHER/OU1=X12345A/RECIPNUM=1/MTA-
BASIC@attmail.com> [1]? Allemaal geldige adressen die worden afgekeurd.
En zelfs minder exotische adressen als <test@bla.example.com> worden ten
onrechte afgekeurd.
Groet,
Wimjan
[1]: zie voor meer pret <http://www.faqs.org/faqs/mail/addressing/> onder
'20. Any other addressing suggestions?'. Als teaser het volgende e-mailadres
dat syntactisch en ook anderszins correct is:
<news @ inventio (het Engelse woord voor uitvinding minus de laatste n) .nl>
Mailtjes aan bovenstaand adres komen dus gewoon aan.
--
Sleet is van vroeger, tegenwoordig gaat alles kapot.
Jeffrey Drooghenbroodt
11/12/05, 18:45
Wimjan wrote:
>> $email_address = "mijn adres is abc@def.com ofzo";
>>
>> $patroon = "([a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9_\-]+\.[a-zA-Z]{2,4})";
>> preg_match ($patroon, $email_address, $eruit);
>>
>> // resultaat:
>> // $eruit[0] => abc@def.com
>>
> En wat doet 'ie met *geldige* e-mailadressen als
> <a+b@smithsonian.museum>, <eli @ [204 . 141 . 25]> of
> <S=N.OTHER/OU1=X12345A/RECIPNUM=1/MTA- BASIC@attmail.com> [1]?
> Allemaal geldige adressen die worden afgekeurd.
>
> En zelfs minder exotische adressen als <test@bla.example.com>
> worden ten onrechte afgekeurd.
Zo exotisch hoeft het zelfs allemaal niet, zelfs een .co.uk adres raakt
niet door die regex. Maar als de OP met dat $patroon komt opdagen, dan
bouw ik daar gewoon op verder. Misschien wil hij wel helemaal geen
..co.uk adressen goedkeuren?
En anders zijn er nog genoeg alternatieven voor, zoals
$patroon = '/[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+/i';
Daar raken toch al wat meer van die exotische exemplaren door...
> <news @ inventio (het Engelse woord voor uitvinding minus de laatste n)
> .nl>
>
> Mailtjes aan bovenstaand adres komen dus gewoon aan.
>
Verdorie, hij heeft nog gelijk ook, ik heb het geprobeerd met bijna het
onderstaande e-mailadres ( proefje was hspaapen) en ik ontving gewoon de
e-mail, en nog bezorgbaar ook....
proefje @ tiscali (het Engelse woord voor het is C Ali) .nl <proefje @
tiscali (het Engelse woord voor het is C Ali) .nl>
Nu lijkt het me wel heel moeilijk te worden om een goed pattern te
schrijven. Wat mij betreft heb ik gewoon pech wat die adressen betreft. Als
ik een voorzichtige schatting doe dan weiger ik maximaal 50% van de
adressen, dat vind ik acceptabel :-) Misschien valt het wel mee.
Haico
Maarten Wierda
11/12/05, 19:00
Haico wrote:
> Hallo,
Hoi,
> In een formulier moet iemand een e-mailadres invullen en
> ik ga dat opgegeven e-mailadres bekijken of het wel een
> e-mailadres is/kan zijn.
Maar wat als ik maarten@wierda.com invul? Dat is niet mijn
e-mail adres, maar wel een 'geldige' - ook volgens vele
/regexps/. In dat geval heb je alsnog foutieve informatie in
je database staan.
Ik weet niet voor wat voor soort toepassing je dit stukje
controle gaat gebruiken, maar misschien moet je iets minder
tijd steken in ueberhippe regexps, en gewoon via e-mail
verifiëren of het ingevulde e-mail adres daadwerkelijk het
e-mail adres is van de gebruiker.
1) Controleer een 'beetje' op het e-mail adres, maar sta het
e-mail adres 'bij twijfel' gewoon toe.
2) Stuur een e-mail naar dat e-mail adres waarin je vraagt
de inschrijving (of wat dan ook) te bevestigen via een url.
3a) De inschrijving is bevestigd, inschrijving geslaagd.
3b) Is er na - pak 'em beet - 48 uur nog niet gereageerd,
verwijder dan - geldig e-mail adres of niet - het
betreffende account.
Succes.
--
Cheers,
Maarten Wierda
Erick T. Barkhuis
11/12/05, 19:15
> Nu lijkt het me wel heel moeilijk te worden om een goed pattern te
> schrijven.
Dat valt wel mee.
Onlangs nog gaf Eric Bednarz deze suggestie:
==========================
Om inspiratie op te doen zou je de reguliere expressie uit het Perl
module Mail::RFC822::Address kunnen bestuderen.
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?
[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^
\"\r\\]|\\.|(?:(?:\r\n)?[\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])
*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r
\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*
\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?
[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:
\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*
\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".
\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:
[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?
[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:
(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]
+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)
*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^
\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])
*(?:(?:(?:[^()<>@,;:\\".\[\]\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:
(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:
(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:
\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|
\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()
<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^
\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[
\t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.
(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])
*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r
\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]\000-\031]+(?:
(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]
(?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))
*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:
\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^
\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()
<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\rn)?
[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?
[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:
(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))
*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]
\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:
\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|
\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^
()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r
\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|
(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|
(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])
*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r
\n)?[ \t])*))*)?;\s*)
--
Erick
Haico wrote:
>> <news @ inventio (het Engelse woord voor uitvinding minus de laatste
>> n) .nl>
>>
>> Mailtjes aan bovenstaand adres komen dus gewoon aan.
>>
>
> Verdorie, hij heeft nog gelijk ook, ik heb het geprobeerd met bijna
> het onderstaande e-mailadres ( proefje was hspaapen) en ik ontving
> gewoon de e-mail, en nog bezorgbaar ook....
>
> proefje @ tiscali (het Engelse woord voor het is C Ali) .nl <proefje @
> tiscali (het Engelse woord voor het is C Ali) .nl>
>
> Nu lijkt het me wel heel moeilijk te worden om een goed pattern te
> schrijven. Wat mij betreft heb ik gewoon pech wat die adressen
> betreft. Als ik een voorzichtige schatting doe dan weiger ik maximaal
> 50% van de adressen, dat vind ik acceptabel :-) Misschien valt het
> wel mee.
> Haico
Ik heb niet alles gelezen, weet niet de exacte opzet van je site, maar je
kan iemand laten aanmelden, direct een bevestigingsemail sturen met daarin
een activatiecode. Dan ben je van al dat omslachtige gedoe af. Heeft
voordeel dat als de gebruiker per ongeluk een typfout maakt in het
emailadres, dat deze dat zelf ook ontdekt.
SF
Erick T. Barkhuis
11/12/05, 19:15
SF:
> Ik heb niet alles gelezen, weet niet de exacte opzet van je site, maar je
> kan iemand laten aanmelden, direct een bevestigingsemail sturen met daarin
> een activatiecode.
Had de thread maar wel gelezen. Met jouw opzet komt toch "AND DELETE
WHERE 1=1" in de database terecht.
--
Erick
"Senior-ontwerpers: mensen die in de boomtijd bij 0 zijn begonnen en in
de laatste 7 jaar niets meer erbij geleerd hebben" - Eric B. Bednarz in
niwo
Erick T. Barkhuis
11/12/05, 19:30
Wimjan:
> Erick T. Barkhuis schreef:
> > (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?
> > [ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
> > \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
[...]
> [ik heb deze regexp uit respect laten staan]
Ik dan maar even niet.
> Kom op Erick, ik had de OP toch al de moed in de schoenen doen zakken?
Dat is wel zo, maar zojuist ontdekte ik dat EBB deze regexp kwootte als
antwoord op een post van.....Haico slechts twee weken geleden. De OP
heeft kennelijk over hetzelfde onderwerp een nieuwe thread geopend, in
plaats van gewoon even de genoemde regexp over te tiepen en te gebruiken.
Mooie boel! :-)
--
Erick
"I like kids, but I don't think I could eat a whole one"
Erick T. Barkhuis wrote:
> SF:
>
>> Ik heb niet alles gelezen, weet niet de exacte opzet van je site,
>> maar je kan iemand laten aanmelden, direct een bevestigingsemail
>> sturen met daarin een activatiecode.
>
> Had de thread maar wel gelezen. Met jouw opzet komt toch "AND DELETE
> WHERE 1=1" in de database terecht.
die term zegt me niks. Iemand komt pas in de database terecht na de
activatie, dus met een geldig emailadres. Als je het ip-adres ook nog
noteert kan je iemand blokkeren die vervelende mails achterlaat (op ip-adres
dan wel te verstaan).
SF
Erick T. Barkhuis
11/12/05, 20:00
SF:
> Erick T. Barkhuis wrote:
> > SF:
> >
> >> Ik heb niet alles gelezen, weet niet de exacte opzet van je site,
> >> maar je kan iemand laten aanmelden, direct een bevestigingsemail
> >> sturen met daarin een activatiecode.
> >
> > Had de thread maar wel gelezen. Met jouw opzet komt toch "AND DELETE
> > WHERE 1=1" in de database terecht.
>
> die term zegt me niks.
Dat komt doordat je de thread niet hebt gelezen, waarschijnlijk.
> Iemand komt pas in de database terecht na de
> activatie, dus met een geldig emailadres.
Goh. En waar staan zolang alle eerder ingevoerde gegevens (if any), dan?
Je zult toch iets moeten bewaren om tegen de 'bevesiging' te kunnen
houden.
> Als je het ip-adres ook nog noteert
"noteert" zoals in "opslaan, ergens"? Of bedoel je werkelijk met papier
en potlood?
--
Erick
"Het gaat erom dat je links maakt die naar een target kunnen verwijzen en
frames schijnen taboe te zijn" - SF in niwo
Erick T. Barkhuis
11/12/05, 20:00
SF:
> Erick T. Barkhuis wrote:
> > SF:
> >
> >> Ik heb niet alles gelezen, weet niet de exacte opzet van je site,
> >> maar je kan iemand laten aanmelden, direct een bevestigingsemail
> >> sturen met daarin een activatiecode.
> >
> > Had de thread maar wel gelezen. Met jouw opzet komt toch "AND DELETE
> > WHERE 1=1" in de database terecht.
>
> die term zegt me niks.
Dat komt doordat je de thread niet hebt gelezen, waarschijnlijk.
> Iemand komt pas in de database terecht na de
> activatie, dus met een geldig emailadres.
Goh. En waar staan zolang alle eerder ingevoerde gegevens (if any), dan?
Je zult toch iets moeten bewaren om tegen de 'bevestiging' te kunnen
houden.
> Als je het ip-adres ook nog noteert
"noteert" zoals in "opslaan, ergens"? Of bedoel je werkelijk met papier
en potlood?
--
Erick
"Het gaat erom dat je links maakt die naar een target kunnen verwijzen en
frames schijnen taboe te zijn" - SF in niwo
Erick T. Barkhuis wrote:
> SF:
>> Erick T. Barkhuis wrote:
>>> SF:
>>>
>>>> Ik heb niet alles gelezen, weet niet de exacte opzet van je site,
>>>> maar je kan iemand laten aanmelden, direct een bevestigingsemail
>>>> sturen met daarin een activatiecode.
>>>
>>> Had de thread maar wel gelezen. Met jouw opzet komt toch "AND DELETE
>>> WHERE 1=1" in de database terecht.
>>
>> die term zegt me niks.
>
> Dat komt doordat je de thread niet hebt gelezen, waarschijnlijk.
>
>> Iemand komt pas in de database terecht na de
>> activatie, dus met een geldig emailadres.
>
> Goh. En waar staan zolang alle eerder ingevoerde gegevens (if any),
> dan? Je zult toch iets moeten bewaren om tegen de 'bevestiging' te
> kunnen houden.
>
>> Als je het ip-adres ook nog noteert
>
> "noteert" zoals in "opslaan, ergens"? Of bedoel je werkelijk met
> papier en potlood?
1 keer is genoeg. Kan je niet een tijdelijke 2e database maken en die pas na
activatie overschrijven in de 1e?
SF
Erick T. Barkhuis
11/12/05, 20:45
SF:
> Erick T. Barkhuis wrote:
> > SF:
> >> Iemand komt pas in de database terecht na de
> >> activatie, dus met een geldig emailadres.
> >
> > Goh. En waar staan zolang alle eerder ingevoerde gegevens (if any),
> > dan?
> 1 keer is genoeg. Kan je niet een tijdelijke 2e database maken en die
> pas na activatie overschrijven in de 1e?
Natuurlijk. Maar waarom mag destructieve code wel in database nummer 2
terechtkomen, dan?
--
Erick
"Success always occurs in private, and failure in full view."
"Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef
> Natuurlijk. Maar waarom mag destructieve code wel in database nummer 2
> terechtkomen, dan?
>
> --
> Erick
>
die kan je toch droppen?
SF
Erick T. Barkhuis
11/12/05, 22:15
SF:
>
> "Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef
> > Natuurlijk. Maar waarom mag destructieve code wel in database nummer 2
> > terechtkomen, dan?
> >
> die kan je toch droppen?
Even terug naar de situatie, dan.
Het gaat om aanmelding middels een formulier. Jij suggereert aanmelding
met bevestiging via e-mail.
Dat betekent, dat de gegevens van de aanmelder tijdelijk bewaard moeten
worden, totdat de aanmelder zijn aanmelding bevestigt. Pas daarna worden
die gegevens in de database definitief vastgelegd (bijvoorbeeld door
wijziging van een status-veld, of door het kopieren van zijn gegevens
naar een andere database, zoals jij voorstelt).
_ALS_ je al een tweede database gebruikt voor het tijdelijk vasthouden
van gegevens, kun je die natuurlijk niet verwijderen zodra de bevestiging
heeft plaatsgevonden. Immers, de onderhavige persoon is niet de enige die
zich aanmeldt. Die tijdelijke database zit helemaal vol met aanmelders,
die zich al dan niet definitief aanmelden. Sommigen blijven een hele tijd
in die gegevensbak zitten. Een script zal op enig moment moeten besluiten
dat die aanmelders kennelijk niet de moeite nemen om hun inschrijving te
bevestigen...en het zal de database moeten schonen.
Ga je die database verwijderen, dan verwijder je tevens de gegevens van
degenen van wie de gegevens nog even moeten worden bewaard in afwachting
van bevestiging.
Nee, zo eenvoudig als jij het hier voorstelt is het allemaal niet.
--
Erick
"Ik wil graag een server op mijn pc laten draaien en hierop mijn
bestanden plaatsen. Nou is dit mogelijk, alleen het mag niet" - Etienne
in niwo
Erick T. Barkhuis wrote:
> SF:
>>
>> "Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef
>>> Natuurlijk. Maar waarom mag destructieve code wel in database
>>> nummer 2 terechtkomen, dan?
>
>>>
>> die kan je toch droppen?
>
> Even terug naar de situatie, dan.
> Het gaat om aanmelding middels een formulier. Jij suggereert
> aanmelding met bevestiging via e-mail.
>
> Dat betekent, dat de gegevens van de aanmelder tijdelijk bewaard
> moeten worden, totdat de aanmelder zijn aanmelding bevestigt. Pas
> daarna worden die gegevens in de database definitief vastgelegd
> (bijvoorbeeld door wijziging van een status-veld, of door het
> kopieren van zijn gegevens naar een andere database, zoals jij
> voorstelt).
>
> _ALS_ je al een tweede database gebruikt voor het tijdelijk vasthouden
> van gegevens, kun je die natuurlijk niet verwijderen zodra de
> bevestiging heeft plaatsgevonden. Immers, de onderhavige persoon is
> niet de enige die zich aanmeldt. Die tijdelijke database zit helemaal
> vol met aanmelders, die zich al dan niet definitief aanmelden.
> Sommigen blijven een hele tijd in die gegevensbak zitten. Een script
> zal op enig moment moeten besluiten dat die aanmelders kennelijk niet
> de moeite nemen om hun inschrijving te bevestigen...en het zal de
> database moeten schonen.
> Ga je die database verwijderen, dan verwijder je tevens de gegevens
> van degenen van wie de gegevens nog even moeten worden bewaard in
> afwachting van bevestiging.
>
> Nee, zo eenvoudig als jij het hier voorstelt is het allemaal niet.
wat omslachtig allemaal zoals jij dat wil doen. Die tijdelijke database kan
1 gegeven bevatten, gecreeerd worden en gedropt worden. Maakt het uit dat je
misschien 10 tijdelijke databases hebt, zolang ze maar weer weggaan als ze
niet meer nodig zijn
Is er niet iets eenvoudigs met cgi/perl die dit soort problemen oplost?
SF
SF wrote:
>>
>> Nee, zo eenvoudig als jij het hier voorstelt is het allemaal niet.
>
ik vond net een interessante tutorial
http://www.sitepoint.com/article/anthology-2-1-access-control/7
misschien niet helemaal wat jullie zochten, maar wel aardig om naar te
kijken dacht ik
SF
>> Kom op Erick, ik had de OP toch al de moed in de schoenen doen zakken?
>
> Dat is wel zo, maar zojuist ontdekte ik dat EBB deze regexp kwootte als
> antwoord op een post van.....Haico slechts twee weken geleden. De OP
> heeft kennelijk over hetzelfde onderwerp een nieuwe thread geopend, in
> plaats van gewoon even de genoemde regexp over te tiepen en te gebruiken.
> Mooie boel! :-)
>
OK, ik geef toe niet alles te (kunnen) proberen wat me wordt aangegeven.
Gezien het aantal nieuwe posts in deze NG ben ik misschien wel heel erg
NOOB. In ieder geval iedereen bedankt voor de suggesties en antwoorden op
mijn vragen.
Groet,
Haico
Geert Wirken
12/12/05, 00:45
Erick T. Barkhuis schreef op 11-12-2005 22:09:
> Ga je die database verwijderen, dan verwijder je tevens de gegevens van
> degenen van wie de gegevens nog even moeten worden bewaard in afwachting
> van bevestiging.
Je kunt een veld maken met daarin de timestamp van het moment dat de
gebruiker zich heeft aangemeld. Als je dat hebt kun je heel eenvoudig
een scriptje schrijven die alle aanmelders ouder dan 48 uur verwijderen.
> Nee, zo eenvoudig als jij het hier voorstelt is het allemaal niet.
Mwah. Ik zie uberhaupt het probleem van 'destructieve code' niet zo,
addslashes erover heen en wat is het probleem dan nog? Je kunt allicht
geen mailtje meer versturen, maar dat is ook de reden om rare
e-mailadressen af te vangen met een regex.
--
Met vriendelijke groeten,
Geert Wirken
"Maarten Wierda" <moart3nAT@chelloDOT.nl> schreef in bericht
news:dnhp1j$5vo$1@nl-news.euro.net...
> Ik weet niet voor wat voor soort toepassing je dit stukje
> controle gaat gebruiken, maar misschien moet je iets minder
> tijd steken in ueberhippe regexps, en gewoon via e-mail
> verifiëren of het ingevulde e-mail adres daadwerkelijk het
> e-mail adres is van de gebruiker.
>
> 1) Controleer een 'beetje' op het e-mail adres, maar sta het
> e-mail adres 'bij twijfel' gewoon toe.
> 2) Stuur een e-mail naar dat e-mail adres waarin je vraagt
> de inschrijving (of wat dan ook) te bevestigen via een url.
> 3a) De inschrijving is bevestigd, inschrijving geslaagd.
> 3b) Is er na - pak 'em beet - 48 uur nog niet gereageerd,
> verwijder dan - geldig e-mail adres of niet - het
> betreffende account.
Dat is dus ook uiteindelijk mijn bedoeling, maar omdat ik niet wist dat het
ook mogelijk was/is om de totale invoer van een textbox te valideren of het
een e-mailadres is of niet ( dus het begin van de textbox-string moet het
begin zijn van het geldige e-mailadres en het einde van de textboxstring
moet het eind zijn van het hetzelfde geldige e-mailadres , ofwel ^ en $ )
heb ik een beetje 'onnodig' deze draad gestart.
Haico