Visualizzazione risultati 1 fino 11 di 11

Discussione: non riesco a visualizzare il contenuto della variabile $_POST

  1. #1
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito non riesco a visualizzare il contenuto della variabile $_POST

    buona sera....se per favore ce' qualcuno che mi spiega come fare senza farmi prima studiare tutta la bibbia dell'informatica. il mio problema e' questo. ho un form semplice che carica file e in piu' ce' una casella testo. i file me li carica benissimo e li visualizzo altrettanto benissimo sulla pagina web. da quello che ho capito, dal form ci sono 2 variabili da recuperare..quella $_FILES per le immagini e video, e quella $_POST per le caselle di testo ,giusto? la S_FILES funziona benissimo, io con quella $_POST vorrei scrivere il contenuto su un file di testo per poi recuperare i dati. il file di testo me lo apre ma non mi scrive niente. vi posto il codice php, se mi dite dove sbaglio..(quello del forum e' banale.) grazie a chi mi risponde.

    Codice PHP:
    ?php
    $filename
    = "dati.txt";
    $handle = fopen($filename, "a");


    if(
    $_POST['submit']){
    fwrite ($handle,$_POST['dati']);
    fwrite($handle, "\r\n");

    }
    $temp = explode(".", $_FILES["file"]["name"]);
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".rand(1, 100000000).'-'.$_POST['nome'].'.'.end($temp));
    header('Location: upload');




    ?>
    Ultima modifica di alemoppo : 04-10-2023 alle ore 19.23.57 Motivo: +tag [php]

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Ciao benvenuto noncecapisco.
    Codice PHP:
    <?php

    error_reporting
    (PHP_INT_MAX); // Attivo le costanti E_WARNING, E_NOTICE e tutto, per debug è utile visualizzare gli errori
    $filename = 'dati.txt';
    $handle = fopen($filename, 'a');


    if(isset(
    $_POST['submit'], $_POST['dati'], $_POST['nome'])){
    fwrite ($handle,$_POST['dati']);
    fwrite($handle, "\r\n");

    $temp = explode('.', $_FILES['file']['name']);
    move_uploaded_file($_FILES['file']['tmp_name'], '/membri/noncecapisco/upload/'.rand(1, 100000000).'-'.$_POST['nome'].'.'.end($temp));
    header('Location: upload');
    }

    ?>
    1) Dal tuo form è presente l'attributo action che è la url in ricezione dei dati,
    2) La ricezione dei dati è un file php, il suo uso migliore è se scritto solo per tale scopo (ricezione dati post).

    Si, sebbene l'inoltro dei file è con Enctype diverso da application/x-www-form-urlencoded anche la variabile $_POST è valorizzata da input type text oltre i file di input type file.

    Con error_reporting ho abilitato ogni errore e siccome su altervista display_errors è abilitato puoi leggere su schermo, ho aggiunto la root /membri/noncecapisco/ del tuo account altervista nel tuo percorso target/destinazione per il file, probabilmente senza l'aggiunta della tua root c'è l'errore.. provalo senza root e poi dopo con la root.

    Ho anche aggiunto la verifica se esiste/definito $_POST['submit'], $_POST['dati'] e $_POST['nome'] tramite la funzione isset dentro la condizione if.

    Questo nel gergo HTTP è reindirizzamento verso la destinazione upload
    Codice PHP:
    header('Location: upload');
    Siccome il web server Apache fornito da altervista è configurato a mostrare index.html o index.htm o index.php è equivalente a Location: upload (cioè la sintassi mostrata precedentemente o sintassi alternativa upload/index.php), se invece il codice dell'autore prevede il directory listing qui per ovvie ragioni di sicurezza non è possibile.
    Ultima modifica di darbula : 04-10-2023 alle ore 09.26.14

  3. #3
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito

    buon giorno, grazie infinite per la risposta, allora il file txt me lo apre come prima ma non mi scrive niente...ma ora non funziona neanche il caricamento del file , e non mi rimanda piu' alla pgina index con le foto stampate...boo

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Occorre che l'attributo name degli elementi input coincide con l'indice inserito dopo $_POST e dunque $_POST['submit']
    Codice HTML:
    <input type="submit" name="submit" value="invia" />
    caso analogo anche per dati ma questa volta con type text e non necessariamente con valori predefiniti.
    Per favore puoi mostrare il form html? Magari racchiuso tra i tag [HTML]<html>[/HTML]
    Ultima modifica di darbula : 04-10-2023 alle ore 10.55.04

  5. #5
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito

    a ok ho capito....il value di submit e' "pubblica"...ci provo e ti faccio sapere..grazie per la pazienza.

  6. #6
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito

    no e' uguale...e' strano pero' perche' lo stesso codice per il file di testo lo adopero per far pubblicare gli annunci in bacheca e funziona benissimo...bo forse gli da fastidio il codice upload.php che carica anche il file. boo. ecco il form e grazie ancora.
    Codice HTML:
    <form action="/upload.php" method="post"
     enctype="multipart/form-data"><big><big>
    &nbsp; <input name="dati" id="text" type="text" placeholder="nomi e citta'"style="width: 217px;"required><br>
    &nbsp; <input name="file" id="file" type="file" required><br>
    &nbsp; <input id="invia" value=" pubblica" type="submit">
     </form>
    Ultima modifica di alemoppo : 04-10-2023 alle ore 19.23.35 Motivo: +tag [html]

  7. #7
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Codice HTML:
    <form action="/upload.php" method="post"
     enctype="multipart/form-data"><big><big>
    &nbsp; <input name="dati" id="text" type="text" placeholder="nomi e citta'"style="width: 217px;"required><br>
    &nbsp; <input name="file" id="file" type="file" required><br>
    &nbsp; <input id="invia" value=" pubblica" type="submit">
     </form>
    Ok grazie ancora manca $_POST['nome'] come scritto nel tuo file php che memorizza (in realtà sposta e memorizza) il file.
    https://forum.it.altervista.org/php-...ml#post1489145 su move_uploaded_file
    Ultima modifica di darbula : 04-10-2023 alle ore 11.04.53

  8. #8
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito

    perdonami non ho capito..quindi cosa devo aggiungere e dove?

  9. #9
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Se ignori il valore di $_POST['nome'] probabilmente è una svista da copia incolla, altrimenti pensa a come chiamare il file memorizzato.
    Fai click a questo link https://forum.it.altervista.org/php-...ml#post1489153 se sei paziente il browser ti porta a tale messaggio (il codice html) e se poi clicchi il link al suo interno (al codice php) ti basta semplicemente rimuovere $_POST['nome'] da quel codice php e usare la versione html che ho scritto a quel messaggio.
    Codice PHP:
    <?php

    error_reporting
    (PHP_INT_MAX); // Attivo le costanti E_WARNING, E_NOTICE e tutto, per debug è utile visualizzare gli errori
    $filename = 'dati.txt';
    $handle = fopen($filename, 'a');


    if(isset(
    $_POST['dati']){
    fwrite ($handle,$_POST['dati']);
    fwrite($handle, "\r\n");

    $temp = explode('.', $_FILES['file']['name']);
    move_uploaded_file($_FILES['file']['tmp_name'], '/membri/noncecapisco/upload/'.rand(1, 100000000).'-.'.end($temp));
    header('Location: upload');
    }

    ?>
    Ultima modifica di darbula : 04-10-2023 alle ore 11.24.48

  10. #10
    noncecapisco non è connesso Utente Blog
    Data registrazione
    16-09-2023
    Messaggi
    387

    Predefinito

    senti ..io te ringrazio ma non funziona..non carica le foto come prima e mi da pagina bianca "upload.php". ho rimesso come prima e funziona tutto. senti una cortesia dato che in rete non riesco a trovare una soluzione te lo chiedo a te: come mai se nella textarea metto position:fixed; il pulsante submit mi sparisce? e invece se tolgo position fixed il pulsante torna vicino la textarea? grazie..sei l'unico che mi risponde.

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Anzitutto ti consiglio di utilizzare file_put_contents() che è molto più semplice di fopen+fwrite (e avresti dovuto usare anche fclose).

    Poi non capisco il redirect a "upload", c'è un index nella cartella upload?

    Se l'upload non funziona, cerca di capire cosa non va! Aggiungi echo ovunque. Qualche esempio di cose da controllare con echo sono:

    • controlla se il codice entra dentro all'if
    • controlla se move_uploaded_file ritorna true (e nel caso sia false, controlla i parametri)


    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •