űrlap feldolgozás hiba?
Sziasztok!
van egy php-kódom ami nem igazán akar működni!és ezt a hiba üzenetet kapom Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\wamp\www\belep.php on line 40
Hiba!
nem látok semmit a 40.sorba -.- valaki esetleg?
■ van egy php-kódom ami nem igazán akar működni!
- <?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->mysqli_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","","","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->mxsqli_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) {
- ?>
Hiba!
nem látok semmit a 40.sorba -.- valaki esetleg?
biztos?
belep.php
? És biztosan ezt a fájlt futtatod?iegn!
de még mindig nem jöttem rá a hibára
Nézd végig az egészet, mert
Az utolsó new mysqli(...) után van egy ilyen.
Esetleg valahol elrontottál zárójel párokat? (ezt most nem tudom ellenőrizni)
Megvan a hiba :) köszi a
És mi volt az?
Mysql
Hiba a feldolgozásnál.
Nemrég kezdtem el PHP-vel foglalkozni,és akadt egy probléma amire nem tudok rájönni.
A lényeg az hogy adatbázisba töltögetik fel az adatot a regisztrált emberek,és be is teszi az adatbázisba az adatokat ahogyan azt én elvárom tőle viszont amikor beadják az adatot "Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in (24.SOR)" és a Fatal error: Call to a member function fetch_array() on a non-object in(25.SOR)" hibát ad ki az oldal,de feltöltötte az adatot.Tehát adat feltöltésnél ki írja a hibát,de az adatokat feltölti,lefrissítem az oldalt és tökéletesen működik.Mi lehet a baj??
Lehet a $info =
$info = $mysqli->query("SELECT login,ak_szoveg,ak_kezdet,ak_vege FROM tabla WHERE login= '" . $_SESSION['login'] . "'");
sorban hibás a query, ezért nem kapsz vissza eredményt, ezért a$row = $info->fetch_array(MYSQLI_NUM);
nem fog tudni lefutni, mivel nincs eredmény. A $_SESSION['login']-t mindenképpen escapelni kellene, vagy használni a prepared statement-eket.Lezárt kapcsolat
1. You're trying to use a database object that you've already closed (as noted by ceo at l-i-e dot com). Reopen your database connection, or find the call to <?php mysqli_close($db); ?> or <?php $db->close(); ?> and remove it.
[...]
Adatfeltöltéskor a 19. sorban lezárod az adatbázis kapcsolatot, így a 24. sorban nem tud lefutni a lekérdezés, így a 25. sorban egy false értéken próbálod meghívni a fetch_array() metódust, ami nyilván nincs rendjén.
Ha frissítesz és nincs feltöltés, akkor nem fut le az adatbázis kapcsolatot lezáró kód, ezért nem kapsz hibát olyankor.
Köszönöm