SQL et PHP
Résolu
Mike
-
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un souci avec l'exécution d'une requête count dans du php. Je veut qu lorsque une personne a fournie les bon identifiant, elle soit redirigé vers une autre page, ou alors qu'un message s'affiche.
Voila le code, ici la voila le contenu du body de de la page recevant les réponse aux formulaire:
<body>
<div id="logo"></div>
<?php
include('./../config.php');
if (!empty($_POST['pseudo']) and !empty($_POST['pass']))
{
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
$requete = "SELECT COUNT (*) FROM membre WHERE pseudo='".$pseudo."' AND mdp='".MD5($pass)."'";
$query = mysql_query($requete) OR die(mysql_error());
$rep = mysql_result($query, 0, 0);
if ($rep == 0)
{
echo '<p> Il y a '.$rep.'<br/>Pseudo ou mot de passe incorrect, veuillez les recommencer.<br/><input type="button" name="Retour" value="Retour" onclick="javascript:document.location.replace(\'./../connecter.php\')"></p>';
}
else
{
session_register("pseudo");
$_SESSION['pseudo']=$pseudo;
echo '<script language="Javascript">document.location.replace("./../../index.php");</script>';
}
}
mysql_close();
?>
</body>
La ligne suivant s'affiche:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM membre WHERE pseudo='Carcass' AND mdp='9147608e9a976ae61588360b7a91c122'' at line 1
Merci d'avance et bonne année :)
J'ai un souci avec l'exécution d'une requête count dans du php. Je veut qu lorsque une personne a fournie les bon identifiant, elle soit redirigé vers une autre page, ou alors qu'un message s'affiche.
Voila le code, ici la voila le contenu du body de de la page recevant les réponse aux formulaire:
<body>
<div id="logo"></div>
<?php
include('./../config.php');
if (!empty($_POST['pseudo']) and !empty($_POST['pass']))
{
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
$requete = "SELECT COUNT (*) FROM membre WHERE pseudo='".$pseudo."' AND mdp='".MD5($pass)."'";
$query = mysql_query($requete) OR die(mysql_error());
$rep = mysql_result($query, 0, 0);
if ($rep == 0)
{
echo '<p> Il y a '.$rep.'<br/>Pseudo ou mot de passe incorrect, veuillez les recommencer.<br/><input type="button" name="Retour" value="Retour" onclick="javascript:document.location.replace(\'./../connecter.php\')"></p>';
}
else
{
session_register("pseudo");
$_SESSION['pseudo']=$pseudo;
echo '<script language="Javascript">document.location.replace("./../../index.php");</script>';
}
}
mysql_close();
?>
</body>
La ligne suivant s'affiche:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM membre WHERE pseudo='Carcass' AND mdp='9147608e9a976ae61588360b7a91c122'' at line 1
Merci d'avance et bonne année :)
A voir également:
- SQL et PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Jointure sql ✓ - Forum MySQL
- Retour a la ligne php ✓ - Forum PHP
14 réponses
Bonsoirs.
Voici la bonne requête :
PS : Pense à mettre le code entre les balise
$requete = "SELECT COUNT (*) FROM membre WHERE pseudo='".$pseudo."' AND mdp='".MD5($pass)."'";
Voici la bonne requête :
$requete = "SELECT COUNT (*) AS membre WHERE pseudo='".$pseudo."' AND mdp='".MD5($pass)."'";
PS : Pense à mettre le code entre les balise
etsur CCM pour concerver l'indentation.
Sa ne fonctionne pas non plus, et la même ligne s'affiche.
Et je dois mettre entre quelle balise? C'est koi CCM?
Et je dois mettre entre quelle balise? C'est koi CCM?
CCM = CommentCaMarche (ce site).
Viens sur cette page pour plus d'explications
$requete = "SELECT COUNT (*) AS nb_membre FROM membre WHERE pseudo='".$pseudo."' AND mdp='".MD5($pass)."'"; $req = mysql_query($requete) or die (mysql_error()); $temp = mysql_fetch_array($req); $nb = $temp['nb_membre'];
Viens sur cette page pour plus d'explications
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Apparement tu ne sais pas adapter le code. Voici le code PHP complet (je le crée à partir de rien) :
<?php include './../config.php'; if(!empty($_POST['pseudo']) && !empty($_POST['pass'])) { $pseudo = addslashes(htmlspecialchars($_POST['pseudo'])); $pass = $_POST['pass']; //Normalement on se connecte, ce que je ne vois pas dans la source ;) $sql = "SELECT pseudo,mdp FROM membre WHERE pseudo = '".$pseudo."'"; $req = mysql_query($sql) or die ('Erreur SQL ! <br/>'.mysql_error()); $nb = mysql_num_rows($req); $data = mysql_fetch_array($req); if($nb > 0) { if(md5($pass) == $data['mdp']) { $_SESSION['pseudo'] == $pseudo; } else { echo 'Mauvais mot de passe !'; } } else { echo 'Membre inexistant !'; } } else { echo 'Merci de remplir tous les champs'; } mysql_close(); ?>
Apparament, tu ne "crypt" pas tes mots de passes (quand je vois ton script ça fait peut niveau sécurité ; On te fais une injection SQL en moins de 2).
<?php include './../config.php'; if(!empty($_POST['pseudo']) && !empty($_POST['pass'])) { $pseudo = addslashes(htmlspecialchars($_POST['pseudo'])); $pass = $_POST['pass']; //Normalement on se connecte, ce que je ne vois pas dans la source ;) $sql = "SELECT pseudo,mdp FROM membre WHERE pseudo = '".$pseudo."'"; $req = mysql_query($sql) or die ('Erreur SQL ! <br/>'.mysql_error()); $nb = mysql_num_rows($req); $data = mysql_fetch_array($req); if($nb > 0) { if($pass == $data['mdp']) { $_SESSION['pseudo'] == $pseudo; } else { echo 'Mauvais mot de passe !'; } } else { echo 'Membre inexistant !'; } } else { echo 'Merci de remplir tous les champs'; } mysql_close(); ?>
Même problème, il affiche toujours Mauvais mot de passe. Et dans ma base de donnée, les mot de passes sont codés.