Requête PHP ne s'exécute pas

  • tastysite
  • Proficient
  • Proficient
  • Avatar de l’utilisateur
  • Inscription: Avr 09, 2008
  • Messages: 349
  • Loc: Brighouse, West Yorkshire, England
  • Status: Offline

Message Juin 20th, 2011, 6:17 am

J'ai travaillé sur un script pour un formulaire de connexion, mais le sql s'exécutera pas à la base de données, maintenant son été années depuis que j'ai travaillé avec php et mysql, donc je suis un peu rusty mais je ne peux pas voir le bug, je suis certain que c'est petit.

De toute façon ce qui se passe c'est que j'essaie d'exécuter la requête et mon site dit gos à la partie « or die » du code et donc ne pouvait pas courir de requête, donc je sais pas son « parler de la DB » donc ses quelque chose à voir avec la requête, toutes les idées ci-dessous est le code.

Code: [ Select ]
<form action="#" method="post" id="loginform">
<label>e-mail<input type="email" name="email" /></label><br />
<label>password<input type="password" name="pass" /></label><br />
<input type="submit" class="button" value="Log In" name="submit" />
</form>

<?php

if(isset($_POST['submit'])){
    $email = $_POST['email'];
    $pass = $_POST['pass'];
    
    $con = mysqli_connect('localhost','root','') or die ('Could not connect to databace');
    mysqli_select_db($con, 'mysitesdb');
    
    $query = mysqli_query($con, 'SELECT * FROM users WHERE email="$email" AND pass="$pass"') or die ('Could not run query');
    $result = mysql_result($query, 0);
    echo 'result = '.$result;
    
    mysqli_close($con);
    
    if($result != 1){
    echo "More than one record found";
    }else{
    echo "Log in done";
    $_SESSION['email'] = $email;
    }
}
?>
  1. <form action="#" method="post" id="loginform">
  2. <label>e-mail<input type="email" name="email" /></label><br />
  3. <label>password<input type="password" name="pass" /></label><br />
  4. <input type="submit" class="button" value="Log In" name="submit" />
  5. </form>
  6. <?php
  7. if(isset($_POST['submit'])){
  8.     $email = $_POST['email'];
  9.     $pass = $_POST['pass'];
  10.     
  11.     $con = mysqli_connect('localhost','root','') or die ('Could not connect to databace');
  12.     mysqli_select_db($con, 'mysitesdb');
  13.     
  14.     $query = mysqli_query($con, 'SELECT * FROM users WHERE email="$email" AND pass="$pass"') or die ('Could not run query');
  15.     $result = mysql_result($query, 0);
  16.     echo 'result = '.$result;
  17.     
  18.     mysqli_close($con);
  19.     
  20.     if($result != 1){
  21.     echo "More than one record found";
  22.     }else{
  23.     echo "Log in done";
  24.     $_SESSION['email'] = $email;
  25.     }
  26. }
  27. ?>
^__^
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juin 20th, 2011, 6:17 am

  • Nightslyr
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Sep 21, 2005
  • Messages: 274
  • Status: Offline

Message Juin 20th, 2011, 7:51 am

Vous avez besoin d'échanger vos guillemets :

PHP Code: [ Select ]
"SELECT * FROM users WHERE email='$email' AND pass='$pass'"


Les variables sont interpolées seulement si la totalité de la chaîne elle-même est cité en double.

Vous devrez également extraire vos résultats comme mysqli_query retourne simplement une ressource.

Enfin, vous ne peut pas mélanger et correspondre à des fonctions de mysql avec fonctions mysqli. Pick un et le bâton avec elle.

Afficher de l'information

  • Total des messages de ce sujet: 2 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 221 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC