9
votes

HTML / PHP - Valeur d'entrée par défaut

J'ai une forme POST PHP et un ensemble d'entrées:

  1. Votre nom
  2. Votre nom de famille
  3. mon nom

    Chaque entrée a l'air identique, seuls les noms changent: xxx

    Comment définir des valeurs par défaut lorsque la valeur = n'est pas disponible? < p> [EDIT]

    OK, alors, normalement, je ferais normalement quelque chose comme: xxx

    mais dans ce cas, j'ai un script php qui accroche Entrée les données et l'affiche à l'aide de Value = "<< PHP Echo get_option (" Votre nom ");?>" . Je n'ai donc aucune idée de la façon de forcer mon formulaire à afficher "Mike" dans mon entrée.


4 commentaires

Je ne comprends pas dans quelles circonstances valeur = serait pas disponible. Pouvez-vous clarifier pourquoi il pourrait ne pas être disponible?


@David Thomas, a mis à jour la question.


N'oubliez pas non plus d'échapper à des caractères spéciaux! Stackoverflow.com/Questtions/6249151/...


@Wordressor, vous pouvez utiliser ma bibliothèque minuscule valoresolver pour le faire plus simplement, vérifier ma réponse, s'il vous plaît


11 Réponses :


0
votes

Vous pouvez faire une instruction de commutation et faire défaut ce que vous voulez que ce soit.


0 commentaires

7
votes

Vous devez d'abord vérifier le retour de get_option et remplacer quelque chose si une valeur par défaut n'est pas disponible xxx

modifier get_option pour renvoyer une chaîne vide (ou quelque chose d'autre) si la valeur par défaut n'est pas disponible.


1 commentaires

Vous pouvez utiliser ma bibliothèque minuscule valoresolver pour le faire plus simplement



-2
votes

Définissez une certaine variable au début avec les variables de poteau.

comme xxx


10 commentaires

Il y a un énorme trou XSS dans cela.


Et, ne pas être ridiculement cruellement difficile, une ligne de PHP non terminée dans l'attribut .


@David Thomas, qu'entendez-vous par ligne non terminée?


@Ummar Il n'y a pas de terminaison ; après le $ nom_val . Strictement parler, je ne pense pas qu'il a être, mais ... ça me dénigre quand ce n'est pas là. (Bien que je n'ai pas fait voté la réponse.)


Veuillez cesser d'utiliser des étiquettes ouvertes courtes. Ils pourraient être désactivés dans certaines configurations et PHP pourraient arrêter de le supporter à l'avenir.


@Marcel Korpel, short_open_tag est ouvert par défaut dans la configuration PHP ... et selon les documents PHP, il n'est pas obsolète. [PHP DOCS] ( php.net/manual/fr/ini.core.php)


Mais il existe de nombreuses configurations de serveur qui l'ont désactivé. De plus, seul pourrait confondre des programmes qui fonctionnent également avec d'autres langues, comme XML.


@Quentin en regardant PHP pour la toute première fois, pourriez-vous s'il vous plaît élaborer sur votre commentaire sur "Un énorme trou XSS" dans la réponse fournie? Merci.


@Quentin OK, merci. Ainsi, le code affiché est problématique car la variable est en cours d'évaluation, donc si elle contient du code, il fonctionnera. IIU, l'impression de la variable serait correcte. Merci.


@Jodyhagins - Non. Impression de la variable l'envoie au navigateur où elle sera évaluée en tant que HTML (qui peut incorporer JS).



0
votes

Etant donné que valeur code> est la valeur par défaut, il suffit d'ajouter une condition autour de votre get_option code> -function, peut-être quelque chose comme ceci:

<input type="text" name="your_name" value="<?php $var = get_option('your_name'); if ($var == '') $var = 'your_default'; echo $var; ?>" />


2 commentaires

Ce n'est pas la meilleure pratique d'écrire toute la logique à l'intérieur du HTML :)


Très vrai, mais je démontitais simplement les moyens d'y arriver. Un détachement structuré de code PHP et de HTML doit être supposé.



2
votes

Vous pouvez modifier la fonction get_option () pour être quelque chose comme xxx


0 commentaires

0
votes

Je suis d'accord avec Teneff mais je le briserais.

dans l'index.php, j'aurais ce qui suit en haut de la DOC P>

<?
$Name = <<<EOD Name EOD;
return $Name;
?>


0 commentaires

0
votes
<input type="text" name="your_name" value="<?php echo empty(get_option('your_name')) ? "TheDefaultValue" : get_option('your_name'); ?>" />

0 commentaires

0
votes

Vous pouvez utiliser ma bibliothèque minuscule valoresolver dans ce cas, par exemple: xxx

et n'oubliez pas d'utiliser l'espace de noms Utiliser lapalabs \ valoresolver \ résolveur \ valoresolver;

Il existe également une capacité à taper, par exemple si la valeur de votre variable devrait Soyez INTEGER , utilisez-le ainsi: xxx

cochez le docs pour plus d'exemples


0 commentaires

1
votes

Voici comment j'ai résolu ce problème dans mon problème que je crois est similaire, lorsque $ _Post est lu que la valeur est remplie à partir de la valeur $ _post d'ailleurs définit la valeur par défaut de Mike

value="<?php if (isset($_POST['name'])) echo $_POST['name']; else echo "Mike"?>" >


1 commentaires

Pour éviter les attaques XSS, remplacez echo $ _post ['nom'] ci-dessus avec echo htmlspecialchars ($ _ post ["nom"]) .



0
votes

Utilisez simplement un opérateur ternaire. c'est assez facile essayez ceci xxx


0 commentaires

0
votes

Vous pouvez stocker la valeur de get_option dans une variable et utiliser l'opérateur de Coalece PHP NULL pour définir une valeur par défaut s'il existe un présent.

<?php $value = get_option('your_name');?>

<input type="text" name="your_name" value="<?php echo $value ?? NULL; ?>">


0 commentaires