[RESOLU] Aide pour un petit formulaire en PHP

Avatar du membre
Eléphanteau du PHP | 25 Messages

05 janv. 2015, 05:08

Bonjour/bonsoir ! J'ai une petite question à vous poser. J'aimerai créer une page en php me permettant d'afficher un texte si $_POST[titre] et $_POST[image] n'est pas vide et afficher le formulaire s'il l'est. J'ai donc fais un mini code pour tester mais quand je clique sur envoyer sans remplir de champs, le site m'affiche le texte que je ne devrai pas voir ...

Voici mon code :
	<body>

		<?php if (!isset($_POST["titre"]) AND (!isset($_POST["image"]))) { ?>

<form action="generateur.php" method="POST">
		<input type="text" name="titre" id="titre" />
		<input type="text" name="image" id="image" />
		<input type="submit" value="Valider" />
</form>


		<?php } 

		else {

			echo $_POST["titre"] . $_POST["image"];
		}


		?>



	</body>
Optionnellement : Est-il possible de mettre $_POST dans une variable afin d'éviter de taper chaque $_POST['....'] ? Mon but est de créer un générateur pour la création d'article sur un site ... mais bon, je bloque déjà au début :/

Mammouth du PHP | 1966 Messages

05 janv. 2015, 10:48

utilise empty() plutot que !isset()
Si tu utilise AND, tu autorise un des 2 champs vides Est-ce ce que tu veux ?

tu peux assigner la valeur de tes variables $_POST aux variables que tu désire, mais il vaut mieux faire attention.
Afin d'éviter les E_NOTICE il vaut mieux vérifier le contenu des valeurs avant l'assignation
$var = (empty($_POST['var'])) "valeur de remplacement" : $_POST['var'];

Il est aussi possible de parcourir le tableaux $_POST pour assigner chaque valeur à une variable, mais tu t'expose alors à des problème de sécurité dont tu doit être conscient.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Invité
Invité n'ayant pas de compte PHPfrance

05 janv. 2015, 14:26

Merci pour ta réponse.

J'ai trouvé la solution de moi même .. j'ai remplacé le code php par :
<?php (empty($_POST['valide']))

Mammouth du PHP | 688 Messages

05 janv. 2015, 15:02

comme dis plus haut, ce code va générer un warning si la variable post n'existe pas.
une manière de faire est de tester isset puis empty :
if(isset($_POST['titre']) && !empty($_POST['titre']) && isset($_POST['image']) && !empty($_POST['image'])){

Mammouth du PHP | 1966 Messages

06 janv. 2015, 13:06

le empty contient un isset, il ne génère donc pas d'erreur
Aucune alerte n'est générée si la variable n'existe pas. Cela signifie que empty() est strictement équivalent à !isset($var) || $var == false.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube