Visualizzazione risultati 1 fino 5 di 5

Discussione: Email di conferma e prelevare dati.

  1. #1
    Guest

    Predefinito Email di conferma e prelevare dati.

    Allora ragazzi, io ho seguito una guida per creare una Chat e per creare il Login e la Registrazione con PHP, adesso vi do i codici di tutte le pagine e alla fine vi spiego il problema:

    index.php
    Codice HTML:
    <html> 
        <head> 
        </head> 
        <body> 
           <form action="checklogin.php" method="post"> 
              <input type="text" name="myusername" placeholder="Username" /> 
              <input type="password" name="mypassword" placeholder="Password" c/> 
              <input type="submit" name="Submit" value="Entra" /> 
           </form> 
           <form action="checkregister.php" method="post"> 
              <input type="text" name="username" placeholder="Username" /> 
              <input type="password" name="password" placeholder="Password" /> 
              <input type="submit" name="Submit" value="Registrati" /> 
           </form> 
           <form action="logout.php" method="post"> 
              <input type="submit" value="Esci" /> 
           </form>  
        </body> 
    </html>
    checklogin.php
    Codice PHP:
    <?php
    $host
    ="localhost"; // Hostname
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name=""; //Nome del Database
    $tbl_name="members"; // Nome della Tabella
    // Procedimento per connettersi al Database
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");
    // Nome utente e password inviate attraverso il form
    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);
    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
    }
    else {
    echo
    "Attenzione username o password errati";
    }
    ?>
    checkregister.php
    Codice PHP:
    <?php
    $host
    ="localhost"; // Hostname
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name=""; //Nome del Database
    $tbl_name="members"; // Nome della Tabella
    $db = mysql_connect($localhost,$username,$password);
    mysql_select_db($db_name,$db);

    $username = $_POST['username'];
    $password = $_POST['password'];

    mysql_query("INSERT INTO ".$tbl_name." (username,password) VALUES ('$username','$password')",$db) || die(mysql_error());

    /* quindi i dati sono stati salvati nel database e l'utente è registrato */
    mysql_close($db);
    /* ritorno in home */
    header("location:login_success.php");
    ?>
    login_success.php
    Codice PHP:
    <?php
    session_start
    ();
    if(!
    session_is_registered(myusername)){
    header("location:index.php");
    }
    ?>

    <?php
    // Configurazioni
    // Variabili di configurazione (indirizzo, username, password)
    $mysql_host="localhost";
    $mysql_username="";
    $mysql_password="";
    $mysql_database="";
    ?>
    <?php
    // Connettiamoci a mysql e al database
    $connect=mysql_connect($mysql_host, $mysql_username, $mysql_password);
    $db=mysql_select_db($mysql_database, $connect);
    if(!
    $connect){echo "<p>Impossibile connettersi al server!</p>";}
    if(!
    $db){echo "<p>Impossibile connettersi al database!</p>";}
    ?>
    <html>
    <head>
    <style type="text/css">
    .chat {
    background-color: transparent;
    border: 1px solid;
    height:300px;
    width:300px;
    overflow:auto;
    }
    </style>
    <script type="text/Javascript">
    function scroll()
    {
    var div=document.getElementById('chat');
    div.scrollTop=100000000;
    }
    </script>
    <meta http-equiv="refresh" content="300"; url=<?php echo $_SERVER['PHP_SELF']; ?>">
    </head>
    <body OnLoad="scroll();">
    <center>
    <p><font size="10px;">Chat</font></p>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <div id="chat" class="chat">
    <?php
    $name
    =$_POST['name'];
    $message=$_POST['text'];
    if (
    $name AND $message)
    {
    mysql_query("INSERT INTO Chat VALUES ('$name', '$message');");
    }
    $query_select=mysql_query("SELECT * FROM Chat");
    while(
    $rows=mysql_fetch_array($query_select))
    {
    echo
    "<p>{$rows['names']}:</p><p></p>";
    $messages=htmlspecialchars($rows['messages']);
    echo
    "<p align=”left“>$messages</p>";
    }
    ?>
    </div>
    <table>
    <tr>
    <td>Nome:</td>
    <td><input type="text" name="name" value="<?php echo $name; ?>"></td>
    </tr>
    <tr>
    <td>Testo:</td>
    <td><textarea name="text"></textarea></td>
    </tr>
    <table>
    <tr>
    <td><input type="submit" value="Invia"></td>
    </tr>
    </table>
    </form>
    </center>
    </body>
    </html>
    logout.php
    Codice PHP:
    <?php
    session_start
    ();
    session_destroy();
    header("location:index.php");
    ?>
    Ecco i problemi:
    1) Vorrei che al posto del refresh ci sia un bottone che aggiorni la chat quando lo si clicca.
    2) Vorrei togliere il nome nella chat e che prenda il nome con il quale ho fatto il login.
    3) Vorrei che nel registra ci sia anche la mail e che per registrarsi si deve confermare la mail.
    Cosa devo inserire e dove XD?

    Se c'e qualcosa che non capite chiedete.
    Spiegate il piu dettagliatamente possibile visto che sono imbranato, grazie. XD

    Se servono anche i codici del database chiedete pure anche quelli. XD

  2. #2
    Guest

    Predefinito

    Up...

  3. #3
    Guest

    Predefinito

    1) sulla pagina login_success.php rimuovi "<meta http-equiv="refresh" content="300"; url=<?php echo $_SERVER['PHP_SELF']; ?>">" e metti "<input type="button" value="Reload Page" onClick="window.location.reload()">" (poi creati una tabella o un div per sistemarlo dove meglio credi nella pagina)

    2-3)su index.php rimuovi questa parte:
    Codice PHP:
    <form action="checkregister.php" method="post">
    <
    input type="text" name="username" placeholder="Username" />
    <
    input type="password" name="password" placeholder="Password" />
    <
    input type="submit" name="Submit" value="Registrati" />
    </
    form>
    e metti questa:

    Codice PHP:
    <form action="checkregister.php" method="post">
    <
    input type="text" name="username" placeholder="Username" />
    <
    input type="password" name="password" placeholder="Password" />
    <
    input type="email" name="email" placeholder="Email" />
    <
    input type="submit" name="Submit" value="Registrati" />
    </
    form>

    nel file checklogin.php rimuovi questo:
    Codice PHP:
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    e metti questo
    Codice PHP:
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' && password='$mypassword' && ver='1'";
    sempre su checklogin.php cambia:
    Codice PHP:
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
    }
    else {
    echo
    "Attenzione username o password errati";
    }
    con questo:
    Codice PHP:
    if($count==1){
    $_SESSION['log'] = '1';
    $_SESSION['username'] = $_POST['myusername'];
    header("location:login_success.php");
    } else {
    $_SESSION['log'] = '0';
    $_SESSION['username'] = '';
    die (
    "Attenzione username o password errati!");
    }
    nel file login_success.php cambia questa parte:
    Codice PHP:
    <?php
    session_start
    ();
    if(!
    session_is_registered(myusername)){
    header("location:index.php");
    }

    // Configurazioni
    // Variabili di configurazione (indirizzo, username, password)
    $mysql_host="localhost";
    $mysql_username="";
    $mysql_password="";
    $mysql_database="";

    // Connettiamoci a mysql e al database
    $connect=mysql_connect($mysql_host, $mysql_username, $mysql_password);
    $db=mysql_select_db($mysql_database, $connect);
    if(!
    $connect){echo "<p>Impossibile connettersi al server!</p>";}
    if(!
    $db){echo "<p>Impossibile connettersi al database!</p>";}
    ?>
    con questa:
    Codice PHP:
    <?
    session_start
    ();
    if(
    $_SESSION['log'] == 0){
    header("location:index.php");
    }

    // Configurazioni
    // Variabili di configurazione (indirizzo, username, password)
    $mysql_host="localhost";
    $mysql_username="";
    $mysql_password="";
    $mysql_database="";

    // Connettiamoci a mysql e al database
    $connect=mysql_connect($mysql_host, $mysql_username, $mysql_password);
    $db=mysql_select_db($mysql_database, $connect);
    if(!
    $connect){echo "<p>Impossibile connettersi al server!</p>";}
    if(!
    $db){echo "<p>Impossibile connettersi al database!</p>";}
    ?>
    per quanto riguarda il discorso della chat prova a cambiare nel file login_success.php questa parte:
    Codice PHP:
    <?php
    $name
    =$_POST['name'];
    $message=$_POST['text'];
    if (
    $name AND $message)
    {
    mysql_query("INSERT INTO Chat VALUES ('$name', '$message');");
    }
    $query_select=mysql_query("SELECT * FROM Chat") ;
    while(
    $rows=mysql_fetch_array($query_select))
    {
    echo
    "<p>{$rows['names']}:</p><p></p>";
    $messages=htmlspecialchars($rows['messages']);
    echo
    "<p align=”left“>$messages</p>";
    }
    ?>
    </div>
    <table>
    <tr>
    <td>Nome:</td>
    <td><input type="text" name="name" value="<?php echo $name; ?>"></td>
    </tr>
    in questa:
    Codice PHP:
    <?php
    $name
    = $_SESSION['username'];
    $message=$_POST['text'];
    if (
    $name AND $message)
    {
    mysql_query("INSERT INTO Chat VALUES ('$name', '$message');") OR die (mysql_error());
    }
    $query_select=mysql_query("SELECT * FROM Chat") OR die (mysql_error());
    while(
    $rows=mysql_fetch_array($query_select))
    {
    echo
    "<p>{$rows['names']}:</p><p></p>";
    $messages=htmlspecialchars($rows['messages']);
    echo
    "<p align=”left“>$messages</p>";
    }
    ?>
    </div>
    <table>
    <tr>
    <td>Nome:</td>
    <td><input type="text" name="name" value="<?php echo $name; ?>"></td>
    </tr>
    poi nel file checkregister.php rimuovi questa parte:
    Codice PHP:
    $username = $_POST['username'];
    $password = $_POST['password'];

    mysql_query("INSERT INTO ".$tbl_name." (username,password) VALUES ('$username','$password')",$db) || die(mysql_error());
    e metti questa:
    Codice PHP:
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];

    $car = "aAbBcCdDeEfFgGhHiIlLjJkKmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
    $dim = 15;
    srand((double)microtime()*1000000);
    $string = '' ;

    for(
    $inc=0; $inc<$dim; $inc++)
    {
    $rand = rand(0, strlen($car)-1);
    $scar = substr($car, $rand, 1);
    $string = $string . $scar;
    }

    mysql_query("INSERT INTO ".$tbl_name." (username,password,email,key_control) VALUES ('$username','$password','$email', '$string')",$db) || die(mysql_error());

    $content = "Benvenuto $username,\r\n";
    $content .= "per confermare la tua iscrizione devi cliccare sul seguente link:\r\n\r\n";
    $content .= "http://MasterBastard.altervista.org/checkregister.php?key=" . $string;
    $intestazioni = "From: MasterBastard@altervista.org\r\n";
    $intestazioni .= "X-Mailer: PHP/".phpversion();
    mail($email, "Iscrizione al sito", $content, $intestazioni);

    $key_control = $_GET['key'];
    if(isset(
    $key_control)){
    $sql = "SELECT id FROM members WHERE key_control='$key_control'";
    $res = mysql_query($sql) OR die (mysql_error());

    if(
    $row = mysql_fetch_array($res))
    {
    $query = "UPDATE members SET ver=1,key_control='0' WHERE id='$row[id]'";
    mysql_query($query) OR die (mysql_error());
    echo
    "Il tuo account è ora attivato!";
    }
    else
    {
    echo
    "Impossibile verificare l'account!";
    }
    }
    Nella tabella members devi aggiungere 3 campi che saranno:

    - email
    - key_control
    - ver (che dovrai impostare di default uguale a 0)

    inoltre spero nella tabella members ci sia il campo id impostato come chiave primaria e autoincrementante

    In pratica lo script manda una email all'email postata con un link cha sarà ad esempio:
    Codice:
    http://MasterBastard.altervista.org/checkregister.php?key=2QRF2S7xwKHANkb
    quando l'utente clicca sul link lo script verifica che la chiave 2QRF2S7xwKHANkb sia presente nel database, se è presente allora attiva l'account altrimenti lo lascia disabilitato.

    se hai problemi posta e vedremo di risolverli.
    Ultima modifica di gbtchiaravalle : 07-12-2013 alle ore 18.35.04

  4. #4
    Guest

    Predefinito

    Prima di tutto volevo ringraziarti per aver risposto, avevo ormai perso la speranza e non controllavo da molto tempo, adesso controllo se va tutto bene.

  5. #5
    Guest

    Predefinito

    Ho controllato, va tutto bene, grazie ancora

Regole di scrittura

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