Notice: Undefined index problème

WRInaute impliqué
Bonjour, j'ai un message d'erreur lorsque $_POST est vide. Voici le message :

Notice: Undefined index: checkbox_delete in...

J'aimerais éviter le fameux @. Avez-vous une solution ? Merci à tous

Code:
	if (isset($_POST['delete_x'])) {
		
		if($_POST["checkbox_delete"] == null){
			
		echo'...';
			
		}else{
			
			echo'...';
		}
}
 
Nouveau WRInaute
($_POST["checkbox_delete"] == null) , remplaçable par (empty($_POST['checkbox_delete'])) (voir is_null())
Il faudrait nous donner plus de précisions avec la partie html pour t'aider , si tu n'as pas déjà solutionner ton problème.
 
WRInaute passionné
"if($_POST["checkbox_delete"] == null)" c'est là qu'est le problème, avec les versions récentes de php, on ne peut pas utiliser une variable non declarée précédemment.
peut etre remplacer par ça: if(isset($_POST["checkbox_delete"]) && $_POST["checkbox_delete"] == null)
ou alors peut etre rajouter avant cette ligne:
if(!isset($_POST["checkbox_delete"]) $_POST["checkbox_delete"] == null;
 
Nouveau WRInaute
yannouk a dit:
on ne peut pas utiliser une variable non declarée précédemment.
peut etre remplacer par ça: if(isset(
Empty teste à la fois si la variable n'existe pas, est vide ou nulle.

yannouk a dit:
if(isset($_POST["checkbox_delete"]) && $_POST["checkbox_delete"] == null)
Ben non, IsSet détermine si une variable est définie et est différente de null, hors dans ta condition tu testes
si elle est egale à null en meme temps que IsSet, ca colle pas.

Il y a trop d'imprécisions sur cette demande, il faudrait au moins savoir s'il utilise
des checkbox en tableau (checkbox_delete[]) ou bien seules.

Le code optimum est donc:
Code:
<?php

if(isset($_POST['delete_x']))
	if(isset($_POST['checkbox_delete']))
		echo (empty($_POST['checkbox_delete'])) 
			? 'checkbox cochée est nulle':'checkbox cochée non nulle';
	else
		echo 'checkbox non cochée';

?>

<form method="post">
<input type="hidden" name="delete_x">
 <input type="checkbox" name="checkbox_delete" value="0">null<br>
 <input type="checkbox" name="checkbox_delete" value="5">non null<br>
<input type="Submit" value="OK"> 
</form>
 
Discussions similaires
Haut