Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
[PHP] Probleme validare formular
Last Updated: Jan 28 2016 23:40, Started by
colombo2003
, Jan 27 2016 15:45
·
0
#1
Posted 27 January 2016 - 15:45
Versiunea PHP curenta a webserverului este 5.6.10.
Intr-o pagina, de test, am cel mai simplu exemplu de formular (cu un camp text, de nume, si un buton), dar imi functioneaza. Si nu inteleg de ce. Logica ar fi asa: - daca acel camp este necompletat si apas butonu => sa apara mesaj ca acel camp e obligatoriu; - daca acel camp contine cifre => sa apara mesaj ca trebuie numai litere (ce nume ar fi ala cu cifre?) - daca sunt numai litere, dar lungimea este mai mica decat 3 caractere => mesaj ca trebuie introduse cel putin 3 caractere - daca totul e ok => sa apara un alt mesaj (success! sau ok). Am incercat cu empty($_POST['nume']), cu ctype_alnum($_POST['nume'], cu ctype_digit($_POST['nume'], cu $_POST['nume']="", dar nici una dintre variantele astea nu dau rezultatul corect. Am incercat si cu isset si &&error, si fara (doar afisarea mesajului), dar nici asa nu vrea. Ce anume nu functioneaza? Unde gresesc? Multumesc. <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> </head> <body> <?php include 'scripts/contact1.php'; ?> <form action="Contact1.php" method="POST" accept-charset="UTF-8"> <table id="formular"> <tr> <td><label for="nume">Nume</label></td> <td><input type="text" name="nume" id="nume" /></td> <td><?php if(isset($errors['nume'])&&$error) { print $errors['nume']; } ?></td> </tr> <tr> <td></td> <td><button type="submit" name="trimite" title="Trimite mesajul" />Trimite</button></td> </tr> </table> </form> <script src="/scripts/jquery.min.js"></script> </body> </html> Si scriptul de validare: <?php if (isset($_POST['trimite'])) { $error = FALSE; if(ctype_digit($_POST['nume'])) { $errors['nume'] = "Numai litere"; $error = TRUE; } else{ if (strlen($_POST['nume']) < 3) { $errors['nume'] = "Min. 3 caract"; $error = TRUE; } else { $errors['nume'] = "OK!"; } } } ?> |
#2
Posted 27 January 2016 - 17:04
Practic nu mi se afiseaza mesaj decat daca introduc 3 caractere (indiferent ca-s litere si/sau cifre). In orice alta combinatie, nu afiseaza nimic (si nu afiseaza mesajul care trebuie),
|
#3
Posted 27 January 2016 - 19:06
Scriptul tău de validare (Contact1.php - e pus la form action) nu are nici un print sau echo sau cod html ca să aibă ce să-ți afișeze.
|
#4
Posted 27 January 2016 - 19:43
1) Contact1.php este pagina in care este formularul. Scriptul de validare, da, are si el acelasi nume, dar se gaseste in /scripts/
2) De fapt formularul pe care il am, este mult mai mare si complex, a functionat bine merci, pana... nici eu nu stiu pana cand, cand am descoperit, intamplator ca nu mai functioneaza. El a fost facut pe vremea cand versiunea PHP de pe webserver era 5.1.x,; au mai fost apoi niste modificari aduse in versiunea 5.2.x si cam atat. Am zis sa investighez, si am lasat practic cel mai simplu formular (cu o singura variabila), cu 3 conditii, dar vad ca nici asta nu functioneaza. 3) Afisarea mesajului (de eroare sau success), le fac in pagina (nu in script), acolo unde am pus print $errors. Totusi ceva idei pentru a face sa functioneaza acest caz simplu? Merci. LE. Nu merge nici daca la action las numele aceeasi pagini, sau [PHP_SELF] sau nimic. Edited by colombo2003, 27 January 2016 - 19:47. |
#5
Posted 27 January 2016 - 23:52
Fratilor, e de belea!
Am renuntat la cazuri, si vreau,si mai simplu, sa se afiseze doar lungimea sirului introdus. Pentru asta folosesc strlen($_POST['nume']). Si, se afiseaza corect, doar pentru cazul in care introduc doar 3 caractere (afiseaza 3). Atat. Pentru orice alta lungime a sirului, nu se afiseaza nimic? Cum vine asta? De ce acest comportament? Pliiiiz, help! Help! Help! |
#7
Posted 28 January 2016 - 23:40
Gata, am reusit si am rezolvat! Problema era in script.
Multumesc se poate inchide! |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users