Undefind variable dans PHP

Fermé
galaxico8 Messages postés 98 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 30 juin 2011 - 19 déc. 2008 à 09:39
Jeylo Messages postés 185 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 8 mai 2012 - 19 déc. 2008 à 15:52
Bonjour,
j'ai un formulaire dans une page.php que j'utilise pour un moteur de recherche, mais l'hors de lancement de la page ça me donne :
"Notice: Undefined index: ville in D:\Projet\EasyPHP 2.0b1\www\Agence Essaouira\offres1.php on line 288"
et ça pour tous les variable que j'ai déclaré dans le script php, mais dès que je clique sur rechercher ça marche et les messages disparaissent.
voici mon script php :
<?php
include("testconnexion.php");
include("connexion.php");

$ville = $_POST['ville'];
$transaction = $_POST['transaction'];
$type = $_POST['type'];
$prixmin = $_POST['prixmin'];
$prixmax = $_POST['prixmax'];
$piecemin = $_POST['piecemin'];
$piecemax = $_POST['piecemax'];
$chambremin = $_POST['chambremin'];
$chambremax = $_POST['chambremax'];

$query = "SELECT biens.*,images.url,details.detail
FROM biens,images,details
WHERE (biens.ville LIKE '".$ville."' AND biens.typetransaction LIKE '".$transaction."' AND biens.type LIKE '".$type."'
AND biens.prix between '".$prixmin."' AND '".$prixmin."'
AND biens.piece between '".$piecemin."' AND '".$piecemax."'
AND biens.chambre between '".$chambremin."' AND '".$chambremax."')
AND (biens.id = images.id AND images.id = details.id)";

$result = mysql_query($query);

// on compte le nombre de livre contenu dans la base de données
$nb_biens = mysql_num_rows($result);
if ($nb_biens == 0)
{
echo('<script> alert("y a aucun bien correspendant à vos critères"); </script>');
}
else {
while($row = mysql_fetch_row($result))
{
$ref = $row[1];
$typetransaction = $row[2];
$type = $row[3];
$piece = $row[4];
$chambre = $row[5];
$surface = $row[6];
$salledeau = $row[7];
$toilette = $row[8];
$cuisine = $row[9];
$chauffage = $row[10];
$garage = $row[11];
$interphone = $row[12];
$parking = $row[13];
$soussol = $row[14];
$prix = $row[15];
$adresse = $row[16];
$ville = $row[17];
$annonce = $row[18];
$photo = $row[19];
$lien = $row[20];
echo '
<hr width="550" size="3">
<table width="601" border="0">

<tr>
<th width="248" rowspan="6" align="center" valign="middle" scope="col"><a href="'.$lien.'"><img src="'.$photo.'" width="250" height="239"></a></th>
<td width="343" height="21" valign="top"><div style="font-family:Arial, Helvetica, sans-serif" style="font-size:xx-small">'.$typetransaction.' '.$type.'</div></tr>
<tr>
<td height="21" valign="top"><div style="font-family:Arial, Helvetica, sans-serif" style="font-size:xx-small">Situé(e) à : '.$adresse.'</div></tr>
<tr>
<td height="9"></tr>
<tr>
<td height="120" valign="top"><div style="font-family:Arial, Helvetica, sans-serif" style="font-size:xx-small">'.$annonce.'</div></tr>
<tr>
<th height="21" align="left" valign="top"><div style="font-family:Arial, Helvetica, sans-serif" style="font-size:xx-small">Réf : '.$ref.'</div></th>
</tr>
<tr>
<th height="21" align="left" valign="top"><div style="font-family:Arial, Helvetica, sans-serif" style="font-size:xx-small">Prix : '.$prix.'</div></th>
</tr>
</table>
';
}}
// Deconnexion de la base de donnees
mysql_close();

?>
A voir également:

7 réponses

Jeylo Messages postés 185 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 8 mai 2012 25
19 déc. 2008 à 10:14
Bonjour,

Je suppose que dans la page formulaire précédente, tu n'as pas mis tes 'inputs' dans les balises
<form method post> ... </form>.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 déc. 2008 à 10:47
Non c'est que à partir de php5 tu ne peux pas faire comme ça:

<?php
include("testconnexion.php");
include("connexion.php");

$ville = $_POST['ville'];
$transaction = $_POST['transaction'];
$type = $_POST['type'];
$prixmin = $_POST['prixmin'];
$prixmax = $_POST['prixmax'];
$piecemin = $_POST['piecemin'];
$piecemax = $_POST['piecemax'];
$chambremin = $_POST['chambremin'];
$chambremax = $_POST['chambremax'];


il faut tester que le formulaire soit posté

<?php
include("testconnexion.php");
include("connexion.php");

isset($_POST['ville']) ? $ville =$_POST['ville'] : $ville ="" ; // si posté   $ville = valeur postée sinon vide
isset($_POST['transaction']) ? $transaction = $_POST['transaction'] : $transaction ="" ;
etc... idem pour toutes
0
galaxico8 Messages postés 98 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 30 juin 2011 2
19 déc. 2008 à 12:16
pour le formulaire les inputs sont bien misent, mais sur un autre formulaire/php où j'ai le même souci j'utilise :
if(! isset($_POST['ville']) ou bien j'utilise if(empty($_POST['ville']) ), ça marche le script fait bien le contrôle si les champs ne sont pas remplis il me donne un message que j'ai programé, mais l'hors de lancement de la page ça me met les Notice: Undefined index: ville in D:\Projet\EasyPHP 2.0b1\www\Agence Essaouira\offres1.php on line 285
et dès que je clique sur le bouton les Notice disparaissent...???
0
chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
19 déc. 2008 à 12:48
Tout a fait normal , fait un If pour dire " si le formulaire est envoyé on affiche la suite".
La envoyer ou pas , il prend en compte tout le php ,enfin ça dépend , le formulaire est bien sur la même page ?
Test si il est envoyé | si oui -> tu recup tes variables et tu affiche ton tableau.
|si non -> tu ne fais rien(ou affiche un truc du genre "rentrez les informations").
0

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

Posez votre question
Jeylo Messages postés 185 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 8 mai 2012 25
19 déc. 2008 à 12:50
Dans le cas que tu nous présentes, tu as mis les $_POST en début de page, sans savoir si les champs ont été remplis.
Il faudrait que tu testes l'existence de chaque index avec if(empty($_POST)) avant de l'affecter à une variable.

Par contre, s'il y a erreur sur un index dont le champs est rempli, c'est que tu as un problème de balise <form> dans ton formulaire.
0
galaxico8 Messages postés 98 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 30 juin 2011 2
19 déc. 2008 à 15:21
ça marche il fallait juste un petit peu de logique...j'ai effectué le test avec empty et après j'ai affecté les valeurs saisi aux variables et ça a marché...merci bcp Jeylo et chupa23 vous m'avez sauvé la vie si vous voulez que je mette le script dites le moi...
0
Jeylo Messages postés 185 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 8 mai 2012 25
19 déc. 2008 à 15:36
Cool !

Je reste à l'écoute if you need.

Bon courage.
0
galaxico8 Messages postés 98 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 30 juin 2011 2
19 déc. 2008 à 15:44
merci bcp c'est gentil, en fet j'ai +eurs question mais je veux pas vous embêter trop, je veux pouvoir utiliser des cases à cocher dans mon moteur de recherche ???
la question que je me pose c'est comment le script php va savoir que la case et cochée ou non et comment va utiliser sa valeur ???
0
Jeylo Messages postés 185 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 8 mai 2012 25
19 déc. 2008 à 15:52
D'acc, tu es en phase d'apprentissage..

Va voir là, https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql

Le site est bien fait, il te donneras un coup de pouce pour démarrer.
0