| Autor | Zpráva | ||
|---|---|---|---|
| emissary Profil |
#1 · Zasláno: 16. 1. 2011, 15:08:43
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 = ""; return $email; ($_POST['email']) {validateMail($email);
echo "$email";}($_POST['email']) |
||
| Tomashekk Profil |
#2 · Zasláno: 16. 1. 2011, 15:44:27
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 |
#3 · Zasláno: 16. 1. 2011, 15:49:54
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 |
#4 · Zasláno: 16. 1. 2011, 15:53:41 · Upravil/a: Tori
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 |
#5 · Zasláno: 16. 1. 2011, 15:54:15
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 |
#6 · Zasláno: 16. 1. 2011, 15:59:24 · Upravil/a: emissary
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 |
#7 · Zasláno: 16. 1. 2011, 16:19:21
Tori:
Áno sú zapnuté... :) idem to spraviť tak ako si napísal... Ďakujem... |
||
| pcmanik Profil |
#8 · Zasláno: 16. 1. 2011, 16:21:27
Tomashekk:
Mas ten skript zle, htmlspecialchars sa pouziva az pri vypise z DB |
||
|
Časová prodleva: 16 let
|
|||
0