$_SESSION variable chez online.net

Fermé
anonyme_boy - 28 déc. 2008 à 11:44
 le père - 3 mars 2009 à 09:32
Bonjour,

Je viens de créer un site internet (chez ONLINE.net) avec un formulaire d'inscription simple passant par plusieurs page donc j'utilise $_SESSION en vérifiant bien si la données est bien presente (avec echo)
Les données de mes clients doivent être enregistré dans la base de données associèe .

Table de ma base de données => 2 champs : 'ID' et 'Nom'

Champ : ID
Type : BIGINT
Taille/Valeurs*1 : 20
Interclassement :
Attributs :
Null : not null
Défaut2 :
Extra : auto_increment
Commentaires :

Champ : Nom
Type : TEXT
Taille/Valeurs*1 :
Interclassement : latin1_general_ci
Attributs :
Null : not null
Défaut2 :
Extra :
Commentaires :


Maintenant, voici mon code PHP à la fin de mon formulaire pour écrire les données dans la table:

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


<html>
<body>


<?php
$Nom = $_SESSION['Nom'];
?>

<?php

$host = 'BaseDeDonnees.SiteInternet.com';
$base = 'BaseDeDonnees';
$login = 'BaseDeDonnees';
$pwd = 'MotsDePasse';

// Connexion au serveur

$db = mysql_connect($host, $login, $pwd);

// On test le retour de la connexion

if(!$db)
{
// on affiche un message d'erreur :
print "Désolé, connexion impossible à [$host] : ".mysql_error();
exit;
}


echo $Nom;

$sql = 'INSERT INTO `BaseDeDonnees`.`MaTable`(`ID`, `Nom`) VALUES (NULL,'$Nom');';


// Une requête qui retourne une erreur si vous n'avez pas de table

if(!mysql_query($sql,$db))
{
// on affiche un message d'erreur :
print "erreur sur la requête $sql dans la base [$base] du serveur [$host]<br>".mysql_error();
mysql_close($db);
exit;
}


// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
?>

</body>
</html>
----------------------------------------------------------------------------------------------------------------
Lorsque je test mon site internet, j'ai comme ERREUR :

"syntax error, unexpected T_VARIABLE"

Je ne comprends pas !!!

2 réponses

bonjour,

je ne sais pas si tu as trouvé une soluction a ton probleme, mais déjà en regardant rapidement ton code, je m'apercois que tu fais appel a une variable de sesion apres avoir fait un affichage html de ta page.
le code $Nom = $_SESSION['Nom']; devrait se retrouver juste en dessous du code qui te permet d'ouvrir ta session tout en haut de ta page.

ensuite il semblerait qu'il y ait une erreur dans cette ligne de commande :
$sql = 'INSERT INTO `BaseDeDonnees`.`MaTable`(`ID`, `Nom`) VALUES (NULL,'$Nom');'
il faudrait plutot ecrire
$sql = "INSERT INTO 'matable' ('ID', 'Nom') VALUES (NULL,'$Nom')";

Il me semble qu'online ne permette pas la gestion de plusieurs bases de données .....

en espérant t'avoir aidé
0
Bonjour

Il n'y a absolument aucun problème à utiliser la variable $_SESSION après avoir commencé l'envoi des données, c'est seulement le session_start() qui doit être avant (parce qu'il utilise les en-têtes).

Par contre, tu avais bien un peoblèmes de quotes. Quant tu écris :
'INSERT INTO `BaseDeDonnees`.`MaTable`(`ID`, `Nom`) VALUES (NULL,'$Nom');';
Tu as une chaîne qui commence par un apostrophe. Elle s'arrête donc à l'apostrophe suivant, entre NULL, et $Nom. Derrière, PHP tombe directement sur un nom de variable, ce qui est incorrect.
De plus, ton nom de variable $Nom aurait été dans une chaîne entre apostrophes et n'aurait donc pas été remplacé par la valeur de la variable. La réponse de fab corrige ce problème.

Essaye :
$variable = "machin";
echo "voici la valeur de ma variable $variable<br />";
echo 'voici la valeur de ma variable $variable<br />';
0