Problème variables/session PHP

Nico -  
barbaritta Messages postés 3 Statut Membre -
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!
A voir également:

7 réponses

Fada09 Messages postés 1741 Statut Contributeur 545
 
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
Nico
 
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 8854 Statut Modérateur 1 526
 
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 1741 Statut Contributeur 545
 
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
Nico
 
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
Nico
 
Problème résolu c'est bon :)
Merci à tous.
0
barbaritta Messages postés 3 Statut Membre
 
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