webForumDet fria alternativet

If sats - preg_match

PHP

6 svar · 874 visningar · startad av Simpa

Medlem sedan aug. 20002 992 inlägg
Frågan#1

Vad är fel på denna kod? Den fungerar men genererar alltid att något är fel..!

elseif (!empty($epost) || !preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost) || $epost != "Epost..") 
{
Din epost är inte korrekt ifylld.
}
else
{

Det jag vill är att om $epost inte är tom, ska den kolla så att emailen är ok, men den ska inte generera meddelandet om epost = "Epost.."

Mitt huvud går tydligen på lågvarv för jag lyckas inte få ihop if satsen :)

Medlem sedan aug. 20002 992 inlägg
#2

Testade nu även

elseif (!empty($epost) and preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost) == "False" || $epost != "Epost..")

fast med samma resultat..!

Medlem sedan dec. 19996 592 inlägg
#3

Det jag vill är att om $epost inte är tom, ska den kolla så att emailen är ok, men den ska inte generera meddelandet om epost = "Epost.."

Om $epost är korrekt ifylld (enligt det regujära uttrycket) kan $epost inte samtidigt ha värdet "Epost..".

$epost = "min@mail.com"; // korrekt ifylld 
echo preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost); // Ger 1

$epost = "Epost..";
echo preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost); // Ger 0

[redigerat]
Eller vänta, när du skriver "Epost..", syftar du då på en korrekt mailadress typ admin@sajten.com?

Medlem sedan aug. 20002 992 inlägg
#4

Nej, utan att i mitt formulär så är Value "Email.." och har dem inte valt att fylla i något annat så kommer fortfarande Email.. att skickas som value, vilket jag också vill.

Men Preg generarar alltså 1 om den är korrekt, och 0 om den inte är det, inte TRUE / FALSE?

preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost) == "0"

Borde alltså fungera? Testar..!

* Den säger fortfarande att email addressen är inkorrekt !

Medlem sedan aug. 20002 992 inlägg
#5

Fick igång huvudet, samt scriptet..!

$epostkoll = preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $epost);

elseif (!empty($epost) and $epostkoll == "0" and $epost != "Epost..") 
{
text.
}
Medlem sedan dec. 19996 592 inlägg
#6

[ lite sen... ]

Medlem sedan aug. 20002 992 inlägg
#7

Stort tack iaf Matti!

OT; Vad har hänt med mk.st? :)

255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)