web-dev-qa-db-fra.com

Définition de la variable POST sans utiliser le formulaire

Est-il possible de définir un $_POST['var'] sans utiliser de champ lié au formulaire (pas de type = 'caché') et en utilisant uniquement PHP. Quelque chose comme

$_POST['name'] = "Denniss";

Y a-t-il un moyen de faire cela?

EDIT: Quelqu'un m'a demandé des précisions à ce sujet. Ainsi, par exemple, j'ai une page avec un formulaire dessus, le formulaire ressemble à ceci

<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>

Une fois que le bouton d'envoi est cliqué, je veux être redirigé vers next.php. Est-il possible pour moi de définir la variable $ _POST ['text'] sur une autre valeur? Comment rendre cette tâche persistante afin que lorsque je clique sur un autre bouton de soumission (par exemple), le $ _POST ['text'] sera ce que je définis sur next.php sans utiliser de champ caché.

Faites-moi savoir si ce n'est toujours pas clair et merci pour votre aide.

51
denniss

Oui, définissez simplement une autre valeur:

$_POST['text'] = 'another value';

Ceci remplacera la valeur précédente correspondant à la clé text du tableau. Le $_POST Est superglobal tableau associatif et vous pouvez modifier les valeurs comme un tableau normal PHP.

Attention: Cette modification n'est visible que dans la même portée d'exécution PHP. Une fois l'exécution terminée et la page chargée, le tableau $_POST Est effacé. Une nouvelle soumission de formulaire générera un nouveau tableau $_POST.

Si vous souhaitez conserver la valeur dans les soumissions de formulaire, vous devez la placer dans le formulaire sous la forme d'un attribut input d'une balise value ou la récupérer à partir d'un magasin de données.

78
Sarfraz

Si vous souhaitez définir $ _POST ['text'] sur une autre valeur, pourquoi ne pas utiliser:

$_POST['text'] = $var;

sur next.php?

6
Rakward

vous pouvez le faire en utilisant ajax ou en envoyant des en-têtes http + du contenu comme:

POST /xyz.php HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme
3
bcosca

Vous pouvez le faire en utilisant jQuery. Exemple:

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>

<script>
    $.ajax({
        url : "next.php",
        type: "POST",
        data : "name=Denniss",
        success: function(data)
        {
            //data - response from server
            $('#response_div').html(data);
        }
    });
</script>
1
joan16v