2017-09-16 4 views
0

Je cherche une page rapide et simple avec une formevariable PHP semble toujours mis

<form method="get" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<select name="nome"> 
<option selected="selected" value="Cactus">Cactus</option> 
<option value="Sequoia">Sequoia</option> 
<option value="Baobab">Baobab</option> 
</select> 
Quantità 
<input type="text" name="numero" size="2" style="text-align:right"> 
<input type="submit" value="Invia"> 
</form> 

<?php 
if (!isset($_REQUEST['nome'])){ 
    $pianta = "Cactus"; 
    $num = 0; 
} 
    $pianta = $_REQUEST['nome']; 
    $num = $_REQUEST['numero']; 
?> 

Mon problème est que issset ($ _ REQUEST [ « nome »]) semble être toujours vrai, même si je recharge la page. Je veux dire, mon navigateur semble se souvenir de mon choix précédent.

Si je recharge la page, $ _REQUEST ['nome']) est toujours défini, même si je n'ai rien choisi. J'ai essayé ceci dans un serveur local (USBWebServer) et avec différents navigateurs (Chrome, Firefox, IE), toujours avec le même résultat: recharger la page ne supprime pas le contenu des variables.

Où est mon erreur? Merci beaucoup

Giancarlo - Italie

+0

Il est une faute de frappe. Il devrait être 'isset()' –

+0

Mis à part votre problème, ce code n'a pas beaucoup de sens. –

+0

le navigateur se souvenant de votre réglage "même sur recharger" est en fait une fonctionnalité de la plupart des navigateurs. Cependant, aller dans la barre d'adresse et en appuyant sur Entrée habituellement "réinitialise" le formulaire. De plus, votre forme semble toujours présélectionner le cactus. – Jakumi

Répondre

1

Vous devez utiliser un if-else-déclaration. Changez votre code PHP comme ceci:

<?php 
if (!isset($_REQUEST['nome'])){ 
    $pianta = "Cactus"; 
    $num = 0; 
} else { 
    $pianta = $_REQUEST['nome']; 
    $num = $_REQUEST['numero']; 
} 
?> 

J'espère que cela aide. Sinon, vous devez nous fournir plus d'informations.

1

chose intelligente serait, de faire comme ci-dessous, vous ne même pas besoin else:

<?php 
$pianta = "Cactus"; 
$num = 0; 
if (isset($_REQUEST['nome'])){ 
    $pianta = $_REQUEST['nome']; 
    $num = $_REQUEST['numero']; 
} 
?> 
+0

Merci pour vos aimables suggestions. Mais le problème est que mon navigateur semble se souvenir de mon choix précédent. Si je recharge la page, $ _REQUEST ['nome']) est toujours défini, même si je n'ai rien choisi. J'ai essayé ceci dans un serveur local (USBWebServer) et avec différents navigateurs (Chrome, Firefox, IE), toujours le même résultat: recharger la page ne supprime pas le contenu des variables. –