Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema form e session

    Da un po' di tempo non mi funziona questo script, cioè un po' di tempo = 15-20 minuti, ma non capisco il perchè.. Sembra che la posizione dell' include e del session_start() influenzi tutto lo script, il form non riceve dati..

    Codice PHP:
        <?php
        
    include('settings.php');
        
    session_start();
        
    $step $_GET['step'];
        if(!
    is_numeric($step) || !isset($step)) {
        
    header ('Location: ?step=1');
        }
        switch(
    $step) {
        case 
    1:
        echo <<<EOT
        Benvenuto nella registrazione di [b]MySimpson[/b]. Ricorda di fornire un' indirizzo mail valido affinchè successivamente vi si possano inviare i dati immessi nel form sottostante.


        <form action="
    {$_SERVER['PHP_SELF']}" method="POST">
        <div style="float: left; margin-right: 50px;">
        Username

        <input type="text" name="username" required />


        Password

        <input type="password" name="password" required /></div><div style="float: left;">
        Email

        <input type="email" name="email" required />


        Conferma Password

        <input type="password" name="password_check" required /></div><div style="clear: both;"></div>

        <input type="submit" name="reg" value="Registrati" /></form>

    EOT;
        
    $username addslashes(htmlspecialchars($_POST['username']));
        
    $email addslashes(htmlspecialchars($_POST['email']));
        
    $password md5(addslashes(htmlspecialchars($_POST['password'])));
        
    $password_check md5(addslashes(htmlspecialchars($_POST['password_check'])));
        if(isset(
    $_POST['reg'])) {
        if(empty(
    $username) || empty($email) || empty($password) || empty($password_check)) {
        echo 
    '<div id="error">Devi riempire tutti i campi</div>';
        } elseif(
    $password_check != $password) {
        echo 
    '<div id="error">Le password non coincidono</div>';
        } else {
        
    mysql_query("INSERT INTO simpson_users (username, password, livello, exp, email, registrazione) VALUES ('$username','$password','1','1','$email',NOW())") or die(mysql_error());
        
    $_SESSION['ok'] = $username;
        
    header ('Location: ?step=2');
        }
         }
         break;
         case 
    2:
         if(!isset(
    $_SESSION['ok'])) {
         
    header ('Location: ?step=1');
         } else {
         echo 
    '<div id="ok">Registrazione effettuata correttamente.
    Sono stati inviati i dati al tuo indirizzo email in caso di smarrimento.

    Se non ricevi nessuna email entro 48 ore assicurati di aver inserito un indirizzo di posta elettronica valido e di aver controllato nella [b]Posta indesiderata[/b].</div>'
    ;
         }
         break;
          }
        
    ?>
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Nessuno? :/
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  3. #3
    session_start(); va messo prima di tutto

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    To use cookie-based sessions, session_start() must be called before outputing anything to the browser.

    dal manuale di php

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Niente, questi sono i codici completi della pagina:

    Codice PHP:
    <?php session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <meta http-equiv="Content-Language" content="it" />
    <meta name="Description" content="MySimpson - Crea il tuo Homer al livello Australopiteco fino a farlo aumentare a Homo Sapiens Sapiens a colpi di visite!" />
    <meta name="Keywords" content="Zypher, my simpson, MySimpson" />
    <meta name="Owner" content="Danilo P" />
    <meta name="Author" content="Zypher" />
    <meta name="Copyright" content="MySimpson" />
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <link href="images/favicon.jpg" rel="icon" type="image/jpeg" />
    <link href='http://fonts.googleapis.com/css?family=Patrick+Hand&v1' rel='stylesheet' type='text/css' />
    <title>MySimpson - Crea il tuo Homer al livello Australopiteco fino a farlo aumentare a Homo Sapiens Sapiens a colpi di visite!</title>
    </head>
    <body>
    <div id="container">
        <div id="header">
            <div id="logo"></div>
            <div id="menu">
                    [url="index.php"]Home[/url] <span id="tp">Registrati</span> [url="classifica.php"]Classifica[/url] [url="utenti.php"]Utenti[/url]
                    </div>
        </div>
        <div id="content"><div id="text">
        <?php
        
    include('settings.php');
        
    $step $_GET['step'];
        if(!
    is_numeric($step) || !isset($step)) {
        
    header ('Location: ?step=1');
        }
        switch(
    $step) {
        case 
    1:
        echo <<<EOT
        Benvenuto nella registrazione di [b]MySimpson[/b]. Ricorda di fornire un' indirizzo mail valido affinchè successivamente vi si possano inviare i dati immessi nel form sottostante.


        <form action="
    {$_SERVER['PHP_SELF']}" method="POST">
        <div style="float: left; margin-right: 50px;">
        Username

        <input type="text" name="username" required />


        Password

        <input type="password" name="password" required /></div><div style="float: left;">
        Email

        <input type="email" name="email" required />


        Conferma Password

        <input type="password" name="password_check" required /></div><div style="clear: both;"></div>

        <input type="submit" name="reg" value="Registrati" /></form>

    EOT;
        
    $username addslashes(htmlspecialchars($_POST['username']));
        
    $email addslashes(htmlspecialchars($_POST['email']));
        
    $password md5(addslashes(htmlspecialchars($_POST['password'])));
        
    $password_check md5(addslashes(htmlspecialchars($_POST['password_check'])));
        if(isset(
    $_POST['reg'])) {
        if(empty(
    $username) || empty($email) || empty($password) || empty($password_check)) {
        echo 
    '<div id="error">Devi riempire tutti i campi</div>';
        } elseif(
    $password_check != $password) {
        echo 
    '<div id="error">Le password non coincidono</div>';
        } else {
        
    mysql_query("INSERT INTO simpson_users (username, password, livello, exp, email, registrazione) VALUES ('$username','$password','1','1','$email','NOW()')") or die(mysql_error());
        
    $_SESSION['ok'] = $username;
        
    header ('Location: ?step=2');
        }
         }
         break;
         case 
    2:
         if(!isset(
    $_SESSION['ok'])) {
         
    header ('Location: ?step=1');
         } else {
         echo 
    '<div id="ok">Registrazione effettuata correttamente.
    Sono stati inviati i dati al tuo indirizzo email in caso di smarrimento.

    Se non ricevi nessuna email entro 48 ore assicurati di aver inserito un indirizzo di posta elettronica valido e di aver controllato nella [b]Posta indesiderata[/b].</div>'
    ;
         }
         break;
          }
        
    ?>
        </div>
    </div></div>
    </body>
    </html>
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  6. #6
    E l'errore/problema quale sarebbe?

  7. #7
    Non inviava i dati al form, ora ho risolto.

    Ho messo come action, dopo PHP_SELF "?step=1". L' errore stava che il form inviava i dati a registrazione.php, mentre ho messo che se $_GET['step'] è vuoto rimandava a step=1 quindi i dati non venivano mai inviati realmente.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

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.