Undefined variable ?

pitchoune65
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 17:04

bonjour,

j'ai créé un site en php sur un réseau, mais il est inutilisable un autre poste, j'ai des erreurs "Undefined variable" .

Quelqu'un aurrait une solution ? svp? :)

Mammouth du PHP | 1353 Messages

17 mai 2006, 17:07

Il marche bien en local ?
De quels variables parlent il ?
As tu le code ou ces variables apparaissent dans la page ou tu as ce message ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 17:07

Attends on sort notre boule de cristale !!! lol

Non sérieux, comment veux-tu avoir de l'aide avec si peu d'infos ?

Du code ! Surtout les lignes où les erreurs sont indiquées !

pitchoune65
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 17:11

en local, pas de soucie, tout fonctionne !

pour les précisions, je pense que c'est une variable de session qui déconne :

$_SESSION['numdossier'] = $numdossier = $_POST['numdossier'];

si il ne la trouve pas, le reste non plus!

Merci ;)

Mammouth du PHP | 1353 Messages

17 mai 2006, 17:13

Ca peut etre aussi la variable $_POST['numdossier']... Encore une fois avec le peu de code fourni difficile de voir l erreur...

Que se passe t il si tu fais :
if(isset($_POST['numdossier']))
{
//tout ton code ici
}
else echo "c'est du POST que vient le problème";
Ceci dit je maintiens qu avec un peu plus de ton code et par exemple la page d'ou tu viens pour expliquer le POST on aurait plus de facilités à t aider...

pitchoune65
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 17:22

page 1 :

echo "<form action = 'fiche_identite.php' method = 'post'>";
echo "<br><br>Numéro du dossier désiré: <input type = 'text' name = 'numdossier' size ='3' >";
echo "<br><br><br><INPUT TYPE = 'submit' value = 'Voir le dossier'>";


page 2:

$_SESSION['numdossier'] = $numdossier = $_POST['numdossier'];


désolée, mais je peux pas donner tout mon code...712 lignes ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mai 2006, 17:35

Quel est le message d'erreur exactement ? n'y a-t-il pas une ligne d'indiqué ? qu'as tu un peu avant et un peu après cette ligne ?

Que donnent des :
echo $_POST['numdossier']; 
echo $numdossier ;
echo $_SESSION['numdossier'];
// ou
print_r($_POST);
print_r($_SESSION);

gake
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 18:57

Salut Pitchoune!!

Comme je vois que t'es en galère,moi j'utilise beaucoup ce script pour vérifier tous les paramètres envoyés:
http://php.developpez.com/faq/?page=div ... gsuperglob
tu copies le script dans un fichier *php,et tu l'include dans la page concernée...

Je pense que ça pourra t'aider

@+ bon courage

Plus que deux semaines ... :D en plus du rapport

pitchoune65
Invité n'ayant pas de compte PHPfrance

18 mai 2006, 08:47

Merci de votre aide mais en fait j'ai un aiutre truc qui déconne :

(Je viens de la page recherche_ndoss.php)
if ($_SERVER['HTTP_REFERER'] == 'http://127.0.0.1/Logement/recherche_ndoss.php')
{  
$_SESSION['numdossier'] = $numdossier = $_POST['numdossier'];
    //code
}
else
{ 
$numdossier = $_SESSION['numdossier'];
   //code
}

et il me met une erreur "Notice: Undefined variable: numdossier in c:\program.....on line 354" donc dans le 'else', alors qu'il n'ai pas sensé y aller.

JE comprend pas pourquoi ! :cry:
alors si quelqu'un sais...? :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:01

Tu déclares $numdossier qui n'est pas connu dans le else. Normal qu'il te donne cette erreur.

Je ne saisis pas bien ton code, la différence entre les deux. Pour le if, il vaut mieux faire :
if ($_SERVER['HTTP_REFERER'] == 'http://127.0.0.1/Logement/recherche_ndoss.php') 
{   
	$numdossier=$_POST['numdossier'];
	$_SESSION['numdossier'] = $numdossier;
    //code 
}
QUe veux tu différencier entre le if et le else ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mai 2006, 10:16

Avant ton if, fais un
echo $_SERVER['HTTP_REFERER'];

ca te permettra de voir la valeur qu'il contient et de savoir pourquoi il rentre dans le else et pas dans le if (pour peu que le domaine soit localhost et pas 127.0.0.1, il n'ira jamais)

Sinon, comme le fait remarquer charabia, si le seule but de ton test est de savoir s'il y a une nouvelle valeur à assigner à num_dossier, il suffit peut simplement de quelque chose du genre :
$numdossier = 0; // on définit éventuellement la variable avant le if avec une valeur par défaut
if(isSet($_POST['numdossier'])) { // une nouvelle valeur est passée
  $numdossier=$_POST['numdossier']; // on l'utilise
  $_SESSION['numdossier'] = $numdossier; // on la met en session
}
else { // pas de nouvelle valeur
  $numdossier = $_SESSION['numdossier']; // on utilise celle en session
}
le isSet permet de vérifier que l'index numdossier est bien défini dans le tableau $_POST... ca évite les erreurs du style undefined index ;)

pitchoune65
Invité n'ayant pas de compte PHPfrance

18 mai 2006, 14:51

Merci pour votre aide, mais ca y est, j'ai trouvé la solution !!!! :D

bonne journée :)