[RESOLU] Problème SELECT avec une variable session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème SELECT avec une variable session

Re: Problème SELECT avec une variable session

par rickphp » 04 nov. 2012, 19:49

Avec un varchar, c'est réglé :P merci

Re: Problème SELECT avec une variable session

par rickphp » 02 nov. 2012, 14:26

Ok! Merci beaucoup je test cela tentot

Re: Problème SELECT avec une variable session

par xTG » 02 nov. 2012, 12:11

Taille d'un entier cela te parle ? ^^

Un entier signé de 32bits peut prendre les valeurs de -2 147 483 648 à 2 147 483 647.
Or 1377491055832 > 2147483647.

Il te faut donc travailler avec des BIGINT ou bien avec un VARCHAR pour ton champ de table.

Re: Problème SELECT avec une variable session

par rickphp » 02 nov. 2012, 02:07

Je viens de trouver la source du problème...

Le $_SESSION['id'].. N'est pas le meme qui s'insère dans la base de donnée... O_o

Voici le code de ma page :
<?php
session_start();
require('config/connect.php');
require('config/fonctions.php');

if(!empty($_GET['id']))
	{
	
		$requete = "SELECT * FROM article WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
		$req_exec = mysql_query($requete) or die(mysql_error());
		$resultat = mysql_fetch_array($req_exec);
		
		$requete2 = ("SELECT COUNT(*) AS nb_resultat FROM panier WHERE article = '".$resultat['nom']."'");											
		$req_exec2 = mysql_query($requete2);
		$resultat2 = mysql_fetch_array($req_exec2);
						 
		if($resultat2['nb_resultat'] > 0)
			{
				$requete3 = "SELECT * FROM panier WHERE article = '".$resultat['nom']."'";
				$req_exec3 = mysql_query($requete3) or die(mysql_error());
				$resultat3 = mysql_fetch_array($req_exec3);
				
				$quantite = $resultat3['quantite'] + 1;
				
				mysql_query("UPDATE panier SET quantite='$quantite' WHERE id ='".$resultat3['id']."'");
			}

		else
			{ 
				$id_visiteur = mysql_real_escape_string($_SESSION['id']);
				$article = mysql_real_escape_string($resultat['nom']);
				$prix = mysql_real_escape_string($resultat['prix']);
				$quantite = 1;
				
				mysql_query("INSERT INTO panier(id_visiteur,article,quantite,prix) VALUES ('$id_visiteur', '$article', '$quantite', '$prix')");
			}
		
	}	
echo $_SESSION['id'];

$requete4 = "SELECT * FROM panier WHERE id_visiteur = '".$_SESSION['id']."'";
$req_exec4 = mysql_query($requete4) or die(mysql_error());

$resultat4 = mysql_fetch_array($req_exec4);
	
echo $resultat4['article'];
	
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Panier d'achat</title>
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" />

</head>
<body>

	<div id="content">
		<div id="header">
		</div>
		<div id="contenu">

			<div id="panier">
				<a href="index.php">Retour &agrave; la boutique</a>
			</div>

			<div id="right">
				<div id="tblPanier">	
					<p style="text-align:center; color:#046380; font-weight:bold; font:20px Arial;"><u>1. Votre panier</u> > 2. Information de livraison > 3. Paiement</a>
					<table>
						<tr>
							<th width="410px" style="text-align:left; padding-left:10px;">Nom du produit</th>
							<th width="120px">Quantit&eacute;</th>
							<th width="40px">&nbsp;</th>
							<th width="80px">Total</th>
						</tr>
						<tr>
							<td></td>
							<td align="center">0</td>
							<td align="center"><img src="images/delete.png" style="margin-top:5px;" /></td>
							<td align="center"></td>
						</tr>
					</table>
				</div>
				<div style="float:right; margin-right:8px; margin-top:10px;">
					<table>
						<tr>
							<td><strong>Total avant les taxes :</strong></td>
							<td>&nbsp;&nbsp;</td>
							<td>1299.99$</td>
						</tr>
						<tr>
							<td><strong>Taxes :</strong></td>
							<td>&nbsp;&nbsp;</td>
							<td>129.99$</td>
						</tr>
						<tr>
							<td><strong>Total :</strong></td>
							<td>&nbsp;&nbsp;</td>
							<td>1399.99$</td>
						</tr>
					</table>
					<a href="#" style="float:right; text-decoration:none; border:1px solid black; padding:5px; margin-top:5px; color:white; background-color:#046380;">Poursuivre la commande</a>
				</div>
			</div>
		<div style="clear:both;"></div>
		</div>
		<div id="footer">
		</div>
	</div>

</body>
</html>
Lorsque je fais un echo du session id, ca retourne cela : 1377491055832

Mais dans ma base de donnée, c'est ceci : 2147483647

Je ne comprend pas??

Merci

Re: Problème SELECT avec une variable session

par rickphp » 01 nov. 2012, 14:34

Comme je précise dans le premier exemple :
$id_visiteur = mysql_real_escape_string($_SESSION['id']);       
echo $id_visiteur; // Ceci fonctionne!
Si je fais un echo de la variable session.. Ça fonctionne :/

Re: Problème SELECT avec une variable session

par xTG » 01 nov. 2012, 09:57

Je pencherai pour ta variable de session qui est vide. ;)
L'as-tu bien remplie sur une autre page et as-tu bien un session_start() en toute première ligne de ton script ?

Problème SELECT avec une variable session

par rickphp » 01 nov. 2012, 00:55

Bonjour,

Mon problème n'est pas trop compliqué... Mais ça ne fonctionne pas :)

J'essaie d'extraire une ligne d'une table qui est = a mon $_SESSION['id'] (un numéro unique pour un client que j'ai attribué)

Si je fais cela, ca ne fonctionne pas :
$id_visiteur = mysql_real_escape_string($_SESSION['id']);	
echo $id_visiteur; // Ceci fonctionne!

$requetep = "SELECT * FROM panier WHERE id_visiteur = '".$id_visiteur."'";
$req_execp = mysql_query($requetep) or die(mysql_error());

$panier = mysql_fetch_array($req_execp);
	
echo $panier['article']; // ici ca ne fonctionne pas..

Ceci ne fonctionne pas non plus :
$requetep = "SELECT * FROM panier WHERE id_visiteur = '".mysql_real_escape_string($_SESSION['id'])."'";
$req_execp = mysql_query($requetep) or die(mysql_error());

$panier = mysql_fetch_array($req_execp);
	
echo $panier['article'];
Parcontre, ceci fonctionne...
$requetep = "SELECT * FROM panier WHERE id_visiteur = '213412342134'";
$req_execp = mysql_query($requetep) or die(mysql_error());

$panier = mysql_fetch_array($req_execp);
	
echo $panier['article'];
Qu'est-ce que je fais de pas correct?...

Merci!