PHP Shorthand pour la forme POST du formulaire ISSet
Je suis entrain de créer un formulaire et je suis juste à la recherche de moyens plus efficaces de faire les choses. Ce que j'ai jusqu'à présent est:
<p><input type="text" name="transmission" value="" /></p>
<p><input type="text" name="model" value="<?=$model;?>" /></p>
De sorte que certains d'entre eux ont une valeur déjà définie, et certains seront vides. Ce que je veux faire, c'est de voir si le formulaire a été réglé, et si elle dispose alors d'utiliser $_POST['nom'] as de la valeur, si elle n'est pas alors utiliser soit vide ou utiliser la dernière variable que j'ai.
<p><input type="text" name="name" value="<?php if isset($_POST['submit'])) { echo $_POST['name']; } else { echo ""; } ?>" /></p>
Mais il y a une façon plus simple de le faire.
SI quelqu'un pouvait m'indiquer la direction que je voudrais vraiment l'apprécier.
Merci!
source d'informationauteur Drew
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir des variables au début de votre script avant la sortie HTML, par exemple:
dans le html de l'article, vous pouvez imprimer $nom sans se soucier qu'il n'a pas été défini
Aussi si $_POST['submit'] ne contient aucune valeur, vous êtes plus susceptibles de recevoir une FAUSSE déclaration. Pour éviter de tels problèmes de l'utilisation array_key_exists
Comme Nazariy dit, vous devriez éviter de PHP dans le template que possible.
En fait, vous devriez avoir dans votre modèle déjà préparé des variables.
Donc, dans votre code avoir quelque chose comme ceci
et puis vous avez lisse et soigné modèle:
Sans entrer dans les raisons de ne pas utiliser
<p>
à la structure de vos formulaires, il n'y a pas beaucoup qui peut être fait en plus de la suppression de laelse
.Abréviation
<?=$_POST['name'] ?: ''?>
Vous pouvez essayer ce...
Je suis à l'aide d'un booléen comparer au lieu de la fonction isset (voir le lien pour le tableau)
http://www.php.net/manual/en/types.comparisons.php
ou une autre option est...
Est le plus court vous l'aurez, en dehors de dire
<?= $_POST['name']; ?>
(si soumettre n'est pas le nom du jeu doit être vide de toute façon) - vous avez probablement besoin de tourner des avertissements.Tout cela étant dit, c'est très mauvaise pratique et vous ouvre de cross site scripting (XSS). Vous devriez PAS faire cela. Même sur un intranet, si un attaquant jamais propriétaire d'un ordinateur qui a accès à ce qu'ils peuvent utiliser XSS pour effectuer toutes les actions que l'utilisateur peut.
De votre question et de la façon dont beaucoup de dégoût que vous avez pour ce type d'écho à l'écran, je vous suggère d'utiliser une certaine forme de templating bibliothèque comme Smarty. Cela permet à votre code html pour ressembler à ceci:
Je viens de voir ce à partir de wordpress norme de codage. bien qu'ils ne pas les encourager pour la lisibilité..
référence ici
Utiliser le php de contrôle d'erreur opérateur: @.
Si la variable POST est défini, il sera echo-ed. Si non, rien ne s'affichera.