Autor Zpráva
emissary
Profil
Zdravím Vás!

function validateMail($email) {
    if($email !== "") {
        if(!ereg("^[A-Za-z0-9\.|-|_]*[@]{1}[A-Za-z0-9\.|-|_]*[.]{1}[a-z]{2,5}$", $email)) {
        echo "Nespravny email";
        $email = "";
        return $email;
         }
        else {
        return $email;
        }
    }
}


if (!empty($_POST['email'])) {validateMail($email);
									echo "$email";}
		else {if (empty($_POST['email'])) {$background_email = "#FFC";}


<td class="text" colspan="3"><input style="background-color:<?php echo "$background_email" ?>;" type="text" name="email" value="<? echo "$email"; ?>"  size="25" maxlength="150" tabindex="10"/></td>


Môj problém spočíva v tom, že chcem dosiahnuť vynulovanie premennej
$email
To by mi mala zaručiť časť skriptu z vyššie uvedenej funkcie
$email = "";
return $email;
Žiaľ nefunguje to tak, pravdepodobne tam je väzba medzi
($_POST['email'])
a
$email
. Teda ak vynulujem
$email
nič sa nestane, pretože keď potom volám
{validateMail($email);
echo "$email";}
tak si
$email
natiahne hodnotu z
($_POST['email'])
. Viete mi nikto poradiť čo s tým? Som začiatočník... :)
Tomashekk
Profil
emissary:
Já využívám toto:
<?
function kontrola_mailu ($kontrola)
  {return ereg("^.+@.+\..+$",$kontrola);}


if(kontrola_mailu($_POST['zprava'])) {
				  $zprava = mysql_real_escape_string(htmlspecialchars($_POST['zprava']));} 
			  else {
				  $zprava = ""; ?><script> alert('Nevyplnil(a) jsi, nebo špatně jsi zadal(a) svůj email');javascript:self.history.back();</script><?php }
				  				  ?>	  
panther
Profil
emissary:
nevím, co je tvůj problém a proč bys měl proměnnou mazat (resp. její obsah). Nějak mi nedává, ani po několikerém čtení, smysl, o co že se to vlastně snažíš.

Smazáním hodnoty proměnné $mail samozřejmě nesmažeš hodnotu proměnné $_POST['mail'] - $_POST se „promaže“ třeba přesměrováním.

A když už jsme u těch regulárů, filter_var znáš? Vyhnul by ses i deprecated funkci ereg*.
Tori
Profil
emissary:
Nemáte zapnuté register_globals?

Tohle by mohlo pomoci, pokud je opravdu zapnuté register_globals.
function validateMail($email='') {
    if($email != "") {
        // V tom reguláru je potřeba buď escapovat dolar, nebo použít apostrofy místo uvozovek.
        if(!ereg('^[A-Za-z0-9\.|-|_]*[@]{1}[A-Za-z0-9\.|-|_]*[.]{1}[a-z]{2,5}$', $email)) { 
        return ''; 
        }
        else {
        return $email;
        }
    }
}

// Tady přepíšete proměnnou $email, ať už v ní bylo cokoli.
$email = validateMail($_POST['email']);
if (!empty($email)) {  
  echo "$email";
}
// a tady je zbytečné ověřovat opak podmínky v IF, když nemáte žádná ELSEIF
else {
  echo "Nespravny email"; // presunute z funkce validateMail.
  $background_email = "#FFC";
}
emissary
Profil
Tomashekk:
Toto je celkom fajn... vyskúšam to vylepšiť. Len javaskript vôbec neovládam... :) Ale snáď to nejako doťuknem. Ďakujem...
emissary
Profil
panther:
Tomashekk to pochopil. Proste je to kontrola formuláru... pokiaľ email nezodpovedá podmienke, tak chcem aby bol zmazaný z políčka... Ale ak bude zadaný správne, tak tam zostane. To pre prípad, ak niekto nevyplní správne nejaké ďalšie časti formuláru a aby tam nemusia opäť vkladať údaje ktoré boli správne. Nič iné nechcem... :)
emissary
Profil
Tori:
Áno sú zapnuté... :) idem to spraviť tak ako si napísal... Ďakujem...
pcmanik
Profil
Tomashekk:
Mas ten skript zle, htmlspecialchars sa pouziva az pri vypise z DB

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: