Acesta e primul articol din categoria Scripturi, categorie in care veti putea gasi codul la numeroase probleme de pe web, precum modul in care poti crea o forma de inregistrare in PHP si Mysql, utilizand noile metode, prin conectarea cu mysqli -> mysql improved.

Scriptul contine cateva masuri de securitate printre care voi aminti validarea numelui si a email-ului, encriptarea parolei atunci cand se stocheaza in baza de date si nu in ultimul rand scriptul verifica daca exista deja utilizatori cu acelasi email sau username.Scriptul poate fi folosit cu incredere intr-un proiect, poate cu cateva ajustari.

Doar un lucru as vrea sa mentionez.Scriptul nu va functiona daca nu creati o baza de date test si un tabel numit members cu campurile name, email si id(optional).Pentru a fi mai usor creati o baza de date test si introduceti instructiunile SQL de mai jos.
[cc lang=”sql” line_numbers=”true”]
CREATE TABLE IF NOT EXISTS members
( id varchar(8),
name varchar(50),
email varchar(75) );
[/cc]

Si in final codul PHP…

[cc lang=”php” line_numbers=”true” nowrap=”1″]
„;
//Verificam daca emailul este valid
$regex = ‘/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/’;
// Rulam functia preg_match() utilizand ca baza de comparatie $regex si verificam $email
if (preg_match($regex, $email)) {
echo $email . ” pare a fi valid…
„;
//query
$query = mysqli_query($connect, „SELECT name, email FROM members WHERE name=’$name’ OR email=’$email'”);
$assoc = mysqli_fetch_assoc($query);
print_r($assoc);
if($assoc[‘name’] == $name || $assoc[‘email’] == $email) {
echo „

Deja exista un email sau username ca cele de mai sus.

„;
} else {
$insert = mysqli_query($connect, „INSERT INTO members (name, password, email) VALUES (‘$name’, ‘$password’, ‘$email’)”);
echo „De astazi esti inregistrat!”;
}
} else {
echo $email . ” Nu pare a fi o adresa de email valida!Mai incearca o data.”;
}
} else echo „Numele nu este valid!Doar cifre si litere~!”;

} else echo „Toate campurile te rog!”;

}

?>


Utilizator:
Parola:
Email:



[/cc]

Alătură-te conversației

4 comentarii

  1. Foarte interesant si foarte practic, bravo !
    Dar sunt nelamurit asupra unui lucru pe linia 6 ai creat obiectul $connect cu ajutorul clasei mysqli dar apoi mai jos ai folosit mysqli_query() de $connect .Eu cred ca ar fi mai bine sa te folosesti de clasa myqli si in loc de functia mysqli_query() sa folosesti $connect->query() la fel si pentru celelalte functi misqli .In acest mod obtii un script mai sigur si mai putin vulnerabil la atacuri externe

      1. Desigur daca ai vrut sa scrii un cod in forma procedurala este corect dar
        ” $connect = new mysqli(‘localhost’, ‘root’, ”, ‘test’); ” este forma obiectuala, forma procedurala ar fi :
        „$connect = mysqli_connect(‘localhost’, ‘root’, ”, ‘test’); „

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Send this to a friend