Autor Zpráva
Jiří Ráb
Profil
Ahoj dělám třídu na registraci a php mi hlásí že mám chybu na prepare ale nevím co s tím? pošlu niže kod a chybu, kterou hlásí php
<?php

class Registrace
{
    public $username;
    private $heslo1;
    private $heslo2;
    private $krestniJmeno;
    private $prijmeni;
    public  $mail;
    private $ulice;
    private $cp;
    private $mesto;
    private $psc;
    private $lastID;
    public $connect;
    private $hash;
    private $pravo;

    public function __construct($username, $heslo1, $heslo2, $krestniJmeno, $prijmeni, $mail, $ulice, $cp, $mesto, $psc, $connect)
    {
        $this->username=$username;
        $this->heslo1=trim($heslo1);
        $this->heslo2=trim($heslo2);
        $this->krestniJmeno=$krestniJmeno;
        $this->prijmeni=$prijmeni;
        $this->mail=$mail;
        $this->ulice=$ulice;
        $this->cp=$cp;
        $this->mesto=$mesto;
        $this->psc=str_replace(" ","",$psc);
        $this->hash=password_hash($this->heslo1,PASSWORD_DEFAULT);
        $this->pravo=0;
    }

       public function getKrestni(){
         return $this->krestniJmeno;
       }

       public function getPrijmeni(){
         return $this->prijmeni;
       }
       public function getUlice(){
         return $this->ulice;
       }
       public function getCp(){
         return $this->cp;
       }
       public function getMesto(){
         return $this->mesto;
       }
       public function getPsc(){
         return $this->psc;
       }

    public function regularVstup()
    {
   $pattern_email="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/";
   $pattern_psc="/^\d{3} ?\d{2}$/";
   $pattern_cp="/^(\d+(\/\d+[a-zA-Z]?)?)$/";
   $pattern_fsname="/^[a-zěščřžýáíéA-zĚŠČŘŽÝÁÍÉ]{1,10}$/";


if(preg_match($pattern_fsname,$this->krestniJmeno) && preg_match($pattern_fsname,$this->prijmeni)){
    $fsname_stav=true;
}else{
    $sfname_stav=false;
    header("Location:registrace.php?errors=Nesprávně zadané křestní jméno nebo příjmení&username=$this->username&firstname=$this->krestniJmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_email,$this->mail)==true){
    $email_stav=true;

}else{
    $email_stav=false;
   header("Location:registrace.php?errors=Nesprávně zadaný email&username=$this->username&firstname=$this->krestniJmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_psc,$this->psc)==true){
    $psc_stav=true;

}else{
    $psc_stav=false;
  header("Location:registrace.php?errors=Nesprávně zadané psč&username=$this->username&firstname=$this->krestniJmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_cp,$this->cp)==true){
    $cp_stav=true;


}else{
    $cp_stav=false;
   header("Location:registrace.php?errors=Nesprávně zadané čp&username=$this->username&firstname=$this->krestniJmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");}

if($cp_stav==true && $psc_stav==true && $email_stav==true && $fsname_stav==true){
  return true;
}else{
  return false;
}

    }

    public function rovnostHesel(){
      if($heslo1==$heslo2){
        return true;
      }else{
        return false;
      }
    }

    public function existAdress()
    {

        try {
          $select_adress="SELECT id_adresa FROM adresa WHERE ulice=:ulice AND cp=:cp AND mesto=:mesto AND psc=:psc";
          $select_prepare_adress=$this->connect->prepare($select_adress);
          $select_prepare_adress->bindParam(":ulice",$this->ulice);
          $select_prepare_adress->bindParam(":cp",$this->cp);
          $select_prepare_adress->bindParam(":mesto",$this->mesto);
          $select_prepare_adress->bindParam(":psc",$this->psc);


          $select_exist="SELECT count(*) as pocet FROM adresa WHERE ulice=:ulice AND cp=:cp AND mesto=:mesto AND psc=:psc ";
          $select_prepare_exist=$this->connect->prepare($select_exist);
          $select_prepare_exist->bindParam(":ulice",$this->ulice);
          $select_prepare_exist->bindParam(":cp",$this->cp);
          $select_prepare_exist->bindParam(":mesto",$this->mesto);
          $select_prepare_exist->bindParam(":psc",$this->psc);
          if($select_prepare_exist->execute()){
            $vysledek_exist=$select_prepare_exist->fetch(PDO::FETCH_ASSOC);
            if($vysledek_exist['pocet']>0){
              return true;
              if($select_prepare_adress->execute()){
                $vysledek_adress=$select_prepare_adress->fetch(PDO::FETCH_ASSOC);
                $this->lastID=$vysledek_adress['id_adresa'];
              }
            }else{
              return false;
            }


        }


      } catch (PDOException $e) {
          echo $e->getMessage();
          die();
        }



    }



    public function vlozeniAdresy()
    {
      try {
        $insert_adress="INSERT INTO adresa(ulice,cp,mesto,psc) VALUES (:ulice,:cp,:mesto,:psc)";
          $insert_prepare_adress=$this->connect->prepare($insert_adress);
          $insert_prepare_adress->bindParam(":ulice",$this->ulice);
          $insert_prepare_adress->bindParam(":cp",$this->cp);
          $insert_prepare_adress->bindParam(":mesto",$this->mesto);
          $insert_prepare_adress->bindParam(":psc",$this->psc);
        if($insert_prepare_adress->execute()){
           $this->lastID=$this->connect->lastInsertId();
           return true;
       }else{
         return false;
       }


      } catch (PDOException $e) {
        echo $e->getMessage();
        die();
      }

    }

    public function vlozeniUzivatele()
    {
    try {
      $insert_user="INSERT INTO uzivatele(username,heslo,email,krestni_jmeno,prijmeni,pravo,id_adresa) VALUES(:username,:heslo,:email,:krestni_jmeno,:prijmeni,:pravo,:last_id)";
        $insert_prepare_user=$connect->prepare($insert_user);
      $insert_prepare_user->bindParam(":username",$this->username);
      $insert_prepare_user->bindParam(":heslo",$this->hash);
      $insert_prepare_user->bindParam(":email",$this->mail);
      $insert_prepare_user->bindParam(":krestni_jmeno",$this->krestniJmeno);
      $insert_prepare_user->bindParam(":prijmeni",$this->prijmeni);
      $insert_prepare_user->bindParam(":pravo",$this->pravo);
      $insert_prepare_user->bindParam(":last_id",$this->lastID);
      if($insert_prepare_user->execute()){
        return true;
      }else{
        return false;
      }

    } catch (PDOException $e) {
      echo $e->getMessage();
      die();
    }

  }

     public function existUsername(){
      try {
        $select="SELECT count(*) as pocet FROM uzivatele WHERE username=:username";
        $select_user=$this->connect->prepare($select);
        $select_user->bindParam(":username",$this->username);
        if($select_user->execute()){
          $vysledek_username=$select_user->fetch(PDO::FETCH_ASSOC);
          if($vysledek_username['pocet']>0){
            return true;
          }else{
            return false;
          }
        }

      } catch (PDOException $e) {
        echo $e->getMessage();
        die();
      }


     }

     public function existEmail(){
      try {
        $select="SELECT count(*) as pocet FROM uzivatele WHERE email=:email";
        $select_mail=$this->connect->prepare($select);
        $select_mail->bindParam(":email",$this->mail);
        if($select_mail->execute()){
          $vysledek_mail=$select_mail->fetch(PDO::FETCH_ASSOC);
          if($vysledek_mail['pocet']>0){
            return true;
          }else{
            return false;
          }
        }

      } catch (PDOException $e) {
         echo $e->getMessage();
         die();
      }


     }

}
) Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\wamp64\www\Maturitni_projekt\registrace.class.php on line 211
( ! ) Error: Call to a member function prepare() on null in C:\wamp64\www\Maturitni_projekt\registrace.class.php on line 211
Call Stack
#    Time    Memory    Function    Location
1    0.0006    409064    {main}( )    ...\zpracovani_registrace.php:0
2    0.1303    412784    Registrace->existUsername( )    ...\zpracovani_registrace.php:8

<?php

class registrace
{
    public $username;
    private $heslo1;
    private $heslo2;
    private $krestnijmeno;
    private $prijmeni;
    public  $mail;
    private $ulice;
    private $cp;
    private $mesto;
    private $psc;
    private $lastid;
    public $connect;
    private $hash;
    private $pravo;

    public function __construct($username, $heslo1, $heslo2, $krestnijmeno, $prijmeni, $mail, $ulice, $cp, $mesto, $psc, $connect)
    {
        $this->username=$username;
        $this->heslo1=trim($heslo1);
        $this->heslo2=trim($heslo2);
        $this->krestnijmeno=$krestnijmeno;
        $this->prijmeni=$prijmeni;
        $this->mail=$mail;
        $this->ulice=$ulice;
        $this->cp=$cp;
        $this->mesto=$mesto;
        $this->psc=str_replace(" ","",$psc);
        $this->hash=password_hash($this->heslo1,password_default);
        $this->pravo=0;
    }

       public function getkrestni(){
         return $this->krestnijmeno;
       }

       public function getprijmeni(){
         return $this->prijmeni;
       }
       public function getulice(){
         return $this->ulice;
       }
       public function getcp(){
         return $this->cp;
       }
       public function getmesto(){
         return $this->mesto;
       }
       public function getpsc(){
         return $this->psc;
       }

    public function regularvstup()
    {
   $pattern_email="/^[a-za-z0-9._-]+@[a-za-z0-9.-]+\.[a-za-z]{2,4}$/";
   $pattern_psc="/^\d{3} ?\d{2}$/";
   $pattern_cp="/^(\d+(\/\d+[a-za-z]?)?)$/";
   $pattern_fsname="/^[a-zěščřžýáíéa-zĚŠČŘŽÝÁÍÉ]{1,10}$/";


if(preg_match($pattern_fsname,$this->krestnijmeno) && preg_match($pattern_fsname,$this->prijmeni)){
    $fsname_stav=true;
}else{
    $sfname_stav=false;
    header("location:registrace.php?errors=nesprávně zadané křestní jméno nebo příjmení&username=$this->username&firstname=$this->krestnijmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_email,$this->mail)==true){
    $email_stav=true;

}else{
    $email_stav=false;
   header("location:registrace.php?errors=nesprávně zadaný email&username=$this->username&firstname=$this->krestnijmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_psc,$this->psc)==true){
    $psc_stav=true;

}else{
    $psc_stav=false;
  header("location:registrace.php?errors=nesprávně zadané psč&username=$this->username&firstname=$this->krestnijmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");
}


if(preg_match($pattern_cp,$this->cp)==true){
    $cp_stav=true;


}else{
    $cp_stav=false;
   header("location:registrace.php?errors=nesprávně zadané čp&username=$this->username&firstname=$this->krestnijmeno&surname=$this->prijmeni&email=$this->mail&ulice=$this->ulice&cp=$this->cp&mesto=$this->mesto&psc=$this->psc");}

if($cp_stav==true && $psc_stav==true && $email_stav==true && $fsname_stav==true){
  return true;
}else{
  return false;
}

    }

    public function rovnosthesel(){
      if($heslo1==$heslo2){
        return true;
      }else{
        return false;
      }
    }

    public function existadress()
    {

        try {
          $select_adress="select id_adresa from adresa where ulice=:ulice and cp=:cp and mesto=:mesto and psc=:psc";
          $select_prepare_adress=$this->connect->prepare($select_adress);
          $select_prepare_adress->bindparam(":ulice",$this->ulice);
          $select_prepare_adress->bindparam(":cp",$this->cp);
          $select_prepare_adress->bindparam(":mesto",$this->mesto);
          $select_prepare_adress->bindparam(":psc",$this->psc);


          $select_exist="select count(*) as pocet from adresa where ulice=:ulice and cp=:cp and mesto=:mesto and psc=:psc ";
          $select_prepare_exist=$this->connect->prepare($select_exist);
          $select_prepare_exist->bindparam(":ulice",$this->ulice);
          $select_prepare_exist->bindparam(":cp",$this->cp);
          $select_prepare_exist->bindparam(":mesto",$this->mesto);
          $select_prepare_exist->bindparam(":psc",$this->psc);
          if($select_prepare_exist->execute()){
            $vysledek_exist=$select_prepare_exist->fetch(pdo::fetch_assoc);
            if($vysledek_exist['pocet']>0){
              return true;
              if($select_prepare_adress->execute()){
                $vysledek_adress=$select_prepare_adress->fetch(pdo::fetch_assoc);
                $this->lastid=$vysledek_adress['id_adresa'];
              }
            }else{
              return false;
            }


        }


      } catch (pdoexception $e) {
          echo $e->getmessage();
          die();
        }



    }



    public function vlozeniadresy()
    {
      try {
        $insert_adress="insert into adresa(ulice,cp,mesto,psc) values (:ulice,:cp,:mesto,:psc)";
          $insert_prepare_adress=$this->connect->prepare($insert_adress);
          $insert_prepare_adress->bindparam(":ulice",$this->ulice);
          $insert_prepare_adress->bindparam(":cp",$this->cp);
          $insert_prepare_adress->bindparam(":mesto",$this->mesto);
          $insert_prepare_adress->bindparam(":psc",$this->psc);
        if($insert_prepare_adress->execute()){
           $this->lastid=$this->connect->lastinsertid();
           return true;
       }else{
         return false;
       }


      } catch (pdoexception $e) {
        echo $e->getmessage();
        die();
      }

    }

    public function vlozeniuzivatele()
    {
    try {
      $insert_user="insert into uzivatele(username,heslo,email,krestni_jmeno,prijmeni,pravo,id_adresa) values(:username,:heslo,:email,:krestni_jmeno,:prijmeni,:pravo,:last_id)";
        $insert_prepare_user=$connect->prepare($insert_user);
      $insert_prepare_user->bindparam(":username",$this->username);
      $insert_prepare_user->bindparam(":heslo",$this->hash);
      $insert_prepare_user->bindparam(":email",$this->mail);
      $insert_prepare_user->bindparam(":krestni_jmeno",$this->krestnijmeno);
      $insert_prepare_user->bindparam(":prijmeni",$this->prijmeni);
      $insert_prepare_user->bindparam(":pravo",$this->pravo);
      $insert_prepare_user->bindparam(":last_id",$this->lastid);
      if($insert_prepare_user->execute()){
        return true;
      }else{
        return false;
      }

    } catch (pdoexception $e) {
      echo $e->getmessage();
      die();
    }

  }

     public function existusername(){
      try {
        $select="select count(*) as pocet from uzivatele where username=:username";
        $select_user=$this->connect->prepare($select);
        $select_user->bindparam(":username",$this->username);
        if($select_user->execute()){
          $vysledek_username=$select_user->fetch(pdo::fetch_assoc);
          if($vysledek_username['pocet']>0){
            return true;
          }else{
            return false;
          }
        }

      } catch (pdoexception $e) {
        echo $e->getmessage();
        die();
      }


     }

     public function existemail(){
      try {
        $select="select count(*) as pocet from uzivatele where email=:email";
        $select_mail=$this->connect->prepare($select);
        $select_mail->bindparam(":email",$this->mail);
        if($select_mail->execute()){
          $vysledek_mail=$select_mail->fetch(pdo::fetch_assoc);
          if($vysledek_mail['pocet']>0){
            return true;
          }else{
            return false;
          }
        }

      } catch (pdoexception $e) {
         echo $e->getmessage();
         die();
      }


     }

}
) fatal error: uncaught error: call to a member function prepare() on null in c:\wamp64\www\maturitni_projekt\registrace.class.php on line 211
( ! ) error: call to a member function prepare() on null in c:\wamp64\www\maturitni_projekt\registrace.class.php on line 211
call stack
#    time    memory    function    location
1    0.0006    409064    {main}( )    ...\zpracovani_registrace.php:0
2    0.1303    412784    registrace->existusername( )    ...\zpracovani_registrace.php:8
RastyAmateur
Profil
Jiří Ráb:
fatal error: uncaught error: call to a member function prepare() on null in c:\wamp64\www\maturitni_projekt\registrace.class.php on line 211
Podíval jsem se do konstruktoru a nevidím, že bys nastavoval proměnnou Registrace::connect, resp. $this->connect, nastavuješ ji někde jinde?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0