Problème Varibale Superglobale

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème Varibale Superglobale

par dunbar » 05 juin 2009, 22:43

Je ne suis aps certain d'avoir compris mais ceci ne règle t'il pas ton soucis :?:
<?php 
... 
} 
elseif (isset($_POST['a'])) 
{ 
include 'Page3.php?valeur='.$_POST['a']; 
} 
elseif (isset($_POST['OptionPlus'])) 
{ 
include 'Page4.php?valeur='.$_POST['OptionPlus']; 
} 
?>
Puis ds ta page 4
a la place de ceci
$var1 = $_POST['a']; <--- ERREUR 
Ceci
$var1 = $_GET['valeur'];

par CaRTmaN » 05 juin 2009, 16:17

ok, je vais essayer avec des sessions alors.
Merci

par webaida » 05 juin 2009, 12:05

Pour autant que je sache, une variable comme $_POST[] est disponible partout dans le script en cours, mais n'a jamais été disponible sur plusieurs pages.
Ce sont les $_SESSION qui sont disponibles partout (pour peu que tu ouvres la session dans chaque script)
Dans ton cas, je ne vois d'autres manières que de balader ta variable de $_POST[] en formulaire à chaque changement de page.

par CaRTmaN » 05 juin 2009, 11:08

Ma variable $_POST['a'] est créer via un formulaire sur la Premiere page (pas Page1, mais le premier bout de code que j'ai mis).
Puis sur une autre page, la page3, je récupère cette variable $_POST['a'] pour la mettre dans une variable $var1 plus facile je pense à utiliser pour la suite de mon code.

C'est lorsque sur cette même page, je clique sur un bouton qui va alors me rediriger vers une autre page (page4) que la variable $_POST['a'] n'est plus défini ... mais pourquoi ? une variable superglobale ne reste pas active sur/pour toutes les pages ?

par webaida » 05 juin 2009, 10:53

Dans ta Page3 tu crées un formulaire à soumettre mais tu n'y inclues pas ta variable $var1 dans un champ de formulaire "a". Tu passes ensuite dans ta condition qui te fait atterrir en page4 dans laquelle tu cherches la variable de formulaire "a" non créée avant.
C'est pas ça ton soucis ?

Problème Varibale Superglobale

par CaRTmaN » 05 juin 2009, 10:27

Bonjour,

Alors mon problème ne va pas être simple à vous montrer, car ca s'étend sur plusieurs pages de code mais je vais essayer de vous montrer...
Mais enfaite j'ai un problème au niveau d'une variable $_POST['xx']. Avant de vous montrer, mon problème vient du faite que la variable $_POST['xx'] perd ca valeur je crois et j'ai cette ligne d'erreur qui s'affiche: "Notice: Undefined index: Employe in ...\PageInfoEmployePlus.php on line 31"

Voici le code:

Premiere page, lorsque je défini la variable $_POST['a']
<?php
if ($_SERVER['PHP_SELF'] == '.../Page1.php')
{
echo '<form action="Page1.php" method="POST" name="Boutonvalider1">';
}
elseif ($_SERVER['PHP_SELF'] == '.../Page2.php')
{
echo '<form action="Page2.php" method="POST" name="Boutonvalider1">';
}
?>
<select name="a" size="15px" style="width:80%" >
<?php

mysql_connect("localhost", "root", "");
mysql_select_db("Test");

$var1 = mysql_query("SELECT NOM_Perso FROM perso ORDER BY NOM_Perso") or die("Requete pas comprise");
while ($donnees = mysql_fetch_array($var1))
{
echo '<option value="' . $donnees[0] . '">' . $donnees[0];
echo '</option>' . '\n';
}
?>
</select>
...
...
<?php
if ($_SERVER['PHP_SELF'] == '.../Page1.php')
{
echo '<input name="Pers" type="submit" value="Valider" title="Cliquer pour valider votre choix"/>';
}
elseif ($_SERVER['PHP_SELF'] == '.../Page2.php')
{
echo '<input name="Pers" type="submit" value="Valider" title="Cliquer pour valider votre choix"/>';
}
?>
</form>
Une fois selectionner dans la liste déroulante le nom, je clique sur le bouton et je suis alors redirigé vers la Page1 on va dire
Page1:
...
<?php
...
}
elseif (isset($_POST['a']))
{
include 'Page3.php';
}
...
Sur la page un sera alors chargé ma page3, avec la variable $_POST['a'] valant par exemple "Tom" un nom selectionner dans la liste déroulante.
Page3:
<?php
require 'SQL.php';

mysql_connect("localhost", "root", "");
mysql_select_db("test");
// j'affecte une variable à $_POST['a'] pour pouvoir l'utiliser dans mon code
$var1 = $_POST['a'];
?>
...
<?php
if ($_SERVER['PHP_SELF'] == '.../Page1.php')
{
echo '<form action="Page1.php" method="POST">';
echo '<input type="submit" name="OptionPlus" value="Info +" title="cliquer pour afficher toutes les infos de la personne"/></form></td>';
}
elseif ...
?>
Je clique sur le bouton, ca charge la page Page1.php
Page1:
...
<?php
...
}
elseif (isset($_POST['a']))
{
include 'Page3.php';
}
elseif (isset($_POST['OptionPlus']))
{
include 'Page4.php';
}
...
Cela à alors pour effet de me charger la Page4
Page4:
<?php

mysql_connect("localhost", "root", "");
mysql_select_db("test");

$var1 = $_POST['a']; <--- ERREUR

?>
<table width="100%" border="0">
<caption>Informations</caption>
<tr>
...
<th>Nom:</th>
<td><input type="text" name="nom" value="<?php echo $var1;?>"/></td>
...
</tr>
...
C'est à ce moment là que j'ai ma phrase d'erreur: "Notice: Undefined index: Employe in ...\Page4php on line 31"
Donc si qqu'un pouvait m'expliquer d'ou vient mon erreur je vous en remercie grandement ... Merci bcp

P.S.: en espérant que les bouts de code sont utile... je pense avoir viré ceux inutile qui ne joue pas avec le code php et les variables utilisés