Visualizzazione dei risultati da 1 a 8 su 8

Discussione: iscrizione in php

  1. #1

    iscrizione in php

    Ciao a tutti,
    Grazie ad una guida di mrwebmaster sono riuscito a fare una iscrizione in php con sistema di password reminder. Però questa guida chiede all'utente solo due campi: e-mail e password.
    Io volevo fare invece tre campi: e-mail, password e username!
    Andate a vedere la guida e ditemi cossa posso fare.
    E giacchè vorrei una guida veloce su come fare un cookie che riconosce l'ip dell'utente e lo fa loggare direttamente senza passare dalla pagina dei login, e poi che quando logga in una piccola parte della pagina ci sia "Benvenuto/a $user" con un collegamento al logout (altra cosa che non c'è nella guida).
    Grazie in anticipo per l'aiuto.
    Steave67

  2. #2
    Se provi a far qualcosa e posti un po' di codice è più facile trovare un aiuto.
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  3. #3
    Sì hai ragione,
    per il form d'iscrizione avevo pensato di fare così, ma secondo me non va:
    Codice PHP:
    <?php
    // controllo sul parametro d'invio
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Iscriviti"))

      
    // controllo sul formato dell'email
      
    if((!isset($_POST['email'])) || (!eregi("^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$"$_POST['email'])))
      {
        echo 
    "Attenzione, formato email non valido.";
      }
      
    // controllo sul formato della password deve essere alfanumerica e non deve superare i dieci caratteri di lunghezza
      
    elseif((!isset($_POST['password'])) ||  ($_POST['password'] == "") || (strlen(trim($_POST['password']) > 10)))
        {
        echo 
    "Password essere alfanumerica e non più lunga di 10 caratteri.";

      }else{
        
    // se i parametri sono corretti popoliamo il database
        
    $email $_POST['email'];
        
    $user $_POST['user']
        
    $password $_POST['password'];

        
    // ma prima controlliamo che la mail non sia già presente includiamo il file di configurazione
        
    @include "config.php";

        
    $ctrl_mail = @mysql_query("SELECT id FROM iscrizioni WHERE email='$email'") or die (mysql_error());
        if(@
    mysql_num_rows($ctrl_mail)>0)
        {
          echo 
    "L'email risulta già stata registrata.";

        
    $ctrl_user = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user'") or die (mysql_error());
        if(@
    mysql_num_rows($ctrl_user)>0)
        {
          echo 
    "L'username è già stato utilizzato.";

        }else{
          
    // query d'inserimento
          
    if(@mysql_query("INSERT INTO iscrizioni (email, username, password,) VALUES('$email','$username','$password')") or die (mysql_error()))
          {
            
    // messaggio di conferma
            
    echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";

            
    // email per la conferma
            // intestazioni
            
    $headers "From: $admin_email\nreply-To: noreply\r\n";
            
    $subject "Conferma la tua iscrizione.";
            
    //corpo del messaggio
            
    $messaggio "Ti ringraziamo per la tua iscrizione.\n";
            
    $messaggio .= "La tua user è: ".$user."\n";
            
    $messaggio .= "La tua password è: ".$password."\n";
            
    $messaggio .= "Per confemare vai alla pagina [url]http://www.sito.it/conferma.php[/url] ";
            
    $messaggio .= "e inserisci i dati per l'autenticazione.\n"
            
    // invio dell'email
            
    @mail($emailstripslashes($subject),stripslashes($messaggio),$headers);
          }
        }
      } 
    }else{
      
    // form per l'iscrizione
      
    ?>
    <h1>Modulo d'iscrizione:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:

    <input name="email" type="text" size="20">

    Username:

    <input name="user" type="text size="15">

    Password: (max 10 caratteri alfanumerici)

    <input name="password" type="password" size="20">

    <input name="submit" type="submit" value="Iscriviti">
    </form>
      <?
    }
    ?>

  4. #4
    Che errori ti segnala?
    Uhm... così ad occhio secondo me c'è qlc che non va qui:

    Codice PHP:
        if(@mysql_num_rows($ctrl_mail)>0)
        {
          echo 
    "L'email risulta già stata registrata.";

    [...]
        } 
    Perchè chiudi quell'if dopo tutte le altre istruzioni?
    Devi mettere un exit(); o chiudere l'if e bloccare il resto dello script se l'email risulta già scritta (come hai fatto per il nome utente x intenderci).
    Altrimenti il sistema ti mette a video "L'email risulta già stata registrata." ma poi va avanti tranquillo a fare le altre operazioni tra cui appunto il controllo nome utente e l'inserimento nel DB.
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  5. #5
    Scusa, mi son accorto ora: l'if che ti ho segnalato non viene mai chiuso, la } alla fine che consideravo chiudeva un else dell'inizio...

    Dunque ricapitolando: devi chiudere l'if(@mysql_num_rows($ctrl_mail)>0) e, come dicevo prima, se l'email è duplicata devi far in modo lo script non vada più avanti nelle sue operazioni.

    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  6. #6
    grazie sì hai ragione,
    me l'ero scordato.
    Adesso per i login, la pagina ricorda_password è facile.
    Ma per i cookie e l'username nella pagina?
    Di cookie non ne so proprio niente.
    Ma di username posso fare così (apparte la session_start() dell'inizio)?:
    echo"$username"
    Non so, aiutami tu!!!
    Comunque adesso provo.

  7. #7
    La "session_start()" serve per gestire le sessioni, simili in alcuni casi ma differenti dai cookie.
    Guardati la funzione "setcookie()" per il tuo scopo
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  8. #8
    e all'username stampata nella pagina o al logout, provvedono sempre i cookie?
    E come posso fare il login con i cookie al posto della sessionstart()?
    Ti prego aiutami

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.