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: 13 let
|
0