Undefind variable dans PHP
galaxico8
Messages postés
108
Statut
Membre
-
Jeylo Messages postés 196 Statut Membre -
Jeylo Messages postés 196 Statut Membre -
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();
?>
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:
- Undefind variable dans PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Vba range avec variable ✓ - Forum VB / VBA
- Range avec une Variable ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
7 réponses
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>.
Je suppose que dans la page formulaire précédente, tu n'as pas mis tes 'inputs' dans les balises
<form method post> ... </form>.
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");
$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
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...???
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...???
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").
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").
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
ç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...
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 ???
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 ???
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.
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.