Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    variabili tra form e mysql

    Ciao a tutti..

    ho già cercato su questo forum post riguardanti il mio problema, ma anke se ho trovato casi simili al mio non sono riuscito a risolvere..

    dunque io dovrei inviare tramite un form del testo ke va a salvarsi nel database, per poi essere rikiamato

    ho creato una pagina inserisci.php con questo form e vorrei ke il campo testo fosse passato come variabile al file salva.php

    questa è inserisci.php
    codice:
    <form method="post" action="salva.php">
    Testo:
    
    <textarea cols="50" rows="2" name="testo">
    </textarea>
    
    
    <input type="submit" value="Invia">
    </form>
    mentre questa è salva.php
    codice:
    <?php
    //variabili
    $server  = 'localhost';
    $user    = 'root';
    $pass    = '';
    $nomedb  = 'midi';
    
    //connessione
    $db = mysql_connect($server, $user, $pass);
    //selezione database
    $database = mysql_select_db($nomedb, $db);
    //query
    $query = "INSERT INTO testo_scorrevole (testo) VALUES ('$testo')";
    //chiusura connessione
    mysql_close($db);
    ?>
    questo è l'errore che mi da

    Notice: Undefined variable: testo in c:\programmi\easyphp1-8\www\includes\salva.php on line 26

    e la linea 26 è appunto

    codice:
    $query = "INSERT INTO testo_scorrevole (testo) VALUES ('$testo')";
    spero di essere stato chiaro e perdonate i probabili errori madornali, ma è la prima volta che provo
    grazie anticipatamente..
    ciao!

  2. #2
    '$_POST[testo]'

    usa _POST

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    non hai inserito l'assegnazione della variabile $testo.
    L'errore è chiaro in effetti.
    ci vuole
    $testo=$_POST["testo"];

  4. #4
    Notice non è un errore: è appunto una annotazione.
    Gli warning sono errori di cui ti devi preoccupare.

    Comunque sia il notice ti deve far pensare che c'è un problema di dichiarazione di variabile o inizializzazione di oggetti e quindi ti deve far capire che non è il tuo problema.

    ECCO LA SPIEGAZIONE:

    $testo è una variabile che non contiene nulla, questo perchè le variabili passate tramite form le recuperi tramite l'array globale $HTTP_POST_VARS ( o $_POST) oppure $HTTP_GET_VARS ( o $_GET) in base al method del form.

    Quindi nel tuo caso il valore stà nella variabile $HTTP_POST_VARS['testo'] o $_POST['testo'].

    La tua line 26 diventa

    $query = "INSERT INTO testo_scorrevole (testo) VALUES ('$_POST[testo]')";

    Tutto chiaro?

    ciao ciao
    .. tutti siamo utili, ma nessuno è indispensabile ..

  5. #5
    Ora ho capito e funziona, grazie a tutti e tre!

    Un ultimo dubbio.. a questo punto devo recuperare tramite query il testo inviato per mostrarlo su una pagina..

    Per fare lo script ho seguito e modificato quello proposto nella guida Php/Mysql su freephp ..

    ho provato come descritto nella guida eliminando soltato il while in mysql_fetch_array per evitare ke venisse ripetuto il risultato..

    codice:
    //connessione a mysql
    $conn = mysql_connect($server, $user, $pass);
    //database
    $db = mysql_select_db($nome_db, $conn);
    //query
    $query = "SELECT testo FROM testo_scorrevole";
    //risultato
    $risultato = mysql_query($query, $conn);
    $row = mysql_fetch_array($risultato);
    
    echo "<marquee width=\"80%\" scrollamount=\"4\">
    
    $row</p></marquee>";
    
    //chiusura
    mysql_close($conn);
    quando vado però a visualizzare la pagina ottengo semplicemente la parola "Array", che non capisco da dove venga...

    come devo fare?

    grazie per la pazienza

  6. #6
    $row e' un array. Dovresti anche eliminare eventuali caratteri di escape presenti.

    $testo = stripslashes($row['testo']);

    ....">

    $testo</p></marquee>";



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Quindi cosa dovrei aggiungere e eliminare al codice ke ho postato io prima?

    grazie, ciao

  8. #8
    Originariamente inviato da SupernovaITA
    Quindi cosa dovrei aggiungere e eliminare al codice ke ho postato io prima?

    grazie, ciao
    devi mettere la riga che ti ho postato tra le due seguenti:

    $row = mysql_fetch_array($risultato);

    qui<---- riga da aggiungere

    echo "<marquee width-.......

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    ok sono riuscito.. grazie a tutti x la disponibilità e la pazienza..

    alla prossima!!

  10. #10
    cm nn detto, incappo in un errore.. ora dice

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\includes\barra.php on line 30

    e la linea 30 è la seguente

    codice:
    $row = mysql_fetch_array($risultato);
    ke faccio?

    grazie ancora

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.