Nem jövök rá a hibára esetleg ti? többi lent!
sziasztok csinálok egy regisztráció űrlapot és a php feldolgozásánál ezt írja ki
Warning: main() [function.main]: Couldn't fetch mysqli in C:\wamp\www\belep.php on line 33
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\wamp\www\belep.php on line 40
Hiba!
és itt a 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,})$/';
$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("localhost","root","","user");
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("localhost","root","","user");
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;
}
// csak akkor ellenőrizzük az avatart, ha fel van töltve, illetve
// az űrlap többi mezője nem tartalmaz hibát
if($_FILES["avatar"]["name"]!="" && $error_data==false) {
$avatar_pathinfo = pathinfo($_FILES["avatar"]["name"]);
$avatar_extension = $avatar_pathinfo["extension"];
$avatar_filesize = $_FILES["avatar"]["size"];
$avatar_tmp_name = $_FILES["avatar"]["tmp_name"];
$avatar_dimensions = getimagesize($avatar_tmp_name);
$avatar_mime_type = $avatar_dimensions["mime"];
$allowed_extensions = array("image/jpeg" => "jpg", "image/gif" => "gif", "image/png" => "png");
if(is_uploaded_file($avatar_tmp_name)) {
if($avatar_filesize>20000) {
echo "<div class=\"message error\">A fájlméret nem lehet több, mint 20kbyte.</div>";
$error_avatar = true;
} elseif(!in_array($avatar_extension,$allowed_extensions) || !isset($allowed_extensions[$avatar_mime_type])){
echo "<div class=\"message error\">Nem engedélyezett formátum.</div>";
$error_avatar = true;
} elseif($avatar_dimensions[0]!=100 && $avatar_dimensions[1]!=100) {
echo "<div class=\"message error\">A kép mérete kötelezően 100x100 képpont kell, hogy legyen!</div>";
$error_avatar = true;
} else {
// átnevezi a tmp fájlt egy véletlenszerűen generált fájlnévre
$avatar_local_tmp_name = $username.".".$allowed_extensions[$avatar_mime_type];
// az átnevezett tmp fájlt áthelyezi a saját tmp könyvtárunkba
move_uploaded_file($avatar_tmp_name,"tmp/".$avatar_local_tmp_name);
// saját tmp könyvtárból átmásolja az upload könyvtárba
copy("tmp/".$avatar_local_tmp_name,"upload/".$avatar_local_tmp_name);
// törli a saját tmp fájlt
unlink("tmp/".$avatar_local_tmp_name);
echo "<div class=\"message notice\">Sikeres képfeltöltés!</div>";
}
}
}
if($error_data==false && $error_avatar==false) {
echo "<div class=\"message notice\">Sikeres regisztráció!</div>";
$sql = @ new mysqli("localhost","","root","user");
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`) VALUES ('".$username."', '".$email1."', '".sha1($password1)."')";
$sql->query($query) or die("Hiba!");
}
}
if(!isset($_POST["form_submit"]) || $error_data || $error_avatar) {
?>
Hello!
Ehhez jó lenne tudni, hogy mi a 33. és mi a 40. sor...
Nem vagyok túl járatos a PHP objektumkezelésében, de nekem a @ gyanús... biztos, hogy van ilyen a PHP-ben?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!