Erreur Undefined index

Bonjour,
J'ai un problème avec un petit script PHP, qui me donne l'erreur suivante :
Notice: Undefined index: titre in \insertion_accueil.php on line 27

Notice: Undefined index: img in \insertion_accueil.php on line 28

Notice: Undefined index: message in \insertion_accueil.php on line 29


titre, img et message sont des variables... Comme vous l'auriez sûrement remarqué.
J'ai cherché plusieurs solutions sur Internet, mais aucune ne me satisfais, étant donné que je n'ai que des connaissances plus que limitées sur la programmation PHP, comme celle indiquée ici --> Notice: Undefined index: .

Voici le script PHP :
<?php
	require("connection.inc");
				
	// Déclaration des variables

		$titre=$_POST['titre'];
		$img=$_POST['img'];
		$message=$_POST['message'];

		$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");

		$req="UPDATE new SET 	id_new='', 
							titre='$titre',
							message='$message',
							img='$img'";
										
		$res=mysql_query($req)or die(mysql_error());
?>

Donc, en claire, mon script a déjà fonctionné correctement, et je ne sais pas pourquoi, il ne veux plus fonctionner. Le but est d'envoyer un message sur ma page d'accueil, en tant qu'information importante que je récupère dans ma base de données, je récupère les valeurs avec la méthode POST dans une autre page afin de les traiter :
<form enctype="multipart/form-data" action="insertion_accueil.php" method="post">

<table id='cadre_bis'>
	<tr>
		<td class='interieur'>Titre du message</td>
		<td class='interieur'><input type="text" name="titre" value=""></td>
	</tr>

	<tr>
		<td class='interieur'>Image à insérer dans le message (URL)</td>
		<td class='interieur'><input type="hidden" name="image" value="1"><input name="img" type="text"></td>
	</tr>
</table>

<table id='cadre_new'>

<tr>
    <td align="center" colspan="2">
    <textarea name="message" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea" cols="80" rows="10"></textarea>
    </td>
</tr>

<tr>
    <td align="center" colspan="2">
    <input class="button" type="button" value="Visualiser" onclick="view('textarea','viewDiv');document.getElementById('viewDiv').style.display = '';" />
    <input class="button" type="button" value="Masquer" onclick="document.getElementById('viewDiv').style.display = 'none';" /> 
    <input class="button" type="submit" value="Envoyer" /> 
    </td>
</tr>

<tr>
	<td><div id="viewDiv"></div></td>
</tr>

</form>


J'ai enlevé de bon morceaux de la page, alors s'il y a une erreur de syntaxe, balise et autre, c'est de là que ça vient.

Merci d'avance pour vos réponses !
--
Si tu me cherche, je suis avec ta femme... Et je ne joue pas aux échecs !

4 réponses

  1. apparement ce sont les variables POST qui n'existent pas (enfin il me semble, vu que tas tronqué ton code, on peut pas trouver les lignes ^^)
    normalement quand on récupère des variables POST, on vérifie d'abord qu'elles existent bien avec un truc comme un if(isset($_POST['titre']) && isset($_POST['message']) && isset($_POST['img']))
    dans ton cas
    1. Je regarde ça tt de suite et je te dis si ça fonctionne.

      -----------------------------------------

      EDITION : Non, ça ne fonctionne pas, il me met de nouvelles erreurs.
      Notice: Undefined index: img in C:\Program Files\Wamp\www\Nautilus\insertion_accueil.php on line 26
      
      Notice: Undefined index: message in C:\Program Files\Wamp\www\Nautilus\insertion_accueil.php on line 27
      
      Notice: Undefined variable: titre in C:\Program Files\Wamp\www\Nautilus\insertion_accueil.php on line 36


      Et voici mon code PHP :
      <?php
      	require("connection.inc");
      
      if(isset($_POST['titre']) && isset($_POST['img']) && isset($_POST['message'])) 
      			
      	$titre=$_POST['titre'];
      	$img=$_POST['img'];
      	$message=$_POST['message'];
      			
      	$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");
      
      	$req="UPDATE new SET 	id_new='', 
      							titre='$titre',
      							message='$message',
      							img='$img'";
      										
      	$res=mysql_query($req)or die(mysql_error());
      ?>


      Les balises existent bien, voici ma page d'information (tronquée, mais l'essentiel y est) :
      <form enctype="multipart/form-data" action="insertion_accueil.php" method="post">
      
      <table id='cadre_bis'>
      	<tr>
      		<td class='interieur'>Titre du message</td>
      		<td class='interieur'><input type="text" name="titre" value=""></td>
      	</tr>
      
      	<tr>
      		<td class='interieur'>Image à insérer dans le message</td>
      		<td class='interieur'><input type="hidden" name="image" value="1"><input name="img" type="text"></td>
      	</tr>
      </table>
      
      <table id='cadre_new'>
      	<tr align='center'>
      		<td>
      	
      	<br>
      	<br>
          <img src="images/icones/bold.png" alt="Gras" onclick="insertTag('', '', 'textarea')" />
          <img src="images/icones/italic.png" alt="Italique" onclick="insertTag('', '', 'textarea')" />
          <img src="images/icones/underline.png" alt="Souligne" onclick="insertTag('', '', 'textarea')" />
          <img src="images/icones/barre.png" alt="Barre" onclick="insertTag('<barre>', '</barre>', 'textarea')" />
          <img src="images/icones/left.png" alt="Gauche" onclick="insertTag('<gauche>', '</gauche>', 'textarea')" />
          <img src="images/icones/center.png" alt="Centrer" onclick="insertTag('<centrer>', '</centrer>', 'textarea')" />
          <img src="images/icones/right.png" alt="Droite" onclick="insertTag('<droite>', '</droite>', 'textarea')" />
          <img src="images/icones/link.png" alt="Lien" onclick="insertTag('', '', 'textarea', 'lien')" />
          <img src="images/icones/image.png" alt="Image" onclick="insertTag('<image>', '</image>', 'textarea')" />
          <img src="images/icones/citation.png" alt="Citation" onclick="insertTag('', '', 'textarea', 'citation')" />
      						<br>
          <img src="images/icones/fontsize.png" usemap="#Map2" href="#" border="0" /><br />
      	<img src="images/icones/color.png" usemap="#Map3" alt="" border="0" />    </td>
      </tr>
      <tr>
          <td align="center" colspan="2">
      		<img src="images/icones/previewon.png" alt="Preview On" onclick="document.getElementById('previewDiv').style.display = '';" /> 
      		<img src="images/icones/previewoff.png" alt="Preview Off" onclick="document.getElementById('previewDiv').style.display = 'none';" />
      		<input name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" checked="checked" disabled="disabled" />
      		<label for="previsualisation">Pr&eacute;visualisation automatique</label>
      		<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
      	</td>
      </tr>
      <!-- -------------------------------------------[Zone de texte]------------------------------------------- -->
      <tr>
          <td align="center" colspan="2">
          <textarea name="message" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea" cols="80" rows="10"></textarea>
          </td>
      </tr>
      <!-- ---------------------------[Insertion de la prévisualisation directe du message]---------------------------
      <tr>
          <td colspan="2">
          <div id="previewDiv"></div>
          </td>
      </tr>
      -->
      <tr>
          <td align="center" colspan="2">
          <input class="button" type="button" value="Visualiser" onclick="view('textarea','viewDiv');document.getElementById('viewDiv').style.display = '';" />
          <input class="button" type="button" value="Masquer" onclick="document.getElementById('viewDiv').style.display = 'none';" /> 
          <input class="button" type="submit" value="Envoyer" /> 
          </td>
      </tr>
      
      <tr>
      	<td><div id="viewDiv"></div></td>
      </tr>
      
      </form>
      1. Bonsoir

        Il te manque des { } autour de la partie soumise au if
        if(isset($_POST['titre']) && isset($_POST['img']) && isset($_POST['message'])) 
        {			
        	$titre=$_POST['titre'];...

        et } juste avant le ?>
        sans cela, le if ne s'applique qu'à la première instruction qui suit
    2. C'est celle qui contient le code PHP :
      <?php
      	require("connection.inc");
      
      if(isset($_POST['titre']) && isset($_POST['img']) && isset($_POST['message'])) 
      			
      	$titre=$_POST['titre'];
      	$img=$_POST['img'];
      	$message=$_POST['message'];
      			
      	$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");
      
      	$req="UPDATE new SET 	id_new='', 
      							titre='$titre',
      							message='$message',
      							img='$img'";
      										
      	$res=mysql_query($req)or die(mysql_error());
      ?>