Rechercher : dans
Par :

Problème variables/session PHP

Dernière réponse le 11 mai 2008 à 17:09:55 Nico, le 1 mar 2005 à 16:00:37 
 Signaler ce message aux modérateurs

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!

Meilleures réponses pour « Problème variables/session PHP » dans :
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Fada09, le 1 mar 2005 à 17:03:01

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

Répondre à Fada09

2

Nico, le 2 mar 2005 à 10:07:39

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!

Répondre à Nico

3

kilian, le 2 mar 2005 à 10:19:24

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

Répondre à kilian

4

Fada09, le 2 mar 2005 à 11:07:56

Oui je pense aussi à un problème de guillemet !

Normalement dans ta page 2 rien à changer.

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

Répondre à Fada09

5

Nico, le 2 mar 2005 à 11:12:43

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]')";

Répondre à Nico

6

Nico, le 2 mar 2005 à 14:42:47

Problème résolu c'est bon :)
Merci à tous.

Répondre à Nico

7

 barbaritta, le 11 mai 2008 à 17:09:55

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.

Répondre à barbaritta