Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    203

    registrazione utente e pagine in bianco

    buongiorno a tutti,
    sono nuovo di PhP e seguendo una guida ho provato a inserire nel mio sito un processo di registrazione utente e accesso a un'area riservata.
    Il problema nasce quando l'utente cerca di registrarsi. Nella pagina di registrazione ho inserito il form ma una volta compilato alla pressione del pulsante invia al posto di comparirmi la pagina di conferma che mostra i campi compilati, mi compare nuovamente il form con i campi vuoti. Riporto una parte del codice sperando che qualcuno mi possa essere un po' d'aiuto o almeno vi chiedo gentilmente si potete consigliare uno script o qualcosa del genere che si occupi del processo di login e inserimento utenti. Dimenticavo una cosa lo stesso problema si presenta anche quando cerco di effettuare il oggi, non succede nulla, anche se ho registrato l'utente nel database manualmente e usando mysql. Penso si tratti di qualcosa mal settato all'interno della configurazione del mio PC ma credetemi dopo mesi e mesi di letture nei vari form ho pensato di scrivere perché stò perdendo la speranza.
    riporto di fare il register.php:

    <?php
    //register.php
    include_once "./common_db.inc";

    function in_use($userid) {
    global $user_tablename;

    $query = "SELECT userid FROM $user_tablename WHERE userid = '$userid'";
    $result = mysql_query($query);
    if(!mysql_num_rows($result)) return 0;
    else return 1;
    }

    function register_form() {
    global $userposition;
    global $PHP_SELF;

    $link_id = db_connect();
    mysql_select_db("sample_db");
    $position_array = enum_options('userposition', $link_id);
    mysql_close($link_id);

    ?>


    <CENTER><H3>Create your account!</H3></CENTER>
    <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
    <INPUT TYPE="HIDDEN" NAME="action">
    <DIV ALIGN="CENTER"><CENTER><TABLE BORDER="1" WIDTH="90%">
    <TR>
    <TH WIDTH="30%" NOWRAP>Desired ID</TH>
    <TD WIDTH="70%"><INPUT TYPE="TEXT" NAME="userid"
    SIZE="8" MAXLENGTH="8"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Desired Password</TH>
    <TD WIDTH="70%"><INPUT TYPE="PASSWORD"
    NAME="userpassword" SIZE="15"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Retype Password</TH>
    <TD WIDTH="70%"><INPUT TYPE="PASSWORD"
    NAME="userpassword2" SIZE="15"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Full Name</TH>
    <TD WIDTH="70%"><INPUT TYPE="TEXT" NAME="username" SIZE="20"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Position</TH>
    <TD WIDTH="70%"><SELECT NAME="userposition" SIZE="1">
    <?php


    for($i=0; $i < count($position_array); $i++) {
    if(!isset($userposition) && $i == 0) {
    echo "<OPTION SELECTED VALUE=\"". $position_array[$i] .
    "\">" . $position_array[$i] . "</OPTION>\n";
    }
    else if($userposition == $cposition_array[$i]) {
    echo "<OPTION SELECTED VALUE=\"". $position_array[$i] . "\">" .
    $position_array[$i] . "</OPTION>\n";
    }
    else {
    echo "<OPTION VALUE=\"". $position_array[$i] . "\">" .
    $position_array[$i] . "</OPTION>\n";
    }
    }
    ?>


    </SELECT></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Email</TH>
    <TD WIDTH="70%"><INPUT TYPE="TEXT" NAME="useremail" SIZE="20" >
    </TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Profile</TH>
    <TD WIDTH="70%"><TEXTAREA ROWS="5" COLS="40"
    NAME="userprofile"></TEXTAREA></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" COLSPAN="2" NOWRAP>
    <INPUT TYPE="SUBMIT" VALUE="Submit">
    <INPUT TYPE="RESET" VALUE="Reset"></TH>
    </TR>
    </TABLE>
    </CENTER></DIV>
    </FORM>
    <?php
    }

    function create_account() {
    $userid = $_POST['userid'];
    $username = $_POST['username'];
    $userpassword = $_POST['userpassword'];
    $userpassword2 = $_POST['userpassword2'];
    $userposition = $_POST['userposition'];
    $useremail = $_POST['useremail'];
    $userprofile = $_POST['userprofile'];

    global $default_dbname, $user_tablename;


    if(empty($userid)) error_message("Enter your desired ID!");
    if(empty($userpassword)) error_message("Enter your desired password!");
    if(strlen($userpassword) < 4 ) error_message("Password too short!");
    if(empty($userpassword2))
    error_message("Retype your password for verification!");
    if(empty($username)) error_message("Enter your full name!");
    if(empty($useremail)) error_message("Enter your email address!");
    if(empty($userprofile)) $userprofile = "No Comment.";

    if($userpassword != $userpassword2)
    error_message("Your desired password and retyped password mismatch!");



    $link_id = db_connect($default_dbname);

    if(in_use($userid))
    error_message("$userid is in use. Please choose a different ID.");


    $query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'),
    '$username', '$userposition', '$useremail', '$userprofile')";
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());


    $usernumber = mysql_insert_id($link_id);
    html_header();
    ?>


    <CENTER><H3>
    <?php echo $username ?>, thank you for registering with us!
    </H3></CENTER>

    <DIV ALIGN="CENTER"><CENTER><TABLE BORDER="1" WIDTH="90%">
    <TR>
    <TH WIDTH="30%" NOWRAP>User Number</TH>
    <TD WIDTH="70%"><?php echo $usernumber ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Desired ID</TH>
    <TD WIDTH="70%"><?php echo $userid ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Desired Password</TH>
    <TD WIDTH="70%"><?php echo $userpassword ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Full Name</TH>
    <TD WIDTH="70%"><?php echo $username ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Position</TH>
    <TD WIDTH="70%"><?php echo $userposition ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Email</TH>
    <TD WIDTH="70%"><?php echo $useremail ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Profile</TH>
    <TD WIDTH="70%"><?php echo htmlspecialchars($userprofile) ?></TD>
    </TR>
    </TABLE>
    </CENTER></DIV>
    <?php
    html_footer();
    }

    if (empty($_POST)) $_POST['action'] = "";

    switch($_POST['action']) {
    case "register":
    create_account();
    break;
    default:
    html_header();
    register_form();
    html_footer();
    break;
    }
    ?>

  2. #2
    non mi è molto chiaro perchè utilizzi l'action così:

    codice:
    <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
    All'interno dell'action basta che inserisci il percorso e il file che viene chiamato per effettuare la registrazione...

    Con $PHP_SELF giustamente ti viene restituita sempre la stessa pagina in cui ti trovi.
    Forex: forum dedicato al mercato del trading forex

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    203
    è vero ma + sotto viene popolato un nuovo form. Il problema è che non mi inserisce comunque nulla nel dbase

  4. #4
    logico, in quanto il PHP_SELF interviene prima della query, e quindi ti vien restituita sempre la stessa pagina prima dell'invio della query. separa le due pagine.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    203
    ho provato a separare ma nella nuova pagina che ho chiamato registrato.php non mi esce nulla, solo una pagina bianca. Mi potresti dare una mano con il codice. tye ne sarei veramente molto grato...

  6. #6
    allora partiamo dal principio.

    quando usi l'include su common_db.inc all'inizio, usa un percorso assoluto:
    http://www.miosito.it/common_db.inc
    così da escludere la possibilità in cui non trovi questa pagina.

    poi nella pgina di conferma, dopo i vari echo (es. echo $username) inserisci sempre il punto e virgola:
    <?php echo $username; ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    203
    Niente non funziona neanche così... Spero che tu non ti stia stufando. Se vuoi ti mando i file... Pensa che sono quelli della guida di php5 pagata ben 50€.... Mi rendo conto di esser negato.. scusa

  8. #8
    aaaaaaaaaaaaallllllllllllttttttttttttttttttttt!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!
    mal il tuo server supporta il php5?

    controlla dal comando phpinfo().

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    203
    ma io lo stò provando in locale

  10. #10
    mmmmm


    a me le prove in locale piaccion poco, in quanto te in locale potresti avere un sistema diverso da quello del tuo server. Ergo in locale potresti ricolvere dei problemi, e poi quando carichi tutto sul server riscontrarne altri dovuti alla differenza di versioni di PHP o MySQL.

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.