Rechercher : dans
Par :

Erreur Undefined index

Dernière réponse le 21 mai 2009 à 00:02:37 Yurexa, le 20 mai 2009 à 16:55:55 
 Signaler ce message aux modérateurs

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 !

Meilleures réponses pour « Erreur Undefined index » dans :
[PHP] Notice: Undefined index: Voir Si vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...

1

jeangilles, le 20 mai 2009 à 17:08:59

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

Répondre à jeangilles

2

Yurexa, le 20 mai 2009 à 17:50:23

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>
Si tu me cherche, je suis avec ta femme... Et je ne joue pas aux échecs !

Répondre à Yurexa

5

 le père, le 21 mai 2009 à 00:02:37

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

Répondre à le père

3

jeangilles, le 20 mai 2009 à 21:12:14

Mais ta page insertion_accueil.php c'est laquelle ?

Répondre à jeangilles

4

Yurexa, le 20 mai 2009 à 23:28:51

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());
?>
Si tu me cherche, je suis avec ta femme... Et je ne joue pas aux échecs !

Répondre à Yurexa