Page 1 sur 1

Une erreur de session PHP

Posté : 07 août 2005, 21:19
par harry67
Bonjour,
J'ai un problème avec un script qui utilise une session :
<?php
session_start();
$host="***********";
$user="*********";
$mpasse="*******";
$database="**************"; 
$prix = 12;
$nom = 1;

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible"); 

$db = mysql_select_db($database)
or die("Sélection de la base impossible");

$sql = "SELECT argent FROM membres WHERE login='" . $_SESSION[login] . "'";

$res = mysql_query($sql) or die(mysql_error());

$ligne1 = mysql_fetch_array($res, MYSQL_ASSOC);

if ($ligne1['argent'] < $prix)
{ echo "Vous n'avez pas assez d'argent pour acheter ce livre";
  exit;
}
else
{ $total = $ligne1['argent'] - $prix;
if ($_POST[livre] == "Métamorphose")
{ $total = $ligne1['argent'] - $prix;
 $req = "UPDATE sac
SET meta='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
elseif ($_POST['livre'] == "Divination")
{ $req = "UPDATE sac
SET divination='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
elseif ($_POST['livre'] == "Botanique")
{ $req = "UPDATE sac
SET botanique='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
elseif ($_POST['livre'] == "Défense contres les forces du mal")
{ $req = "UPDATE sac
SET dfcm='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
elseif ($_POST['livre'] == "Astronomie")
{ $req = "UPDATE sac
SET astronomie='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
elseif ($_POST['livre'] == "Quidditch")
{ $req = "UPDATE sac
SET quidditch='".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
else
{ $req = "UPDATE sac
SET soins'".$nom."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}

$req = "UPDATE membres
SET argent'".$total."'
WHERE login='".$_SESSION[login]."'";
$result = mysql_query($req) or die(mysql_error());
}
?>
Ca me met cette erreur :
Erreur de syntaxe près de ''1' WHERE login='alexbain'' à la ligne 2

Pourquoi?

Posté : 07 août 2005, 22:23
par Cyrano
C'est une erreur SQL , mais ton code nous montre le PHP avec une collection de requête : à laquelle est-ce que correspond l'erreur ?

Affiche la requête générée :

Une erreur de session PHP

Posté : 08 août 2005, 12:00
par harry67
Quand j'enlève le session_start(), il n'y à plus d'erreur mais bien sûr, il est indispensable au bon fonctionnement du code. C'est pour cela que je pense que c'est une erreur de Session