Problème variables/session PHP

Fermé
Nico - 1 mars 2005 à 16:00
barbaritta Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 11 mai 2008 - 11 mai 2008 à 17:09
Bonjour à tous!

Voila j'ai un problème de variable sous une sessions en PHP. J'ai créé un formulaire en 1ère page, une fois rempli , on arrive à la 2ème page où ici un récapitulatif des données du formulaire est affiché. Jusque là tout va bien, les données sont bel et bien affichés, mais le problème se passe par la suite. Une fois accepter, la 3ème page afficher des erreurs de variables (pour toutes les données) et j'ai une erreur de syntaxe pour l'insertion dans la base.

Voici les bouts de code:

Page2:
<?php
include("definitions.inc.php3");

//-------on démarre une session------
session_start();


$nomappli=$_POST['nomappli'];
$editeur=$_POST['editeur'];
$nomlong=$_POST['nomlong'];
$code=$_POST['code'];
$version=$_POST['version'];


echo"<center>";
echo"<table border='2'bordercolor='black'>";
echo"<b><center>Détails de l'application</center></b>";
echo"<tr>";


echo"<td bgcolor='#80e0c0'><b>INFORMATIONS GENERALES</b></td>";
echo"<tr><td bgcolor='#48d1cc'>Nom de l'application</td>";
echo"<td bgcolor='#E6E8FA'>$nomappli</td><td><td><td><td><td>";
echo"<tr><td bgcolor='#48d1cc'>Descrpition de l'application</td>";
echo"<td bgcolor='#E6E8FA'>$nomlong</td>";
echo"<tr><td bgcolor='#48d1cc'>Code Convergence</td>";
echo"<td bgcolor='#E6E8FA'>$code</td>";
echo"<tr><td bgcolor='#48d1cc'>Editeur</td>";
echo"<td bgcolor='#E6E8FA'>$editeur</td>";
echo"<tr><td bgcolor='#48d1cc'>Version</td>";
echo"<td bgcolor='#E6E8FA'>$version</td>";
echo"<tr><td bgcolor='#48d1cc'>Type d'application</td>";
echo"</tr>";

echo"</table>";

session_register("nomappli","editeur","nomlong","code","version");
?>



Page3:


<?php
include("definitions.inc.php3");

//--------On démarre la session-----------
session_start();

//----------Connexion au serveur-----------
$serveur = mysql_connect(SERVEUR,NOM,PASSE);

//----------Sélection de la base
if (! mysql_select_db(BASE))
{
echo "Impossibilité de sélectionner la base ".BASE."<br>";
exit;
}


$insert = "INSERT INTO applications (ID_APPLICATIONS,CODE_CONVERGENCE_IET,NOM_COURT,NOM_LONG,EDITEUR,VERSION_EXEC)
VALUES ('','$code','$nomappli','$nomlong','$editeur','$version')";

$result=mysql_query($insert);
if ($result)
{
echo "Vos informations ont bien étés saisies.<br>";
}
else
{
echo"Insertion non réussie";
echo"Erreur ".mysql_errno()." : ".mysql_error()."<br>";
}

//----On détruit les variables contenues dans la session-------
session_unset();
?>



La page 3 m'annonce donc des erreurs comme :
Notice: Undefined variable: code in ...

et à la fin

Insertion non réussieErreur 1062 : Duplicata du champ '0-0' pour la clef 1



Merci beaucoup!

7 réponses

Fada09 Messages postés 1701 Date d'inscription lundi 15 septembre 2003 Statut Contributeur Dernière intervention 4 septembre 2010 545
1 mars 2005 à 17:03
Salut,

A la place de $code tu devrais plutot mettre $_SESSION['code'] !

Normalement la communication entre deux pages pour valider un formulaire se fait en utilisant la méthode POST ou GET.


Ensuite ton champ ID_APPLICATIONS doit être surement en auto-increment donc si c'est le cas tu as aps besoin de l'écrire dans ta requete :
INSERT INTO applications
(CODE_CONVERGENCE_IET,
NOM_COURT,
NOM_LONG,
EDITEUR,
VERSION_EXEC)
VALUES
('$_SESSION['code']',
'$_SESSION['nomappli']',
'$_SESSION['nomlong']',
'$_SESSION['editeur']',
'$_SESSION['version']')"; 


Ca devrait aller mieux mais encore une fois je te conseille d'utiliser POST ou GET (cherches des tutoriaux sur ce site ou sur www.google.fr)


bon courage ++
;-)
~ ~ Fada ~ ~ : Member of #Star!alco
0
C'est ce que je pensais utiliser mais je ne vois pas trop comment faire, le $_SESSION['code'] par exemple où faut il le mettre? faut changer quelque chose dans la page 2? j'avais utilisé un POST pourtant.

Et au fait pour le bout de code que tu as mis avec $_SESSION['code'] , ca me met une erreur à cette ligne là:
parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING


merci!
0
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
2 mars 2005 à 10:19
Salut,

Peut être un soucis avec les guillemets, essaie:

$a="INSERT INTO applications
(CODE_CONVERGENCE_IET,
NOM_COURT,
NOM_LONG,
EDITEUR,
VERSION_EXEC)
VALUES
('".$_SESSION['code']."',
'".$_SESSION['nomappli']."',
'".$_SESSION['nomlong']."',
'".$_SESSION['editeur']"'.,
'".$_SESSION['version']."')"; 

mysql_query($a);


Au lieu d'utiliser session_register() essaie plutôt:
$_SESSION['nomappli']=$nomappli; //par exemple
0
Fada09 Messages postés 1701 Date d'inscription lundi 15 septembre 2003 Statut Contributeur Dernière intervention 4 septembre 2010 545
2 mars 2005 à 11:07
Oui je pense aussi à un problème de guillemet !

Normalement dans ta page 2 rien à changer.

;-)
~ ~ Fada ~ ~ : Member of #Star!alco
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai réussi c'est bon :)
Merci beaucoup.

Par contre j'ai juste une dernière erreur, une erreur de syntaxe lors de l'insertion et je ne vois aucune erreur sur l'insertion dans la table pourtant:

$insert9 = "INSERT INTO pre_requis_materiel (NIVEAU_MATRICE_MINI,ESPACE_DISQUE_INSTALL,PARAMETRE_VIDEO,TAILLE_MEMOIRE,TYPE_PROCESSEUR,NOM_PREREQ_1,NOM_PREREQ_2,NOM_PREREQ_3,NOM_PREREQ_4,NOM_PREREQ_5,NOM_PREREQ_6,AUTRE_PREREQUIS_1,AUTRE_PREREQUIS_2)
VALUES ('$_SESSION[matriceMin]','$_SESSION[espaceDiskNec]','$_SESSION[ParVideoMin]','$_SESSION[tailleRAM]','$_SESSION[typeVitProcMin]','$_SESSION[prerequisAppli_1]','$_SESSION[prerequisAppli_2]','$_SESSION[prerequisAppli_3]','$_SESSION[prerequisAppli_4]','$_SESSION[prerequisAppli_5]','$_SESSION[prerequisAppli_6]','$_SESSION[autrePrerequis_1]','$_SESSION[autrePrerequis_2]')";
0
Problème résolu c'est bon :)
Merci à tous.
0
barbaritta Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 11 mai 2008
11 mai 2008 à 17:09
bonjour, si quelqu’un pourrait m'aider j’en serais très reconnaissante, j ai développé un site web dynamique , l'utilisateur se connecte avec login et mot de passe , j ai utilisé une variable de session qui est le login pour pouvoir accéder à une session , jusque là tout se passe bien seulement puisque toutes mes pages ne sont accessibles qu’avec la variable de session , kan j veux accéder à l une d entre elles , elles me revoient à la page connexion c à dire où l utilisateur saisit son login et son mot de passe pour se connecter , sachant que parfois elles reconnaissent la variable de session et parfois non j ai pas pu détecter le problème, merci d'avance de votre aide.
0