Autor Zpráva
glumet
Profil
Ahoj, předevčírem jsem se začal učit php a dnes se zabývám problematikou regulárních výrazů.

Zkouším si udělat script, který po zadání mailové adresy do formuláře napíše, jestli je formát zadaný dobře (po zadání třeba něco@něco.cz) nebo špatně (po zadání např. něconěco.cz).

Takhle vypadá formulář:

<form action="post.php" method="post">
<br /> Zadejte mail: <br />
<input type="text" name="mail" value="">
<br /><br />
<input type="submit" value="Potvrdit">
</form>

A takhle script na stránce post.php, kam se po odeslání člověk dostane

<?php
if (@ereg("^.+@.+\..+$", $text))
echo "Gratuluji, vami zadany mail je ve spravnem tvaru";
else
echo "Zadali jste mail ve spatnem formatu";
?>

Pořád mi to vypisuje jen "Zadali jste mail ve spatnem formatu"

Nevíte prosím, kdeb y mohl být problém???
Jan Tvrdík
Profil
glumet
Můžeš vysvětlit, pro máš před funkcí ereg ten zavináč?
Místo $text možná použít $_POST['text'] - závisí na register_globals
glumet
Profil
Na localhostu mi to házelo warning, takže po několika experimentování jsem to rozjel takhle...

ps. to řešení s POST nejede :(
Jan Tvrdík
Profil
glumet
OMG, když ti to píše warning, tak to nevyřešíš zavináčem!!! Napiš radši tu chybu, co ti to psalo

EDIT:
Zavináš by se měl používat pouze ve velmi specilních případech a jen tehdy, kdy ho nelze nahradit jiným řešením. Zavináč chybu neopraví, pouze nastaví dočasně error_reporting na 0, takže se chyba nevypíše, ale stále k ní dojde!
ninja
Profil
emal: ^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$
glumet
Profil
Tak jsem zjistil, ze problem asi nebude v zapisu scriptu... ona se mi totiz hodnota zadana do formulare vubec ve vyslednem scriptu nezobrazi... ve formulari mam v inputu name="mail", na ktery se pozdeji ve scriptu odvolavam jako $mail, ale zadna hodnota v tom neni...

ale jsem blazen... kamaradovi to na localhostu bezi v poradku. Pritom ma verze php je 5.2.3, tak by to melo byt ok
glumet
Profil
Tak už jsem si pomohl...
Dranel
Profil
A řekneš nám jak? :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: