Parašė Faitas.· 2012 Vas. 11 18:02:27
#3
Aš išviso patarčiau perdaryti tą skriptą į biški patogesnį:
<?php
if(isset($_POST['submit'])) {
include ("connect.php");
//Gaunam duomenis
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
//Tikrinam ar nėra tušti laukai
$check = TRUE;
$msg = "";
if(empty($username)) {
$check = FALSE;
$msg .= "Tuščias vartotojo vardo laukas<br />";
}
if(empty($password)) {
$check = FALSE;
$msg .= "Tuščias slaptažodžio laukas<br />";
}
if(empty($password2)) {
$check = FALSE;
$msg .= "Tuščias antrojo slaptažodžio laukas<br />";
}
//Jei abu slaptažodžio laukai netušti, tikrinam ar jie sutampa
if(!empty($password) && !empty($password2)) {
if($password != $password2) {
$check = FALSE;
$msg .= "Slaptažodžiai nesutampa<br />";
}
}
//Jei vartotojo laukas netuščias, tikriname ar tokio vartotojo nėra
if(!empty($username)) {
$check_for_user = mysql_query("SELECT uid FROM users WHERE username = '$username'");
$check_for_user = mysql_num_rows($check_for_user);
if($check_for_user > 0) {
$check = FALSE;
$msg .= "Toks vartotojas jau egzistuoja<br />";
}
}
//Toliau tęsiame, jei viskas buvo užpildyta ir atitiko reikalavimus
if($check == TRUE) {
//Užkoduojame slaptažodį
$password = md5($password);
//Dedame vartotoją į duom.bazę
$insert_user = mysql_query("INSERT INTO users (username, password) VALUES ('$username', '$password')");
if($insert_user) {
echo "Vartotojas sėkmingai užregistruotas<br />";
}
else {
echo "Vartotojo užregistruoti nepavyko. Bandykite dar kartą<br />";
}
}
else {
//Išvedame kintamajį su klaidomis, nes registracija buvo su klaidomis
echo $msg;
}
}
?>
<form action='' method='POST'>
Vartotojo vardas: <input type='text' name='username'><br />
Slaptažodis <input type='password' name='password'><br />
Pakartoti slaptažodį <input type='password' name='password2'><br />
<input type='submit' value='Register' name='submit' />
</form>
Tiesiog pakeičiau tavo if'us į $check kintamąjį su BOOLEAN reikšme. Beje, tvarkingiau rašyk :D