Problème UPDATE

Répondre
Aniki
le 17/09/2009 à 23:35
Aniki
J'ai un formulaire de connection (login+mdp) dans le traitement de ce formulaire j'ai deux requetes (un SELECT et un UPDATE) le problème c'est que le UPDATE n'enregistre rien dans la BDD. j'ai beau tourner le problème dans tous les sens j'ai toujours rien dans ma BDD. J précise que mes deux requetes sont sur la meme table. Une solution peut etre avant de perdre mes derniers cheveux.

voici mon code:
<?php
include('sql.php');
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) AND $_POST['connexion'] == 'OK') {
if ((isset($_POST['membres_pseudo']) AND !empty($_POST['membres_pseudo'])) AND (isset($_POST['membres_mdp']) AND !empty($_POST['membres_mdp']))) {

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membres WHERE membres_pseudo="'.mysql_escape_string($_POST['membres_pseudo']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
$result = mysql_query('
UPDATE membres
SET membres_connect=1
WHERE membres_pseudo="'.$_POST['membres_pseudo'].'"
');
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la connection";
}
else
{
session_start();
$_SESSION['membres_pseudo'] = $_POST['membres_pseudo'];
header('Location: accueil1.php');
exit();
}
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte inconnu !';
$erreur .= "<br />";
$erreur .= "Merci de recommencer !";
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = "Tous les champs ne sont pas remplis !";
$erreur .= "<br />";
$erreur .= "Merci de recommencer !";
}
}
?>
LA GLOBULE
le 18/09/2009 à 09:09
LA GLOBULE
Alors, en vrac :

1) Tu as oublié un mysql_escape_string dans ta requete UPDATE
2) Tu as oublié de mettre un or die mysql_error() sur ton UPDATE (car la, si la requete genere une erreur, tu ne la verras pas)
3) Je te conseille de faire du debug basique, c'est à dire de mettre un echo 'pom'; dans le if ($data[0] == 1) { (ca te permet de voir si PHP passe bien dans ce if : si il n'y passe pas, c'est normal qu'il ne fasse pas l'UPDATE)
Aniki
le 18/09/2009 à 15:18
Aniki
salut!

Bon j'ai fait le test il m'affiche bien le echo

Par contre j'ai toujour une erreur :
Erreur SQL !
Access denied for user 'user12568'@'mysql' (using password: NO)
Aniki
le 18/09/2009 à 15:39
Aniki
Salut!

Je viens de trouver mon erreur !

En fait lors de ma première requete SELECT j'ai cloturé ma connection a la base de donnée et puis je lui disais de faire une deuxième requete sur cette base donc forcément il ne pouvait se connecter.

Merci LA GLOBULE !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours