Vérifier si la variable existe dans la bdd

Résolu/Fermé
iamlouky Messages postés 15 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 23 janvier 2024 - Modifié le 7 janv. 2018 à 13:11
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 7 janv. 2018 à 13:20
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 janv. 2018 à 13:14
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 janv. 2018 à 13:20
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