Autor | Zpráva | ||
---|---|---|---|
Stalker Profil |
#1 · Zasláno: 2. 7. 2013, 20:41:46
Ahoj,
mám skriptík pro ověření emailové adresy ve formulářovém prvku, nicméně výsledek mi to háže už při načtení stránky. Jak docílím toho, aby byl výsledek načten až po odeslání formuláře? Živá ukázka: http://mcernak.cz/test/script.php Scriptík, kde mi to zatím vypisuje zprávu echem, ale časem to bude ukládat mail do databáze: <?php $mail = isset($_POST["sberna-email"]) ? $_POST["sberna-email"] : ''; function is_email($mail) { if (preg_match("/^[\w-\.]+@([\w-]+\\.)+[a-zA-Z]{2,4}$/", $mail)) return true; else return false; } if (is_email($mail)) { echo "OK"; } else { echo "Není to ok"; } ?> |
||
tiso Profil |
#2 · Zasláno: 2. 7. 2013, 20:55:35
Robí sa to takto:
<?php if (isset($_POST["sberna-email"])) {//ak mame policko z formulara, tak ho otestuj if (is_email($_POST["sberna-email"])) { echo "OK"; } else { echo "Není to ok"; } } function is_email($mail) { if (preg_match("/^[\w-\.]+@([\w-]+\\.)+[a-zA-Z]{2,4}$/", $mail)) return true; else return false; } |
||
Stalker Profil |
#3 · Zasláno: 2. 7. 2013, 21:08:53 · Upravil/a: Stalker
tiso:
Ahá, kua vždy už to skoro celý udělám, ale chybí mi ten poslední krůček. Chce to víc logiky a zkušeností, koukám, že to je furt o tom samým. Díky moc Ještě jedna věc. Výstup z formuláře, si vložím do proměnné, pak můj skriptík funguje dobře a vypadá takto: $zapisEmailu = $_POST["sberna-email"]; function is_email($mail) { if (preg_match("/^[\w-\.]+@([\w-]+\\.)+[a-zA-Z]{2,4}$/", $mail)) return true; else return false; } if (isset($zapisEmailu)) {//ak mame policko z formulara, tak ho otestuj if (is_email($zapisEmailu)) { echo "OK"; } else { echo "Není to ok"; } } 1. Musí být proměnná zapisEmailu "ošetřena" issetem, když se naplní až po kliknutí na Odeslat?
2. Kdy musím formulářový prvek ošetřit proti hacknutí pomocí htmlspecialchars ? Až, když bych chtěl údaje vypisovat někam na web, nebo už ve chvíli, kdy s údaji z formuláře pracuji?
|
||
Kubo2 Profil |
#4 · Zasláno: 3. 7. 2013, 13:52:31
Stalker:
1. Prelož si: is set : je nastavený/(á)? Z toho ti musí logicky vyplynúť, že funkcia isSet() testuje, či bola premenná nastavená (teda či existuje v aktuálnom kontexte <obore platnosti> skriptu), nie či bola inicializovaná alebo či má hodnotu. Na to druhé je tu empty(). 2. Opäť si to prelož: html special chars (characters) : špeciálne html znaky. To znamená, že ak dáta nevypíšeš do html súboru, neuškodia ti. |
||
jenikkozak Profil |
#5 · Zasláno: 3. 7. 2013, 17:44:42
Než nějaký (pochybný) překlad názvů bude lépe si ve zvýrazněných skriptech kliknout na patřičné klíčové slovo. Odkazy vedou na manuál.
|
||
Časová prodleva: 11 let
|
0