Vérifier si la variable existe dans la bdd

Résolu
iamlouky Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'aimerais vérifier dans ma base de donnée si la variable "code1" existe mais ça me mets :

( ! ) Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\Projet\authentification\index.php on line 36

<?php
  
// à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
session_start();
  
$mysqli = mysqli_connect("localhost", "root", '', "projet");
if(!$mysqli) {
echo "Connexion non établie.";
exit;
}
  
$error = false;
$adminpageError = "";
$code1Error = "";
$code1noncorrespondError = "";
  
  
if (isset($_SESSION['username']) && $_SESSION['username'] =="admin") {
$adminpageError = "<p><a href='inscription.php'>Admin page </a></p>";
}
  
if (isset($_POST['valider'])) {
if (empty($_POST['code1'])) {
$error = true;
$code1Error = "S'il vous plait entrez le code .";
} else {
$req="SELECT COUNT(*) FROM `client` WHERE code1= '".mysqli_real_escape_string($mysqli, $_POST['code1'])."'";
$res=mysqli_query($mysqli,$req);
header("location: accueil.php");
}
}
  
// Si tout va bien, on peut continuer
// On récupère tout le contenu de la table client
$req = $mysqli->prepare('SELECT * FROM `client` WHERE username = :username');
$req->execute(array(':username' => $_SESSION['username']));
  
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
?>

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu te connectes à ta bdd en utilisant le stylé "procédural".
Sauf qu'ensuite tu fais ta requête en style objet.

Donc soit tu fais tout en style objet.. soit tout en style procédural...



De plus.. je t'invite vivement à lire et à appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

NB: Et pense aussi à mettre des EXIT après tes redirections.

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et sinon.. à quoi sert ta redirection dans ta première requete ??
<?php
// à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
session_start();

//activation des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
  

//connexion à la bdd (serait mieux dans un fichier à part...)  
$mysqli = mysqli_connect("localhost", "root", '', "projet");
if(!$mysqli) {
  echo "Connexion non établie.";
  exit;
}
  
//initilisation des variables  
$error = false;
$adminpageError = "";
$code1Error = "";
$code1noncorrespondError = "";
  
//récupération PROPRE des variables AVANT de les utiliser  
$username =  !empty($_SESSION['username']) ? $_SESSION['username']: NULL;
$valider = !empty($_POST['valider']) ? $_POST['valider'] : NULL;
$code1 = !empty($_POST['code1']) ? mysqli_real_escape_string($mysqli, $_POST['code1']) : NULL;

  
if ($username$ =="admin") {
  $adminpageError = "<p><a href='inscription.php'>Admin page </a></p>";
}
  
if ($valider) {
  if (! $code1) {
    $error = true;
    $code1Error = "S'il vous plait entrez le code .";
  } else {
    $req="SELECT COUNT(*) FROM `client` WHERE code1= '".$code1."'";
    $res= mysqli_query($mysqli,$req);
          
    header("location: accueil.php"); // et tu fais rien si tu as un code ??? tu retourne à l'accueil c'est tout ?
    //ça sert à quoi au juste ??
    exit();
  }
}


// le reste de ton code
0