[PHP] Fatal error: Call to a member function prepare() on null in

Lucedelgiorno

Nuovo Utente
24 Lug 2019
1
0
0
Salve ragazzi
Spero di postare nel luogo giusto e di seguire tutte le procedure descritte per postare un nuovo post.
Nel caso di errore chiedo scusa anticipatamente e rifarò nuovamente tutto.

Allora io e un mio amico stiamo lavorando su un progetto ma ci siamo bloccati da qualche giorno su un errore, non siamo degli esperti di php quindi spero di non dire troppe sciocchezze.

Veniamo al dunque, a noi risulta questo errore :

Fatal error: Call to a member function prepare() on null in /membri/progettoditelematica2019/index.php on line 18

il codice a cui si fa riferimento è questo
PHP:
[B]<?php

include 'connessione.php';
//require_once 'sessioni.php';//include una volta sola il metodo sessioni
session_start();
if (isset($_SESSION["nickname"])){ //se risulta già un cookie loggato, entra
    header("location: visualizzafatture.php");


    exit;
}

if (isset($_POST["submitx"])){ //se è stato premuto il pulsante submitx, manda la query al db
    $nickname = $_POST['nickname'];
    $password = $_POST['password'];

  //  $query = $mysqli->query("SELECT * FROM Utenti WHERE Nickname = '$nickname' AND Password = '$password'");
  //  $query2 = $mysqli->query("SELECT * FROM Fornitore WHERE Nickname = '$nickname' AND Password = '$password'");

    $query = $mysqli->prepare("SELECT * FROM Utenti WHERE Nickname = ? AND Password = ?");
    $query2 = $mysqli->prepare("SELECT * FROM Fornitore WHERE Nickname = ? AND Password = ?");

  
    $query->bind_param('ss',$nickname,$password);
    $query2->bind_param('ss',$nickname,$password);
  
    $query->execute();
  
    //ho deciso di mettere in sicurezza l'accesso al sito utilizzato i prepared statements
    //senza, l'accesso al sito poteva essere messo a rischio semplicemente manomettendo la query
    //ed inserendo ' or ''=' nello username e password.
  
    if($query->fetch()) {//query->num_rows
        echo "Accesso consentito";
        $_SESSION["nickname"] = $nickname;
        $_SESSION["fornitore"] = false;
        header("location: visualizzafatture.php");
        exit();
    }
    else{
        $query->close();
        $query2->execute();
        echo "Accesso rifiutato";
    }
  
    if($query2->fetch()){//query2->num_rows
        echo "Accesso consentito";
        $_SESSION["nickname"] = $nickname;
        $_SESSION["fornitore"] = true;
      
        header("location: visualizzafatture.php");
        exit();
    }
  
    else {
        echo "Accesso rifiutato";
    }
  
}

$art='
__________                   .___             __       _____                   __
\______   \_______  ____   __| _/_ __   _____/  |_    /     \ _____    _______/  |_  ___________
 |     ___/\_  __ \/  _ \ / __ |  |  \_/ ___\   __\  /  \ /  \\\\__  \  /  ___/\   __\/ __ \_  __ \
 |    |     |  | \(  <_> ) /_/ |  |  /\  \___|  |   /    Y    \/ __ \_\___ \  |  | \  ___/|  | \/
 |____|     |__|   \____/\____ |____/  \___  >__|   \____|__  (____  /____  > |__|  \___  >__|
                              \/           \/               \/     \/     \/            \/
';

?>

<html>
    <body>
            <center><h1>Benvenuto in</h1></center>
            <center>
            <table>
            <tr><td>
            <pre style="font-family: 'Courier New', Courier, monospace"><?php echo $art; ?></pre>
            </tr></td>
            </table>
            <h4>Entra in Product Master per trovare con noi le offerte migliori</h4>

            </center>    
                                                                                                                                            </p></center>
            <br>
            <form action="index.php" method="POST">
              
                  <center>
                      <table>
                          <tr><td>Username:</td><td><input type="text" name="nickname"></td></tr>
                          <tr><td></td><td></td></tr>                        
                          <tr><td>Password:</td><td><input type="password" name="password"></td></tr>
                      </table>
                  </center>
                
                    <center><input type="submit" name="submitx" id="submit" value="login"></center>
                  
            </form>
          
    </body>
</html>

vi metto anche il codice di connessione.php

PHP:
<?php
$mysqli = new mysqli('localhost','root', '123qwe', "Product_Master");

if ($mysqli->connect_error) { //connetto al database
    die('Errore di connessione (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
    exit();
}
else {
    //echo '<center><p>' . 'Connesso. ' . $mysqli->host_info . '</p></center>';
}

class gestioneprodotti
{
}

il sito su cui noi stiamo lavorando è questo se volete vedere voi di persona

http://progettoditelematica2019.altervista.org/index.php

Cosa significa quell'errore li? ci siamo impantanati mannaggia !!
 

Discussioni simili