if($message==""){
$db_h = mysqli_connect();
if($db_h){
$statement="SELECT * FROM users WHERE username=".$uname." OR email=".$email;
$result=mysqli_query($db_h, $statement);
if(!($result['num_rows']>0)){
$code="";
for($i=0;$i<10;$i++){
$shit=rand(0, strlen($valid_chars)-4);
$code.=$valid_chars[$shit];
}
$insert_statement="INSERT INTO users(username,password,email,code) VALUES
('".$uname."','".$pword."','".$email."','".$code."')";
$insert_result=mysqli_query($db_h, $insert_statement);
if($insert_result){
$levelszoveg="Regisztráció történt ezzel az e-mail címmel a creativerecycling.pe.hu weboldalon. Regisztrációját megerősítő kódja: ".$code.". Ha úgy gondolja, más regisztrált az e-mail címével, hagyja figyelmen kívül ezt az e-mailt.";
$header="From: noreply##kukac##creativerecycling.pe.hu";
mail($email, "Regisztráció megerősítése", $levelszoveg, $header);
header("/validate.php");
}else{
$message.="Hiba történt az adatbázisba vitelkor.<br>";
}
}else{
$message.="A felhasználónév vagy e-mail cím már foglalt.<br>";
}
mysqli_close($db_h);
}else{
$message.="Adatbázis nem található vagy kapcsolódási hiba.<br>";
}
}
Üdv! Egy regisztrációs formot szeretnék készíteni. A mezőkből kiszűröm az sql veszélyes karaktereket, és a hibaüzeneteket a $message-be rakom. Ha üres a $message, kezdem az adatbázis kezelését. Kapcsolat létrejön, magkapom az e-mailt, és az adatbázisba is bekerülnek a megfelelő rekordok. Viszont a végén megkapom a $message-be, hogy hiba az adatbázisba vitelkor. Kezdő vagyok, de irreálisnak tűnik, hogy az adatbázisba beszúrás után lefut az $insert_result-ot vizsgáló if igaz és hamis ága is. Arra gondolok, hogy a mysqli_query eredményét akarom én naivan igaz/hamisként értékelni, sajnos a hivatalos dokumentáción nem tudok eligazodni. Kis változtatással orvosolható, vagy alapjaiban rossz a gondolatmenetem?
■
Viszont a végén megkapom a
Miből gondolod, hogy lefut, az igaz és hamis ága is?
onnan, hogy az e-mailt is
próbálgattam, és az az
header
És mivel ez pont a kérdéses résznél van, ezért érdemes lenne javítani.
Egyáltalán nem irreális, sőt
Nem az a kérdés, hogy lehet-e, hanem az, hogy hogyan.
Kétszer kerül rá a vezérlés erre a kódra. Ennyi.
"A mezőkből kiszűröm az sql veszélyes karaktereket"
Mondjuk az érdekelne, hogy honnan tudod, hogy mellyek ezek a karakterek, meg azt is, hogy miért kéne kiszűrni, amikor escapelni szokták. :)
pp
Hibakeresés
Őszintén szólva engem nagyon
insert
nél teszel az értékek köré felsővesszőt, aselect
nél pedig nem. Hacsak nem numerikusak a $uname és $email értékei, nem bírom felfogni hogyan működhet ennyire is.Köszönöm a segítségeket, az