Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    10

    creare un sistema di registrazione con conferma

    ragazzi potete aiutarmi a concepire un sistema di registrazione con conferma? già l'ho fatto altre volte ma non mi piace. Ecco il codice:

    Sintassi SQL
    codice:
    create database if not exists db;
    use db;
    
    create table if not exists sessions (
     sessionId varchar(32) not null primary key,
     sessionTime integer not null,
     sessionData text not null
    );
    
    create table if not exists registrations (
     code varchar(32) not null primary key,
     userName varchar(10) not null unique,
     eMail varchar(255) not null unique,
     time integer not null,
     data mediumtext
    );
    
    create table if not exists accounts (
     id integer unsigned not null auto_increment primary key,
     userName varchar(10) not null unique,
     eMail varchar(255) not null unique,
     password varchar(32)
    );
    Modulo di registrazione
    codice:
    <?php
    
     $registration=array(
    	"submitButton" => array(
    		"name" => "inviated",
    		"value" => "Invia i dati."
    	),
    	"mail" => array(
    		"subject" => "Conferma di iscrizione.",
    		"from" => "vincenza.tralice@tiscali.it",
    	)
     );
    
     // includes
     include_once("../includes/databaseConfigurations.include.php");
     include_once("../includes/databaseConnection.include.php");
     include_once("../includes/tables.include.php");
    
     // functions
     include_once("../functions/errorMessage.function.php");
     include_once("../functions/warningMessage.function.php");
     include_once("../functions/deleteExpiredRegistrations.function.php");
    
     // classes
     include_once("../classes/session.class.php");
    
     deleteExpiredRegistrations();
     $obj_session=new session($databaseHandle);
     if($obj_session->getVar("id")!=null) {
      warningMessage("Sei già registrato.", "../index.php");
      exit;
     }
    
     if($_POST[$registration["submitButton"]["name"]]==$registration["submitButton"]["value"]) {
      $post=&$_POST;
    
      // functions
      include_once("../functions/parseUserName.function.php");
      include_once("../functions/parse_eMail.function.php");
      include_once("../functions/parsePassword.function.php");
      include_once("../functions/exists_registration.function.php");
      include_once("../functions/exists_account.function.php");
      include_once("../functions/str_crypt.function.php");
    
      // classes
      include_once("../classes/sendMail.class.php");
    
      if(!parseUserName($post["userName"])) {
       errorMessage("L'userName digitato non è corretto.");
       exit;
      }
    
      if(!parse_eMail($post["eMail"])) {
       errorMessage("L'eMail digitata non è corretta.");
       exit;
      }
    
      if(!parsePassword($post["password"])) {
       errorMessage("La password digitata non è corretta.");
       exit;
      }
    
      if(exists_registration($post["userName"], $post["eMail"])) {
       errorMessage("L'utente specificato dall'userName o dall'eMail è in fase di registrazione.");
       exit;
      }
    
      if(exists_account($post["userName"], $post["eMail"])) {
       errorMessage("L'utente specificato dall'userName o dall'eMail è già registrato.");
       exit;
      }
    
      $post["code"]=md5(microtime());
      $post["time"]=time();
      $post["data"]=array(
    	"password" => str_crypt($post["password"], $post["userName"])
      );
      $post["data"]=serialize($post["data"]);
    
      $q_insertRegistration=mysql_query(
    	"insert into {$tables["registrations"]} set code='{$post["code"]}', userName='".addslashes($post["userName"])."', eMail='".addslashes($post["eMail"])."', time={$post["time"]}, data='".addslashes($post["data"])."'",
    	$databaseHandle
      );
    
      $eMailTextMessage=<<<EOD
    Grazie per esserti registrato.
    I TUOI DATI
    
     - Username: {$post["userName"]}
     - Password: {$post["password"]}
    
    Per confermare l'iscrizione inserisci il codice e l'eMail
    sottostante nel apposito modulo di conferma dell'iscrizione.
    CODICI
    
     - eMail: {$post["eMail"]}
     - Codice: {$post["code"]}
    
    Arrisentirci.
    
    EOD;
    
      $obj_sendMail=new sendMail($registration["mail"]["from"], $post["eMail"], $registration["mail"]["subject"]);
      $obj_sendMail->setTextMessage($eMailTextMessage);
      $obj_sendMail->send();
    
      warningMessage("Un eMail di conferma è stata inviata alla tua casella di posta.", $_SERVER["PHP_SELF"]);
      exit;
     }
    
    ?>
    <html>
     <head>
      <title>Registrazione.</title>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
     </head>
     <body>
    
      <form method="post" action="<?php print($_SERVER["PHP_SELF"]) ?>">
       <table width="100%">
        <tr>
    	<td width="30%">userName</td>
    	<td><input type="text" name="userName"></td>
        </tr>
        <tr>
    	<td>eMail</td>
    	<td><input type="text" name="eMail"></td>
        </tr>
        <tr>
    	<td>password</td>
    	<td><input type="password" name="password"></td>
        </tr>
        <tr>
    	<td colspan="2">
    		<input type="reset" value="Resetta">,
    		<input type="submit" name="<?php print($registration["submitButton"]["name"]); ?>" value="<?php print($registration["submitButton"]["value"]); ?>">
    	</td>
        </tr>
       </table>
      </form>
    
     </body>
    </html>
    Modulo di conferma della registrazione
    codice:
    <?php
    
     $confirmRegistration=array(
    	"submitButton" => array(
    		"name" => "inviated",
    		"value" => "Conferma la tua iscrizione."
    	)
     );
    
     // includes
     include_once("../includes/databaseConfigurations.include.php");
     include_once("../includes/databaseConnection.include.php");
     include_once("../includes/tables.include.php");
    
     // functions
     include_once("../functions/errorMessage.function.php");
     include_once("../functions/warningMessage.function.php");
    
     // classes
     include_once("../classes/session.class.php");
    
     $obj_session=new session($databaseHandle);
     if($obj_session->getVar("id")!=null) {
      warningMessage("Sei già registrato.", "../index.php");
      exit;
     }
    
     if($_POST[$confirmRegistration["submitButton"]["name"]]==$confirmRegistration["submitButton"]["value"]) {
      $post=&$_POST;
    
      // functions
      include_once("../functions/parseCode.function.php");
      include_once("../functions/parse_eMail.function.php");
    
      if(!parseCode($post["code"])) {
       errorMessage("Il codice digitato non è valido.");
       exit;
      }
    
      if(!parse_eMail($post["eMail"])) {
       errorMessage("L'eMail digitata non è corretta.");
       exit;
      }
    
      $post["code"]=addslashes($post["code"]);
      $post["eMail"]=addslashes($post["eMail"]);
    
      $q_selectRegistration=mysql_query(
    	"select * from {$tables["registrations"]} where code='{$post["code"]}' and eMail='{$post["eMail"]}'",
    	$databaseHandle
      );
      if(mysql_num_rows($q_selectRegistration)!=1) {
       errorMessage("La registrazione indicata dal codice e dall'eMail non esiste.");
       exit;
      }
    
      $d_selectRegistration=mysql_fetch_array($q_selectRegistration, MYSQL_ASSOC);
      $d_selectRegistration["data"]=unserialize(
    	stripslashes($d_selectRegistration["data"])
      );
      $q_insertAccount=mysql_query(
    	"insert into {$tables["accounts"]} set userName='{$d_selectRegistration["userName"]}', eMail='{$d_selectRegistration["eMail"]}', password='{$d_selectRegistration["data"]["password"]}'",
    	$databaseHandle
      );
      $q_deleteRegistration=mysql_query(
    	"delete from {$tables["registrations"]} where code='{$post["code"]}'",
    	$databaseHandle
      );
    
      warningMessage("Ti sei registrato con successo.", $_SERVER["PHP_SELF"]);
      exit;
     }
    
    ?>
    <html>
     <head>
      <title>Conferma della registrazione.</title>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
     </head>
     <body>
    
      <form method="post" action="<?php print($_SERVER["PHP_SELF"]); ?>">
       <table width="100%">
        <tr>
    	<td width="30%">code</td>
    	<td><input type="text" name="code"></td>
        </tr>
        <tr>
    	<td>eMail</td>
    	<td><input type="text" name="eMail"></td>
        </tr>
        <tr>
    	<td colspan="2">
    		<input type="reset" value="Resetta">
    		<input type="submit" name="<?php print($confirmRegistration["submitButton"]["name"]); ?>" value="<?php print($confirmRegistration["submitButton"]["value"]); ?>">
    	</td>
        </tr>
       </table>
      </form>
    
     </body>
    </html>
    La funzione deleteExpiredRegistrations
    codice:
    <?php
    
     function deleteExpiredRegistrations($expire=3600) {
      global $databaseHandle, $tables;
    
      $q_deleteExpiredRegistrations=mysql_query(
    	"delete from {$tables["registrations"]} where time<".(time()-$expire),
    	$databaseHandle
      );
     }
    
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    10

    up

    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    10

    up

    up

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.