select et update kaputt?

ViPHP
ViPHP | 1961 Messages

15 oct. 2006, 19:17

Bon, on avance un peu
Montre la ligne où tu asignes la valeur de $id, éventuellement celle ou tu gardes ton $id en session
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2006, 22:05

La page qui pose problème....

<?php
session_start() ;
?>
<?php
$db= mysql_connect(localhost, xxxx, xxxx) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('xxxx',$db)  or die('Erreur de selection base'.mysql_error());
$sql = "SELECT gestion ".
       "FROM membres  ".
       "WHERE id = ". $id .";"; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'gestion'));
if ($data== './images/jetonrouge.gif')
       {
    echo '<center><font color="red">Désolé, mais VOTRE JETON EST ROUGE !</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
	}
	else
	{
$sql = "UPDATE membres ".
           "SET vie = vie+0.1, 
                gestion = './images/jetonrouge.gif', 
                mp = ' Vous venez de vous taper une bonne sieste qui vous rapporte 0.1 pt Vie.' ".
           "WHERE id = ". $id .";"; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
   $_SESSION['gestion']='./images/jetonrouge.gif';
   $_SESSION['vie']=$_SESSION['vie']+0.1;
   $_SESSION['mp']=' Vous venez de vous taper une bonne sieste qui vous rapporte 0.1 pt Vie.';

}
header("Location: page_membre.php");
}
mysql_close();
?> 
la page d'ou vient le id (volontairement rétrécie à cause de toutes les données de session)
<?php
session_start() ;
?>
<?php
$message = "";
//Vérifier si le pseudo et mot de passe sont envoyés non vides
if (
isset($_POST['pseudo']) && isset($_POST["passe"])
&& !empty($_POST["pseudo"]) && !empty($_POST["passe"])
)
{
//on recupere les données du formulaire
$login = $_POST['pseudo'];
$passe = $_POST['passe'];

// on recupère les info du membre à partir de la base ce qui permet aussi
//de voir si le pseudo et pass sont corrects
//Exécuter la requête
$db= mysql_connect(localhost, xxxx, xxxx) or die("Impossible de se connecter à la base de données"); 	   
// sélection de la base  
 mysql_select_db('xxxx',$db)  or die('Erreur de selection base'.mysql_error());
$req = mysql_query("select * from membres where pseudo='$login' and passe='$passe'",$db)or die(mysql_error());

//Tester si la requête est réussie et qu'un membre est trouvé
if ($req && mysql_num_rows($req) >0) {
   //Lire le résultat retourné par la requête
   $data = mysql_fetch_assoc($req);
   if ($data) {
            //Lire et stocker les infos  dans la session
		   $_SESSION['pseudo'] = $login;
                   $_SESSION['id'] = $data["id"];
                   $_SESSION['age'] = $data["age"];
                   $_SESSION['sexe'] = $data["sexe"];
		   $_SESSION['avatar'] = $data["avatar"];
		   $_SESSION['gestion'] = $data["gestion"];
   		   $_SESSION['action'] = $data["action"];
   		   
           //rediriger vers la page membre
           header("Location: page_membre.php");
    }
    else //pour if ($data ...
          $message = '<p>Une erreur est survenue, Merci de recommencer</p>';
}
else //pour if ($req ...
      $message = '<p><center>Mauvais pseudo / mot de passe. Veuillez recommencer</p></center>';
}
else //pour if (isset($_POST["pseudo ...
     $message = '<p>Merci de bien vouloir passer par la page Inscription</p>';

include ("inscription.php");
echo $message;
?>
Une ligne dans le fichier d'inscrition (qui marche lui!) ou je fous dans la base les données saisies par le membre....
$sql = "INSERT INTO membres(id, pseudo, passe, email, sexe, age, avatar, date_inscri) VALUES ('','$login','$passe','$email', '$sexe','$age','$typeava',NOW())";













[/php][/php]

ViPHP
ViPHP | 1961 Messages

15 oct. 2006, 22:12

Et vein voilà.

Change ça

Code : Tout sélectionner

<?php session_start() ; ?> <?php
par

Code : Tout sélectionner

<?php session_start(); $id = $_SESSION['id']; // On supprime aussi le ?> et le <?php
Ça devrait aller mieux.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2006, 22:34

:lol:

Super, ca refonctionne!
merci à toi!!!

Par contre, pourquoi ma méthode employée a fonctionné pendant plusieurs mois et d'un seul coup affichait un message d'erreur???

ViPHP
ViPHP | 1961 Messages

15 oct. 2006, 22:41

Je suppose que tu as du faire du copier-coller au autre qui a supprimé la ligne d'affectation et enjendré les erreurs de concaténation.
Car une chose est sure, le fait d'ouvrir la session n'affecte pas les avleurs aux differnets variables.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein