Problema funcite preg_match!

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
BBsTyLe
Mesaje:10

Problema funcite preg_match!

Am si eu o problema, am facut un script de autentificare-inregistrare, iar la inregistrare am bagat un camp cu 'Varsta', iar acesta vreau sa permita doar scrierea de numere, am bagat asa:

Cod: Selectaţi tot

} else if(!preg_match("/^[0-9]&/", $varsta)){
  $eroare = 'Pentru a completa varsta nu ai nevoie de litere!'. $inapoi; 
Dar vad ca bag numere si imi da rateuri :-? ma poate ajuta cineva cu un preg_match bun?.. nu am gasit nicaieri exlicarea preg_match-ului in romana :D

BBsTyLe Mesaje:10
Si mai am o problema, scriptul care l-am facut de autentificare-inregistrare m-am ajutat foarte mult de acesta dupa site, si nu prea inteleg ceva, avem o bucla asa:

Cod: Selectaţi tot

if(isset($_POST['inregistrare']) && isset($_POST['numarv'])) {
    if(!$_POST['nume'] || !$_POST['parola'] || !$_POST['parola2'] || !$_POST['email'] || !$_POST['varsta'] || !$_POST['oras']) {
        $eroare = 'Nu ati completat toate campurile!'. $inapoi;
    } else {
    $nume = trim($_POST['nume']);
    $parola = trim($_POST['parola']);
    $email = trim($_POST['email']);
    $varsta = trim($_POST['varsta']);
    $oras = trim($_POST['oras']);
    }
    if($parola!=$_POST['parola2']) {
        $eroare = 'Campul `Rescrie parola` trebuie sa fie identic cu campul `Parola`'. $inapoi;
// etc..... 
Deci, intai verifica daca a fost dat pe butonul de inregistrare si daca numarul de verificare a fost bagat, normal daca acestea erau bagate si un camp nu era completat trebuia sa imi dea eroare: '$eroare = 'Nu ati completat toate campurile!'. $inapoi;', acum asta este problema, bag doar numarul de verificare si dau inregistrare, in schimb nu imi da aceasta eroare.. porneste cu alta eroare, cum ar fi: '$eroare = 'Campul `Rescrie parola` trebuie sa fie identic cu campul `Parola`'. $inapoi;' sau 'Numele trebuie sa aiba mai mult de 3 caractere' ... intrebarea mea este, de ce nu imi scrie eroarea care trebuie? :-?

MarPlo Mesaje:4343
Salut
Ca sa verifici daca o valoare e numar intreg (cum se adauga pentru varsta), poti folosi is_int().
Exemplu:

Cod: Selectaţi tot

$val = 32;
if (is_int($val)) {
    echo 'e nr. intreg';
} else {
    echo 'nu e nr. intreg';
}
La a doua intrebare, incearca sa verifici daca valoarea din acele campuri are mai putin de un caracter, cam asa:

Cod: Selectaţi tot

if(strlen($_POST['nume'])<1 || ... restul la fel)  {
    $eroare = 'Nu ati completat toate campurile!'. $inapoi;
}

BBsTyLe Mesaje:10
MarPlo scrie:Salut
Ca sa verifici daca o valoare e numar intreg (cum se adauga pentru varsta), poti folosi is_int().
Exemplu:

Cod: Selectaţi tot

$val = 32;
if (is_int($val)) {
    echo 'e nr. intreg';
} else {
    echo 'nu e nr. intreg';
} 
La a doua intrebare, incearca sa verifici daca valoarea din acele campuri are mai putin de un caracter, cam asa:

Cod: Selectaţi tot

if(strlen($_POST['nume'])<1 || ... restul la fel)  {
    $eroare = 'Nu ati completat toate campurile!'. $inapoi;
}
OK, mersi frumos :)

Subiecte similare