Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: Domanda GET POST

  1. #1

    Domanda GET POST

    So più o meno come funzionano GET e POST, ho capito le differenze da parecchio tempo, ma mi ritrovo con l'ennesimo problemino e sono andato a leggermi bene la guida:
    http://www.html.it/pag/16695/le-variabili-get-e-post/
    ma dall'esempio su POST:
    codice HTML:
    <form action=”elabora.php” method=”post”>
          <input type=”text” name=”nome”>
          <input type=”checkbox” name=”nuovo” value=”si”>
          <input type=”submit” name=”submit” value=”invia”>
    </form>
    mi è sorto un dubbio (per non dire problema esistenziale...):
    Io per recuperare quei dati, farei al seguente modo:
    Codice PHP:
    $variabile=$_POST['name']; 
    Ma qual'è il "name" che considera visto che sono 3?
    nome, nuovo o submit?
    A logica direi che prende l'ultimo, quindi "submit", il che sarebbe il contrario rispetto alla spiegazione...
    Ho anche provato, mi da nullo.
    Potreste cortesemente spiegarmelo?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    $variabile=$_POST['nome']; per il contenuto dell'input text.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    $variabile=$_POST['nome']; per il contenuto dell'input text.
    Ma devo inserire il valore? Non il nome?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ma perche non provi ? Io ho imparato cosi. Facendo prove.

    Copia questo codice chiamando il file prova.php
    Codice PHP:
    <?php
    if (isset($_POST['nome'])) {
      print 
    "nome = ".$_POST['nome'];
    ?>
    <form action=”prova.php” method=”post”>
          <input type=”text” name=”nome”>
          <input type=”checkbox” name=”nuovo” value=”si”>
          <input type=”submit” name=”submit” value=”invia”>
    </form>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Ma perche non provi ? Io ho imparato cosi. Facendo prove.

    Copia questo codice chiamando il file prova.php
    Codice PHP:
    <?php
    if (isset($_POST['nome'])) {
      print 
    "nome = ".$_POST['nome'];
    ?>
    <form action=”prova.php” method=”post”>
          <input type=”text” name=”nome”>
          <input type=”checkbox” name=”nuovo” value=”si”>
          <input type=”submit” name=”submit” value=”invia”>
    </form>
    È un po' che provo, ma spesso mi trovo davanti a dei muri senza capirne il perchè...
    Il codice comunque così non mi da nulla.

  6. #6
    Ho creato le pagine, così puoi vederle:
    http://fiorefix.altervista.org/Slot/Test.php
    La prima pagina ha questo codice:
    codice HTML:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Test</title>
    <form name="Test" action="prova.php" method="POST">
    </head>
    <body>
    <center>
    <form action=”prova.php” method=”post”>
          <input type=”text” name=”nome”>
          <input type=”checkbox” name=”nuovo” value=”si”>
          <input type=”submit” name=”submit” value=”invia”>
    </form>
    <br>
    <?php
    print("<input type='submit'></br>");
    $valorenome=$POST['nome'];
    $name=$POST['name'];
    $valore=$_POST['value'];
    $valval=$_POST['invia'];
    if (isset($_POST['nome'])) {
      print "nome = ".$_POST['nome'];
    }
    print("<br/>valorenome: $valorenome</br>name: $name</br>valore: $valore</br>valval: $valval</br>");
    //qui sopra non va nulla
    //qui sotto nemmeno XD
    print("</br><input type='text' name='mnome'>
          <input type='checkbox' name='mnuovo' value='msi'>
          <input type='submit' name='msubmit' value='minvia'></br>");
    $mvalorenome=$POST['mnome'];
    $mname=$POST['name'];
    $mvalore=$_POST['value'];
    $mvalval=$_POST['minvia'];
    print("<br>mvalorenome: $mvalorenome</br>mname: $mname</br>mvalore: $mvalore</br>mvalval: $mvalval<br>");
    ?>
    </center>
    </body>
    </form>
    </html>
    Mentre la seconda:
    codice HTML:
    <!doctype>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Test</title>
    <form name="Test" action="prova.php" method="POST">
    </head>
    <?php
    if (isset($_POST['nome'])) {
      print "nome = ".$_POST['nome'];
    }
    $valorenome=$POST['nome'];
    $name=$POST['name'];
    $valore=$_POST['value'];
    $valval=$_POST['invia'];  
    print("valorenome: $valorenome</br>name: $name</br>valore: $valore</br>valval: $valval");
    $mvalorenome=$POST['mnome'];
    $mname=$POST['name'];
    $mvalore=$_POST['value'];
    $mvalval=$_POST['minvia'];
    print("<br>mvalorenome: $mvalorenome</br>mname: $mname</br>mvalore: $mvalore</br>mvalval: $mvalval<br>");
    ?>
    </html>
    Credo di averle provate tutte, nessuna sembra andare, che mi sfugge?

    Ps. Quell' "isset" non l'ho proprio capito che ci fa lì!

    Scusami se ti faccio perdere tempo per queste cose, fino ad oggi riuscivo a farli funzionare i POST, ma ora boh...

  7. #7
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    a volte è preferibile usare le modalità di invio dati su due file: uno con il form e un altro per elaborare i dati inviati.
    Nell'usare uno stesso file, sia per il form sia per la elaborazione dei dati, bisogna prestare attenzione al flusso, esempio con il controllo IF:
    if (se c'è un particolare evento) { elabora tali dati} esleif(se invece avviene un altro evento) {elabora questi altri dati}else{ altrimenti se non ci sono i primi due eventi fai questo!}

    codice:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Test</title>
    </head>
    <body>
    
    <?php
    if (isset($_POST['nome'])) {
      print "nome = ".$_POST['nome'];
    $valorenome=$_POST['nome'];
    $name=$_POST['nome'];
    $valore=$_POST['nuovo'];
    $valval=$_POST['submit'];
    
    print("<br/>valorenome: $valorenome</br>name: $name</br>valore: $valore</br>valval: $valval</br>");
    //qui sopra non va nulla
    //qui sotto nemmeno XD
    
    print("<form action='$_SERVER[PHP_SELF]' method='post'>
    </br><input type='text' name='mnome'>
          <input type='checkbox' name='mnuovo' value='msi'>
          <input type='submit' name='msubmit' value='minvia'></br>");
          
          
    }elseif(isset($_POST['mnome']))
    {
    $mvalorenome=$_POST['mnome'];
    $mname=$_POST['mnome'];
    $mvalore=$_POST['mnuovo'];
    $mvalval=$_POST['msubmit'];
    print("<br>mvalorenome: $mvalorenome</br>mname: $mname</br>mvalore: $mvalore</br>mvalval: $mvalval<br>");
    }
    else{
    ?>
    
    
    
    <form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
          <input type="text" name="nome">
          <input type="checkbox" name="nuovo" value="si">
          <input type="submit" name="submit" value="invia">
    </form>
    <br>
    <?php
    }
    ?>
    
    </body>
    </form>
    </html>
    testasto e funziona

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da FioreFix Visualizza il messaggio
    È un po' che provo, ma spesso mi trovo davanti a dei muri senza capirne il perchè...
    Il codice comunque così non mi da nulla.
    Colpa dei doppi apici.

    Codice PHP:
    <?php
    if (isset($_POST['nome'])) {
      print 
    "nome = ".$_POST['nome'];
    ?>
    <form action="prova.php" method="post">
          <input type="text" name="nome">
          <input type="checkbox" name="nuovo" value="si">
          <input type="submit" name="submit" value="invia">
    </form>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Quote Originariamente inviata da ttcc Visualizza il messaggio
    a volte è preferibile usare le modalità di invio dati su due file: uno con il form e un altro per elaborare i dati inviati.
    Nell'usare uno stesso file, sia per il form sia per la elaborazione dei dati, bisogna prestare attenzione al flusso, esempio con il controllo IF:
    if (se c'è un particolare evento) { elabora tali dati} esleif(se invece avviene un altro evento) {elabora questi altri dati}else{ altrimenti se non ci sono i primi due eventi fai questo!}
    codice:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Test</title>
    </head>
    <body>
    
    <?php
    if (isset($_POST['nome'])) {
      print "nome = ".$_POST['nome'];
    $valorenome=$_POST['nome'];
    $name=$_POST['nome'];
    $valore=$_POST['nuovo'];
    $valval=$_POST['submit'];
    
    print("<br/>valorenome: $valorenome</br>name: $name</br>valore: $valore</br>valval: $valval</br>");
    //qui sopra non va nulla
    //qui sotto nemmeno XD
    
    print("<form action='$_SERVER[PHP_SELF]' method='post'>
    </br><input type='text' name='mnome'>
          <input type='checkbox' name='mnuovo' value='msi'>
          <input type='submit' name='msubmit' value='minvia'></br>");
          
          
    }elseif(isset($_POST['mnome']))
    {
    $mvalorenome=$_POST['mnome'];
    $mname=$_POST['mnome'];
    $mvalore=$_POST['mnuovo'];
    $mvalval=$_POST['msubmit'];
    print("<br>mvalorenome: $mvalorenome</br>mname: $mname</br>mvalore: $mvalore</br>mvalval: $mvalval<br>");
    }
    else{
    ?>
    
    
    
    <form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
          <input type="text" name="nome">
          <input type="checkbox" name="nuovo" value="si">
          <input type="submit" name="submit" value="invia">
    </form>
    <br>
    <?php
    }
    ?>
    
    </body>
    </form>
    </html>
    testasto e funziona
    Hai ragione, ora funziona...
    L'ho modificato per portarlo alla seconda pagina: prova.php e funziona...
    Il link è ancora valido:
    http://fiorefix.altervista.org/Slot/Test.php
    (poi a giorni lo rimuoverò).
    Ho visto le modifiche, e ok, ma il problema iniziale che avevo, lo ho ancora, e adesso vi spiego:
    Se faccio una pagina che refresha se stessa:
    Codice PHP:
    print("<input type='hidden' name='rep' value='$rep'>");
    $casereply=$_POST['rep'];
    print(
    "</br>Variabile POST: $casereply</br>Variabile Diretta: $rep"); 
    Verificando la stampa, $rep va bene, mentre $casereply carica il valore al secondo caricamento della pagina, questo ritardo, me lo trovo anche nella seconda pagina se modifico l'action, che è dove mi servirebbe il valore, che per com'è fatta la prima pagina, risulta sempre lo stesso...

    Quello che mi fa andare di matto, è che ho pure delle altre variabili, scritte allo stesso modo, e funzionano bene...

  10. #10
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    non so se ho capito bene....
    bisogna vedere da dove vengono le variabili. Nel tuo caso potrebbe essere un discorso di
    Codice PHP:
    $_SESSION[''

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.