• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Blad PHP query zwraca null

Object Storage Arubacloud
0 głosów
305 wizyt
pytanie zadane 25 lipca 2018 w PHP przez Michal93 Nowicjusz (190 p.)

Nie moge sobie poradzić z tym błędem, proszę o pomoc. Z góry dziękuje :)!

Notice: Undefined variable: polaczenie in C:\xampp\htdocs\nauka2\rejestracja.php on line 48

Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\nauka2\rejestracja.php:48 Stack trac

connect.php

<?php
return  [
'server' => 'localhost',
'user' => 'root',
'password' => '',
'dbName' => 'blog'];


try {
	
	$polaczenie = new PDO("mysql:host='server';dbname='dbName'; charset=utf8",'user','password', [
		PDO::ATTR_EMULATE_PREPARES => false, 
		PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
	]);
	
} catch (PDOException $error) {
	
	echo $error->getMessage();
	exit('Database error');
	
}


rejestracja.php

<?php
session_start();



if (isset($_POST['add'])){
    
    $nick = $_POST['nick'];
    $haslo1 = $_POST['haslo1'];
    $haslo2 = $_POST['haslo2'];
    $email = $_POST['email'];
    
    $wszystkoOK = true;
    
    
    if ((strlen($haslo1)<8) || (strlen($haslo1)>20)){
        
        $wszystkoOK = null;
        $_SESSION['eHaslo'] = 'nick musi mniec od 3 do 20 znakow';
    }
    
    
    if(strlen($nick) < 2 || (strlen($nick)) > 20 ){
        $wszystkoOK = null;
        $_SESSION['eHaslo'] = 'za krotkie lub za dlugi haslo';
    }
    
    if($haslo1 != $haslo2){
        $wszystkoOK = null;
        $_SESSION['eHaslo'] = 'podaj takie samo haslo';
            
    }
        
    $haslo_hash = password_hash($haslo1, PASSWORD_DEFAULT);
    
    
    $emailB = filter_var($email, FILTER_SANITIZE_EMAIL);
    
    if((filter_var($emailB, FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email)){
        $wszystkoOK = null;
        $_SESSION['eEmail'] = 'podaj poprawny mejl';
    }
    
   
    include "connect.php";
		
    
            $rezultat = $polaczenie->query("SELECT id FROM dane WHERE imie='$nick'");
            
    
    
            $ileNickow = $rezultat->num_rows;
            if($ileNickow>0){
                 $wszystkoOK = null;
                $_SESSION['eNick'] = 'istnieje juz taki nick';
            } 
            
            $rezultat = $polaczenie->query("SELECT id FROM dane WHERE email='$emailB' ");
            
            
            $ileMejlow = $rezultat->num_rows;
            if($ileMejlow>0){
                 $wszystkoOK = null;
                 $_SESSION['eEmail'] = 'Panie takie cos juz istnieje';
            }
            
            if ($wszystkoOK==true)
            {
                
                if($polaczenie->prepare("INSERT INTO dane VALUES (NULL, '$nick','$haslo_hash', '$email')"))
                 $polaczenie->bindValue(':imie', $nick, PDO::PARAM_STR);
                 $polaczenie->bindValue(':haslo', $haslo1, PDO::PARAM_STR);
                 $polaczenie->bindValue(':email', $emaiB, PDO::PARAM_STR);
		          $polaczenie->execute();
            
					{
						$_SESSION['udanarejestracja']=true;
						header('Location: admin.php');
					}
					
            }
            $polaczenie->close();
        }

?>

e: #0 {main} thrown in C:\xampp\htdocs\nauka2\rejestracja.php on line 48

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)
pokaż samą linię 48
komentarz 25 lipca 2018 przez Michal93 Nowicjusz (190 p.)
<?php
return  [
'server' => 'localhost',
'user' => 'root',
'password' => '',
'dbName' => 'blog'];

chodzi o zmienna server ? Działam na localhost

komentarz 25 lipca 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)
Zamień

 

    include "connect.php";

Na

$connect = include "connect.php";

I w połączeniu zamiast $server daj

$connect['server'] i tak samo dla user dbname i pass
komentarz 26 lipca 2018 przez Michal93 Nowicjusz (190 p.)

dalej jest błąd:

Notice: Undefined variable: config in C:\xampp\htdocs\nauka2\rejestracja.php on line 49

Notice: Undefined variable: config in C:\xampp\htdocs\nauka2\rejestracja.php on line 49

Notice: Undefined variable: config in C:\xampp\htdocs\nauka2\rejestracja.php on line 49

Notice: Undefined variable: config in C:\xampp\htdocs\nauka2\rejestracja.php on line 49
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selectedDatabase error

 $connect = require_once "connect.php";
		
    try {
	
	           $polaczenie = new PDO("mysql:host={$config['host']};dbname={$config['database']};charset=utf8", $config['user'], $config['password'], [
                PDO::ATTR_EMULATE_PREPARES => false, 
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
            ]);
	

            $rezultat = $polaczenie->prepare("SELECT id FROM dane WHERE imie=':nick'");
            $rezultat->bindValue(':nick', $nick, PDO::PARAM_STR);
            $rezultat->execute();
            

connect.php

<?php
return  [
'server' => 'localhost',
'user' => 'root',
'password' => '',
'dbName' => 'blog'];

 

komentarz 26 lipca 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)
Zamiast $config to $connect
komentarz 26 lipca 2018 przez Michal93 Nowicjusz (190 p.)
Działa! Dzięki wielkie kolego ! :)

Podobne pytania

0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 4 czerwca 2018 w PHP przez Mebya Użytkownik (700 p.)
0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 20 października 2018 w PHP przez Bartłomiej Bolesta Obywatel (1,630 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...