Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema form

  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    Problema form

    ciao a tutti
    mi sto avvicinando al mondo php e dopo le nozioni base e principali, sto cercando di riscrivere un sito asp da me fatto, in php

    Ho un problema con una form, in particolare non riesco a riscrivere i dati inseriti dall'utente in caso di errori.

    Il codice è questo:
    Codice PHP:
    <?php
    include "inc_funzioni.php";
    /*    $user = "";
        $pass = "";
        $testo = "";
        $ricorda = "";
        $q = "";*/
    ?>
    <html>
    <head></head>
    <body>
    <?php
    if($_POST){
        
        foreach(
    $_POST as $k => $v){
            print(
    "- [b]" .$k"[/b]: " .$v"
    \n"
    );
        }
        
        
    $user $_POST['user'];
        
    $pass $_POST['pass'];
        
    $testo $_POST['testo'];
        
    $ricorda $_POST['ricorda'];
        
    $q $_POST['q'];

        print(
    "User = " $user "
    \n"
    );
        print(
    "Pass = " $pass "
    \n"
    );
        print(
    "Testo = " $testo "
    \n"
    );
        print(
    "Ricorda = " $ricorda "
    \n"
    );
        print(
    "q = " $q "
    \n"
    );
        print(
    "
    \n"
    );
    }
    ?>
    <table>
    <form name="login" method="post" action="test.php"">
    <tr>
    <th colspan="2">Autenticazione utente</th>
    </tr>
    <tr> 
    <td class="parametro">Username *</td>
    <td class="esteso"><input name="user" type="text" maxlength="12" value="<?php echo($user);?>" class="input120"></td>
    </tr>
    <tr> 
    <td class="parametro">Password *</td>
    <td class="esteso"><input name="pass" type="password" maxlength="12"></td>
    </tr>
    <tr> 
    <td class="parametro">Testo</td>
    <td class="esteso"><textarea name="testo"><?php $testo?></textarea></td>
    </tr>
    <tr> 
    <td class="parametro">Memorizza?</td>
    <td class="esteso">si<input name="ricorda" type="radio" value="si" checked>no<input name="ricorda" type="radio" value="no"></td>
    </tr>
    <tr>
    <td colspan="2" class="submit">
    <input name="q" type="hidden" value="1"><input type="submit" name="Submit" value="Login"></td>
    </tr>
    </form>
    </table>
    </body>
    </html>
    Vorrei che dopo l'invio del form rimettesse i dati inseriti qualora si presentano errori (i controlli devo ancora riscriverli)

    Se lascio l'istruzione echo nel campo user mi da questo errore (attenzione che ho commentato le var all'inizio):
    Notice: Undefined variable: user in D:\www\dev\test.php on line 40


    Vi chiedo quindi se è necessario che nelle pagine che raccolgono dati da form le variabili associate ai campi vanno necessariamente dichiarate, ad esempio = ""

    Inoltre, per associarle al valore value del campo del form, devo utilizzare semplicemente il $nomevar o echo?

    Grazie mille

  2. #2
    Ciao, molto probabilmente il problema è che quando ancora non hai inviato il form, il POST è vuoto e quindi la variabile $user non è valorizzata e tu tenti di stamparla. Quindi ti conviene inizializzarla prima.
    Per stampare la variabile nel value dei campi va bene come hai fatto, utilizzando l'echo, la funzione echo può essere utilizzata anche senza parentesi.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Prova così:

    Codice PHP:
    <td class="esteso"><input name="user" type="text" maxlength="12" value="<?php echo"$user";?>" class="input120"></td>

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao.

    le variabili se non sono dichiarate sono nulle.

    cmq

    per stampare una variabile devi mettere echo d fronte al $....

    quindi se vuoi mettere nel value una variabile devi scriverla cosi:

    <?php echo $variabile; ?>

    ciao

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    perfetto!
    il mio dubbio era sul fatto che, se non dichiarate sono nulle, perchè mi da quell'errore ... pensavo che essendo nulla non mi scrivesse nulla

    A quanto pare le var le devo dichiarare per forza ad inizio pagina

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    no , non sei costretto a dichiararle se non le usi .
    tu fai ciclare tutto sulla stessa pagina quindi o le dichiari (perchè le utilizzi) oppure condizioni all'interno del value(più scomodo)

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.