$_REQUEST e $_POST

di il
5 risposte

$_REQUEST e $_POST

Buonasera a tutti, stavo facendo un pò di pratica con il php ed ho avuto un problema con il seguente esercizio:

<html>
<head></head>
<body>
<form action="Esercizio.php?step=1" method="POST">
  <label>Inserisci le tue passioni</label><br>
  <?php
    for($i=0; $i<10; $i++){
    echo  "<input type='text' name='giochi{$i}' placeholder='Inserisci i tuoi giochi'";
        if(isset($_POST['step'])){
          $giochi=$_POST["giochi{$i}"];
          echo "value='$giochi'";
           }
          echo "><br>";
    }
   ?>

  <input type="submit" value="Invia" name="invia"><input type="reset">
</form>
</body>
<html>
In pratica, nella form, ho inserito in action la pagina seguita da step=1, in modo da caricare sulla stessa pagina il continuo dell'esercizio.
Però, nonostante il method sia il POST, se uso $_POST non accede alla if, mentre se uso $_REQUEST va tutto a buon fine.
Come mai? Grazie

5 Risposte

  • Re: $_REQUEST e $_POST

    Perché step=1 è passato con GET. Per passarlo con POST, inserisci un input di tipo hidden.
  • Re: $_REQUEST e $_POST

    dvaosta ha scritto:


    Perché step=1 è passato con GET. Per passarlo con POST, inserisci un input di tipo hidden.
    Quindi devo solo modificare da type="text" a type="hidden"?
    Non modifico altro? Grazie mille
  • Re: $_REQUEST e $_POST

    Non devi modificare il campo che c'è già, ma aggiungerne un altro.
  • Re: $_REQUEST e $_POST

    dvaosta ha scritto:


    Non devi modificare il campo che c'è già, ma aggiungerne un altro.
    Saresti così gentile da dirmi in quale punto andrebbe inserito nel mio codice? Ho provato a fare alcune modifiche ma non funziona...grazie
  • Re: $_REQUEST e $_POST

    Hai due soluzioni, o utilizzi il valore di step utilizzando $_GET (Oppure tramite $_REQUEST che sarebbe la somma di $_GET + $_POST + $_COOKIES, oppure aggiungi un input hidden per esempio
    
    ...
    
      <input hidden name="step" value="1">
    
      <input type="submit" value="Invia" name="invia"><input type="reset">
    </form>
    ...
    
    il quale potrei utilizzare usando $_POST['step'].

    Un ultima cosa, non e' possibilire fare un richiesta che passi sia parametri di tipo POST che GET (o l'uno o l'altra) il fatto che con PHP possa accedere a step utilizzando anche $_GET['step'] deriva dal fatto che PHP fa un parsing della query string, non che stai passando il paramentro con GET.
Devi accedere o registrarti per scrivere nel forum
5 risposte