Kezdőoldal » Számítástechnika » Weblapkészítés » Mi a hiba a PHP kódomban?

Mi a hiba a PHP kódomban?

Figyelt kérdés

Egy Regisztrációs oldalt szeretnék készíteni, de hiba lépett fel és nem látom hol van a probléma!


A probléma: Kiírja, hogy nincs megadva e-mail cím!


php kód:


<?php

if(isset($_POST["form_submit"])) {


$username = $_POST["username"];

$password1 = $_POST["password1"];

$password2 = $_POST["password2"];

$email1 = $_POST["email1"];

$email2 = $_POST["email2"];

$username_regex = '/^[a-z0-9\_\-\.]{3,10}$/';

$email_regex = '/^([A-z0-9\_\.\-]+)@([a-z0-9\_\-\.]+).([a-z]{2,})$/';


$j_nick = $_POST["j_nick"];

$j_age = $_POST["j_age"];

$j_class = $_POST["j_class"];

$j_time = $_POST["j_time"];

$j_time_day = $_POST["j_time_day"];


$error_data = false;

$error_avatar = false;


if(!$username) {

echo "<div class='message error'>Nincs megadva felhasználónév!</div>";

$error_data = true;

} elseif(strlen($username)<=2) {

echo "<div class='message error'>A felhasználónév túl rövid!</div>";

$error_data = true;

} elseif(!preg_match($username_regex, $username)) {

echo "<div class='message error'>A felhasználónév nem tartalmazhat nagybetűt / specális karaktert!</div>";

$error_data = true;

} else {

$sql = @ new mysqli("mysql11.000webhost.com","a5622587_s","geszit605","a5622587_s");

if($sql->connect_errno) {

echo "<div class='message error'>Adatbázis hiba: ", $sql->connect_errno." ".$sql->connect_error;

exit();

}

$username = strip_tags($username);

$username = addcslashes($username, "%'=`");

$query = "SELECT `user_username` FROM `user` WHERE `user_username` = '".$username."'";

$result = $sql->query($query) or die("Hiba!");

if($result->num_rows>0) {

echo "<div class='message error'>A felhasználónév foglalt!</div>";

$error_data = true;

}

$sql->close();

}


if($password1) {

if($password1!=$password2) {

echo "<div class='message error'>A két jelszó nem egyezik!</div>";

$error_data = true;

} elseif(strlen($password1)<=3) {

echo "<div class='message error'>A jelszó legalább 4 karakter kell, hogy legyen!</div>";

}

} else {

echo "<div class='message error'>Nincs megadva jelszó!</div>";

$error_data = true;

}


if($email1) {

if($email1!=$email2) {

echo "<div class='message error'>A két e-mail cím nem egyezik!</div>";

$error_data = true;

} elseif(!preg_match($email_regex, $email1)) {

echo "<div class='message error'>Az e-mail cím nem megfelelő formátumú!</div>";

$error_data = true;

} else {

$sql = @ new mysqli("mysql11.000webhost.com","a5622587_s","geszit605","a5622587_s");

if($sql->connect_errno) {

echo "<div class='message error'>Adatbázis hiba: ", $sql->connect_errno." ".$sql->connect_error;

exit();

}

$query = "SELECT `user_email` FROM `user` WHERE `user_email` = '".$email1."'";

$result = $sql->query($query) or die("Hiba!");

if($result->num_rows>0) {

echo "<div class='message error'>Ezzel az e-mail címmel már regisztráltak!</div>";

$error_data = true;

}

}

} else {

echo "<div class='message error'>Nincs megadva e-mail cím!</div>";

$error_data = true;

}



}

if($error_data==false && $error_avatar==false) {

echo "<div class='message notice'>Sikeres regisztráció!</div>";

$sql = @ new mysqli("mysql11.000webhost.com","a5622587_s","geszit605","a5622587_s");

if($sql->connect_errno) {

echo "<div class='message error'>Adatbázis hiba: ", $sql->connect_errno." ".$sql->connect_error;

exit();

}

$query = "INSERT INTO `user` (`user_username`,`user_email`,`user_password`,`user_nick`,`user_born`,`user_weapons`,`user_time`,`user_time_day`) VALUES ('".$username."', '".$email1."', '".sha1($password1)."', '".$j_nick."', '".$j_age."', '".$j_class."', '".$j_time."', '".$j_time_day."')";

$sql->query($query) or die("Hiba!");

}


if(!isset($_POST["form_submit"]) || $error_data || $error_avatar) {

?>

<!--űrlap tartalma-->

<?php } ?>


Válaszokat előre is köszönöm!



2014. jún. 23. 21:40
1 2
 11/15 Tengor ***** válasza:

Azt, hogy a scriptet stringként fűzöd össze és úgy pakolod bele a változókat. Egyrészt nem túl szép, másrészt a kód nincs védve az SQL injectionnal szemben. Próbáld ki, mi történik, ha egy "; DROP TABLE user" nevű felhasználó akar regelni.

Nézz utána: prepared statement!

2014. jún. 23. 23:56
Hasznos számodra ez a válasz?
 12/15 Tengor ***** válasza:
100%
Jah és a jelszót nem túl jó benne hagyni a kódban, amit aztán netre felteszel.
2014. jún. 23. 23:58
Hasznos számodra ez a válasz?
 13/15 PHP de kóder! ***** válasza:
az, hogy nem a pastebinre toltotted fel?
2014. jún. 25. 17:32
Hasznos számodra ez a válasz?
 14/15 anonim ***** válasza:
cyrex kódja :D
2014. okt. 6. 04:01
Hasznos számodra ez a válasz?
 15/15 anonim ***** válasza:
nagyon okosan benne hagytad kapcsolódási adatokat a kódba... XD
2014. okt. 6. 04:02
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!