PCTRIO - il portale del software gratuito
Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    pierastana non  è collegato Junior Member
    Registrato dal
    Oct 2011
    Messaggi
    16

    Creazione di un profilo utente per ogni iscritto al mio sito (PHP)

    Ciao a tutti e scusate se mi rivolgo a voi ma non riesco proprio a trovare una soluzione al mio "problema".
    La mia idea era quella di creare un profilo al quale rimandare gli utenti dopo l'iscrizione (non uno di tipo Facebook ovviamente, ma solo una piccola paginetta dove vi è l'username e qualche altra informazione inviata durante la registrazione).
    Io ho già creato un sistema di registrazione in PHP perfettamente funzionante (con i dati che si raccolgono in 2 database, un sistema di verifica email e Login/Logout).
    In pratica gli utenti si iscrivono temporaneamente e i dati sono inviati alla tabella "utenti_temp". Questo meccanismo crea automaticamente una passkey personale per ogni utente che tramite la funzione $_GET viene incorporata anche nell'URL di conferma. A questo punto quando l'utente clicca sul codice di conferma il databse riconosce l'uguaglianza fra l'URL e la passkey e verifica l'utenza (con tutte le varie opzioni di INSERT e DELETE fra le tabelle... Anche se a dir la verità le mie abilità non mi hanno permesso tutto questo autonomamente ma, soprattutto per il form di invio del codice di conferma mi sono dovuto vedere qualche guida).
    Comunque dopo aver fatto questo passo pensavo che il più era fatto, basta infatti un $_GET nel valore "username" e viene creata una pagina per ogni utente del tipo "utenti.php?username=$username (inoltre, avendo nell'if posto come condizione che non vi possono essere 2 user uguali, non vi è il pericolo che vengano create pagine doppie...).
    Purtroppo però mi sono bloccato perchè non so come fare ad inserire la funzione $_GET nella pagina "register.php" dove gli utenti inseriscono i loro dati per iscriversi (sono in difficoltà perchè nel form vi è il method="post" che serve per inviare i dati al database).
    Ho pensato che potessi sfruttare il meccanismo di conferma per inserire questa opzione, ma, non so se mi sto perdendo in un bicchier d'acqua, non riesco a trovare una soluzione.
    A questo punto mi chiedevo se fosse possibile questa operazione ed a tal proposito mi rivolgo a voi che sicuramente siete più esperti di me!
    Vi ringrazio anticipatamente per qualsiasi tipo di aiuto che riuscirete ad offrirmi e se puo tornarvi utile, vi linko anche il "codice register.php".

    Codice PHP:
    <?php 

        
    include 'header.php';
        
    ?>

        <div id="wrapper">
        
        <?php 

            
    if(!isset($_GET['passkey'])){
            
                if(!isset(
    $_POST['invia'])){ ?>
                
                    <DIV STYLE="position:absolute; top:270px; left:550px">
                    <form method="post" action="#" id="formregistrazione">
                        
                        <ul>
                            <li><label for="username">Username</label>
                                <input type="text" name="username" id="username" />
                            </li>
                            <li>
                                <label for="password1">Password</label>
                                <input type="password" name="password1" id="password1" />
                            </li>
                            <li>
                                <label for="password2">Ripeti Password</label>
                                <input type="password" name="password2" id="password2" />
                            </li>
                            <li>
                                <label for="email">Email</label>
                                <input type="text" name="email" id="email" />
                            </li>
                        </ul>
                            <input type="submit" name="invia" id="registrati" value="Registrati" />
                    </form>
                </DIV>
        <?php    } else {
                    
                    
    // creazione di un codice di conferma
                    
    $codiceconferma md5(uniqid(rand()));
                    
                    
    // Valori del form
                    
                    
    $username mysql_real_escape_string($_POST['username']);
                    
    $password1 mysql_real_escape_string($_POST['password1']);
                    
    $password2 mysql_real_escape_string($_POST['password2']);
                    
    $email mysql_real_escape_string($_POST['email']);
                
                    
    // controllo campi vuoti e password
                    
                    
    if($username == "" || $email == ""){
                        echo 
    "Devi riempire tutti i campi";
                    }elseif(
    $password1 == "" || $password2 == ""){
                        echo 
    "Devi riempire tutti i campi";
                    }elseif(
    $password2 != $password1){
                        echo 
    "Le password devono coincidere";
                    }else{
                        
                        
    $recuperauseremail mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");    
                        
    $contausermail mysql_num_rows($recuperauseremail);
                        
                        if(
    $contausermail 0){
                        
                            echo 
    "Nome utente o email già disponibili";
                        
                        } else {
                        
                            
    // Invia dati alla tb utenti_temp
                            
                            
    $inviautentitemp mysql_query("INSERT INTO utenti_temp (codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");
                            
                            if(
    $inviautentitemp){
                                
                                
    $to=$email;
                                
    $subject="Conferma la Registrazione";
                                
    $header="Da: Amministratore";
                                
    $message="Ecco il tuo codice di attivazione \r\n";
                                
    $message.="Clicca sul link per confermare la registrazione \r\n";
                                
    $message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
                                
                                
    $sentmail=mail($to,$subject,$message,$header);
                            
                            }
                            
                            if(
    $sentmail){
                            
                                echo 
    "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
                                
                            }else{
                            
                                echo 
    "Errore, link di attivazione non inviato.";
                            
                            }
                        
                        }
                    }
                    
                }
            
            } else {
                
                
    $passkey $_GET['passkey'];
                
                
    $sqlrecuperauser "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
                
    $risultatouser mysql_query($sqlrecuperauser);
                
                if(
    $risultatouser) {
                
                    
    $contauser mysql_num_rows($risultatouser);
                    
                    if(
    $contauser == 1){
                    
                        
    $rows mysql_fetch_array($risultatouser);
                        
    $username $rows['username'];
                        
    $email $rows['email'];
                        
    $password $rows ['password'];
                        
                        
    $passwordcript md5($password);
                        
                        
    $sqlconfermauser mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");
                        
                        if (
    $sqlconfermauser) {
                        
                            echo 
    "Il tuo account è stato attivato con successo, accedi al tuo profilo per aggiornarlo";
                            
                            
                            
    $sqleliminadati mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");                    
                        
                        
                        } else {
                        
                            echo 
    "Errore!";
                        
                        }
                    
                    }
                
                }
                
            }

        
    ?>
        
        
        </div>
        
        
    </body>
    </html>

  2. # ADS
    PUBBLICITA Link Sponsorizzati
    Registrato dal
    Sempre
    Messaggi
    Molti
     
  3. #2
    L'avatar di ceccus
    ceccus non  è collegato Amministratore
    Registrato dal
    May 2004
    residenza
    Siena
    Messaggi
    30,816
    Salve,
    Sezione sbagliata ... il tuo thread è incentrato sulla programmazione ...
    Sposto io ...
    Per il tuo problema ... forse non ho capito ben, ma si tratta di passaggio di parametri ... o altro ???

    Ciao !!
    -- Ceccus Staff PCTrio.com --

    Facebook PcTrio CLICCA "MI PIACE"

  4. #3
    pierastana non  è collegato Junior Member
    Registrato dal
    Oct 2011
    Messaggi
    16
    Scusa Ceccus, ma quando ho visto che la sezione riguardava i problemi con il sito non ci ho pensato due volte credendo pensando fosse la sezione più adatta per me! =)
    Comunque per quanto riguarda la mia discussione, il problema sta nella creazione dinamica/automatica di un profilo utente.
    In poche parole vorrei che ad ogni persona che si iscrive al mio sito venga creato uno spazio personale (non intendo un profilo come Facebook ovviamente, ma una paginetta semplicissima uguale per tutti dove è mostrato l'username e poco altro).
    A questo proposito ho creato una pagina "users.php" che contiene tutte le informazioni e l'aspetto che dovranno avere i futuri profili, il problema è la creazione automatica del profilo sfruttando le informazioni inserite nei form di registrazione.

    Ti faccio un esempio:
    Io mi iscrivo al sito - inserisco nel form di iscrizione username, password e mail. Automaticamente si creerà una pagina "users/pierastana.php" con la grafica inserita in "users.php" ma mia personale.
    Ti iscrivi te - compili i campi di iscrizione, dopodichè avrai una tua pagina personale "users/ceccus.php" uguale alla mia ma con le tue info.

    A dir la verità non è molto difficile fare questo perchè sfruttando la funzione $_GET['username]; in appoggio alla pagina "users.php" viene creato proprio quello che voglio fare io (ad esempio "users.php?username=pierastana").
    Il problema è che per utilizzare questo bisogna creare un form di tipo get (<form action="get" action="users.php"), mentre, dovendo inviare i dati al database, il mio form di registrazione è di tipo post.
    Mi chiedevo dunque se fosse possibile combinare le due cose e se fosse possibile un piccolo aiuto! =)
    Comunque scusa ancora per l'errore Ceccus e grazie...!!

  5. # ADS
    PUBBLICITA Link Sponsorizzati
    Registrato dal
    Sempre
    Messaggi
    Molti
     
  6. #4
    L'avatar di ceccus
    ceccus non  è collegato Amministratore
    Registrato dal
    May 2004
    residenza
    Siena
    Messaggi
    30,816
    Salve,
    Allora, la pagina dei tuoi Users avrà una sua persistenza su disco, oppure no ??? Probabilmente ci sarà il "template" e poi , a partire da questa, ogni singolo utente ne avrà una sua "virtuale" ...
    In ogni caso, non potresti pensare di lavorare con il DB sfruttanto, per esempio, le connessioni di tipo ODBC ? Queste funzionano sia in Get che in Post ... praticamente setti la connessione , la apri , esegui il comando SQL, chiudi la connessione e la distruggi ... in questo modo, secondo me, puoi lavorare ovunque con il DB e con qualsiasi tipologia di Form.

    Ciao !!
    -- Ceccus Staff PCTrio.com --

    Facebook PcTrio CLICCA "MI PIACE"

Discussioni simili

  1. profilo utente non caricato correttamente
    Da fortuna nel forum Windows Vista
    Risposte: 0
    Ultimo messaggio: 17th July 2009, 13:25
  2. Creazione primo sito web
    Da AleZ1986 nel forum Sviluppo Siti
    Risposte: 6
    Ultimo messaggio: 25th August 2008, 21:57
  3. Creazione primo sito web (Principiante)
    Da Ambrosini nel forum Aspetti generali
    Risposte: 3
    Ultimo messaggio: 25th June 2008, 13:09
  4. Creazione nuovo utente
    Da Max79 nel forum Win 2000/XP/2003
    Risposte: 5
    Ultimo messaggio: 2nd February 2008, 14:25
  5. nuovo iscritto
    Da andoluc nel forum Comunicazioni degli Utenti
    Risposte: 1
    Ultimo messaggio: 1st December 2007, 16:05

Visitatori hanno trovato questa pagina cercando

creare profilo utente php

creare un profilo utente php

mettere pagina per ogni utente

creare profili php

creare profilo in php

comando per creare un utente in phpphp creare profilo utentecreare un profilo utente htmltutorial creazione carrello phpcreare pagina profilo phpcarrello php per utente registratocome creare profilo utente in phpcome creare un utente in phpform in php con login per ogni utente con pagine personalicreare database utenti per sito htmlcreare un utente con phputente iscritto a profilo facebookphp profilo utecreare profili utenti htmlcreare profili user con phpprofilo personale phpprofilo per ogni utente phpcreare profili utenti phpcodice html profilo utente creareprofilo per ogni utente registrato codice

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Home  |   Software  |   Drivers  |   Guide  |   Sicurezza  |   Area gestione
Created by - best view 1024x768 and over. - C.F. 92048990524
PCTrio McAfee PCTrio AVG PCTrio Norton PCTrio Google