Undefined variable: _request in ???

Résolu/Fermé
Gael87 - 28 avril 2009 à 21:59
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 29 avril 2009 à 16:21
Bonjour,
J'ai deux soucis que je n'arrive pas à résoudre, et je pense que c'est principalement dû à mon manque de connaissance dans le domaine.

Tout d'abord, j'ai un message :
Notice: Undefined variable: _request in C:\Program Files\WampServer\www\Nautilus\Connection.inc on line 2


Voici le contexte :
<html>
<head>
<title>Plongées offertes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body ><div align="center">
<?php
require('enTete.inc');
require('Connection.inc');
?>

[...]
$query="SELECT * FROM TypeSite ORDER BY NumType" ;
$result=mysql_query($query)
	or die("Execution de la requête impossible");

// Créer le formulaire de sélection
echo "<form action='PhotoSites.php' method='post'> \n";
echo "<table cellpadding='5' border='1'>";
while ($ligne=mysql_fetch_array($result))
{ 	extract($ligne);
	echo "<tr><td valign='top' width='15%'>\n";
	echo "<input type='radio' name='interet'
				value='$NumType'\n";
	
	echo "<b>$NumType</b>
		</td>
		<td>$LibelleType</td>
		</td>
		<td>$ImageTypeSite</td>";
	}
	echo "</table>";
	echo "<p><input type='submit' value='Faites votre choix'>
		</form>\n";
?>
</body>
</html>

Comme vous le voyez, il n'y a rien à la ligne 2 qui devrait poser problème...

Maintenant, je n'arrive pas à récupérer la valeur sélectionnée dans ma page de "réponse" :
<?php
require('enTete.inc');
require('Connection.inc');
// Sélection des pièces d'un type donné
$query="SELECT * FROM Site where NumType='$interet'";
$result=mysql_query($query)
	or die ("Execution de la requête impossible");
	
// Afficher les résultats dans un tableau
echo "<table background='Photos/lion_mod.jpg' cellspacing='1' border='20' cellpadding='5' width='70%'>";
echo "<tr border width='90%'>\n";
echo "<tr><td>Numéro site</td><td>Libellé Site</td><td>Profondeur en mètres</td><td>Photo</td></tr>";

while ($ligne=mysql_fetch_array($result,MYSQL_ASSOC))
 {
	 // Afficher une ligne pour chaque pièce
 
	echo "<td>{$ligne['NumSite']} </td>\n";
	echo "<td><font size='+1'><b>{$ligne['LibelleSite']}</b></font></td>\n";
	echo "<td>{$ligne['ProfondeurSite']}</td>\n";
	echo "<td>{$ligne['PhotoSite']}</td></tr>\n";
}
echo"</table>\n";
echo "<div align='center'>
	<a href='les_plongees.php'><b> Retour au menu precedent</b></a></div>";
?>


À quoi cela peut-il être dû ?

Et pour être sur qu'il ne vous manque aucun détail, voici le contenu de mon fichier connection.inc :
<?php
$interet=$_request["interet"];
$connection=mysql_connect("localhost","root","")
	or die ("Connexion au serveur impossible");
$db=mysql_select_db("DivingCenter",$connection)
	or die ("Sélection de la base de données impossible");
?>

Je signale que je suis sous Wamp (vous l'auriez surement remarqué) et il n'y a donc pas besoin de mot de passe pour se connecter à la base de données.

Je vous souhaite bon courage, moi, personnellement, j'y ai passé quelques heures, et je commence à cracker.

26 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
28 avril 2009 à 22:26
il faut que tu mette le bon chemin dans ton require si ton fichier est pas dans le meme repertoire que to script logique qu'il le trouve pas ;)
1
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 22:02
les variables super globale sont toujours en majuscule
$interet=$_REQUEST["interet"];
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
28 avril 2009 à 22:06
bonjour , betement est ce que ton serveur est demarré ?
Les fichiers "inc" sont des fichiers "include" (inclusion).
Ces fichiers sont liés à PHP qui les utilise.
PHP te permet d'inclure avec la fonction "include()" des pages dans une autre page.
Ainsi si tu as un page : "menu.inc ou menu.inc.php" (ces 2 fichiers peuvent s'utiliser exactement de la même façon, le nom choisi n'est qu'une question d'habitude et de convention de nomage, en pratique tu pourrais même inclure un fichier "menu.txt"), dans ta page index tu vas inclure cette page menu.
Ca te permet de diviser une même page en plusieurs page et ainsi, par exemple tu as un fichier menu.inc.php tu l'inclus dans toutes les pages, si tu veux changer ton menu, tu vas juste dans la page menu.inc.php, tu la modifies, et ce changement se répercutera partout.

Cela ne fonctionnait pas en local chez toi car PHP a besoin d'un serveur pour fonctionner.
0
@ lewis34,
Merci de m'avoir répondu aussi vite :) Cependant, mon serveur était bien démarré (et je viens de vérifier).
Je te remercie aussi pour ton explication sur les includes, même si je connaissais leur fonctionnement :p Cela dit, ça servira toujours à d'autres !

Donc tu ne vois pas d'autres raisons de ce message ?
0

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

Posez votre question
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
28 avril 2009 à 22:15
essaye de renomer ton fichier connection.inc en connection.php et modifier ta ligne require('enTete.inc'); et connexon.inc
par
require_once('enTete.php');
require_once('connexion.php');
quitte a placer un echo dedans pour voir si tu y passe
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 22:20
Bonsoir, je suis Gael87, je me suis connecté pour que ce soit plus pratique (compte que j'avais oublié ^^).
J'ai effectué ta manipulation, mais rien n'y fait ! J'ai carrément la page qui disparait avec un nouveau message :
Warning: require_once(Connexion.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\WampServer\www\Nautilus\les_plongees.php on line 11

Fatal error: require_once() [function.require]: Failed opening required 'Connexion.php' (include_path='.;C:\php5\pear') in C:\Program Files\WampServer\www\Nautilus\les_plongees.php on line 11


Tu pense que ça pourrait se situer au niveau du fichier Connection.inc ?
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 22:28
Je ne comprends pas... Il est dans le même dossier que le reste.
Il ne faut pas perdre de vu que je suis un débutant :)
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 22:29
heu... tu as vu mon post 1 ?
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
28 avril 2009 à 22:32
a priori non il est pas dans ton repertoire Nautilus\
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 22:36
@ Mype : Effectivement, je n'avais pas fait attention à ton premier message, et je récupère mes variables !

@ Lewis34 : Si, je t'assure que tous mes fichiers sont dans le même dossier, sans aucun sous dossier !
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 22:39
ben l'erreur était clair il te dit qu'a la ligne 2 de ton fichier connection.inc la variable _request n'est pas definis c'est parce que tu as mis $_request["interet"] au lieu de $_REQUEST["interet"]
fais cette modification et vois si ça marche...
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 22:43
@ Mype : malgré la modification, j'ai toujours le message suivant :
Notice: Undefined index: interet in C:\Program Files\WampServer\www\Nautilus\Connexion.inc on line 2
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 22:52
avant de l'affecter fais un test pour voir si elle existe
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 23:08
Ça ne change strictement rien au résultat...
Pour être sûr, il faut bien le mettre dans le fichier Connection.inc ? Je suis assez débutant ^^
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 23:12
tu ne touches a rien dans ton code sauf dans le fichier Connection.inc tu remplaces cette ligne
$interet=$_request["interet"];
par celle la
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];
c'est bien ce que tu as fait ? si c'est ça quel est le message d'erreur ?
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 23:14
C'est donc bien ce que j'avais fait.
Voici le message d'erreur :
Notice: Undefined index: interet in C:\Program Files\WampServer\www\Nautilus\Connexion.inc on line 2


En passant : merci beaucoup de t'intéresser à mon problème !
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 23:22
dans ce cas puisque tu n'utilises jamais cette variable dans ta premiere page tu peux l'enlever de ton Connection.inc et la mettre directement dans ta deuxieme page
donc essaye enlevant
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];
de Connection.inc et en le mettant dans ta deuxieme page juste avant
// Sélection des pièces d'un type donné
$query="SELECT * FROM Site where NumType='$interet'";
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
28 avril 2009 à 23:30
Si je fais ça, rien ne change, sauf que j'ai une autre page qui réagi (que je vais nommé p3). Avant de modifier la ligne
$interet=$_request["interet"];
dans Connection.inc, la page affichait
Notice: Undefined index: interet in C:\Program Files\WampServer\www\Nautilus\Connection.inc on line 2
Donc la même erreur que la page 1.

Après avoir modifié la ligne dans Connection.inc, l'erreur disparaissait de la p3, mais continuait d'apparaître en p1.

Voici ma p3 :
<?php
require('enTete.inc');
require('Connection.inc');
?>
<p align="left"><font color="#990099" size="2"><strong><font face="Arial, Helvetica, sans-serif">  Le centre offre &agrave; ses clients un large panel de formation gr&acirc;ce 
&agrave; ses accr&eacute;ditations &agrave; plusieurs syst&egrave;mes internationalement reconnus</font></strong></p> 

<?php
	
// Sélectionner tous les types de pièces présents dans la table Type
$query="SELECT distinct systeme, logoniveau FROM niveau ORDER BY Numniveau" ;
$result=mysql_query($query)
	or die("Execution de la requête impossible");

// Créer le formulaire de sélection
echo "<form action='Formations_proposes.php' method='post'> \n";
echo "<table  background='Photos/tab_boat_mod.jpg' cellpadding='5' border='1'>";
while ($ligne=mysql_fetch_array($result))
{ 	extract($ligne);
	echo "<tr><td valign='top' width='15%'>\n";
	echo "<input type='radio' name='interet'
				value='$systeme'\n";
	
	echo "<td>$systeme</td>
		</td>
		<td>$logoniveau</td>";
	}
	echo "</table>";
	echo "<p><input type='submit' value='Faites votre choix'>
		</form>\n";

?>


Elle est construit avec la même syntaxe que les autres, et maintenant elle fonctionne.
Donc, j'ai laissé
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];

dans la page Connection.inc.

C'est à n'y rien comprendre ! Pourquoi une page avec la même syntaxe ne fonctionnerait pas ???
Je te remercie donc encore une fois pour tes efforts !

Ps : peux-tu m'expliquer la différence entre $interet=$_REQUEST["interet"]; et if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"]; ?
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 23:55
non mais je t'avais dit de ne laisser dans ton Connection.inc que les lignes de connection a ta base de donnee soit
$connection=mysql_connect("localhost","root","")
	or die ("Connexion au serveur impossible");
$db=mysql_select_db("DivingCenter",$connection)
	or die ("Sélection de la base de données impossible");
en enlevant tout le reste
en fait je t'explique l'erreur ça veut dire que l'index interet n'existe pas et c'est effectivement le cas dans tes p1 et p3 puisque c'est là que tu le definit et comme tu inclus Connection.inc dans ces pages alors tu a l'erreur, c'est pourquoi je t'ai dit de mettre
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];
qui permet de verifier si la variable $_REQUEST["interet"] existe (donc si l'index interet a deja été defini) avant de l'affecter a $interet
le probleme est resolu ?
0
Yurexa Messages postés 13 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2009
29 avril 2009 à 00:10
Bon, ça ne fonctionne toujours pas... Peu importe la méthode utilisée :
Mon fichier Connection.inc me donne le même résultat qu'il soit comme ça :
<?php
$connection=mysql_connect("localhost","root","")
	or die ("Connexion au serveur impossible");
$db=mysql_select_db("DivingCenter",$connection)
	or die ("Sélection de la base de données impossible");
?>

ou comme ça :
<?php
if(isset($_REQUEST["interet"])) $interet=$_REQUEST["interet"];
$connection=mysql_connect("localhost","root","")
	or die ("Connexion au serveur impossible");
$db=mysql_select_db("DivingCenter",$connection)
	or die ("Sélection de la base de données impossible");
?>

La P1 merde toujours... Il y a ce message qui ne veut pas disparaître.

Je dois vraiment pas être doué car après toutes tes explications, ça ne marche toujours pas.

La seule différence importante entre la P1 et la P3 se situe ici pour la P1 :
$query="SELECT * FROM TypeSite ORDER BY NumType" ;
$result=mysql_query($query)
	or die("Execution de la requête impossible");


Se pourrait-il que ça bloque à ce niveau là ? Ma requête pourrait ne pas être bonne ?
Est-ce nécessairement le fichier Connection.inc qui fait afficher le message d'erreur ?
0