Visualizzazione dei risultati da 1 a 5 su 5

Discussione: registrazione membri

  1. #1

    registrazione membri

    ciao ho costruito un area membri ma ogni volta che mi registro esce "errore interno"
    questo è il codice della pagina per la registrazione chiamato "registrati.php"



    vedetre voi se avete bisogno c'è anche ilo file register.php

    Codice PHP:
    <html>
    <head>
    <style type="text/css">
    <!--
    .style1 {
        color: #FF0000;
        font-weight: bold;
    }
    -->
    </style>
    </head>
    <body>
    <?php
    include_once("include/config.php");
    include_once(
    "include/reg.lib.php");

    if(isset(
    $_POST['action']) and $_POST['action'] == 'Invia'){
        
    $ret reg_check_data($_POST);
        
    $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;
        
        switch(
    $status){
            case 
    REG_ERRORS:
                
    ?>
                <span class="style1">Sono stati rilevati i seguenti errori:</span>

                <?php
                
    foreach($ret as $error)
                    
    printf("[b]%s[/b]: %s
    "
    $error[0], $error[1]);
                
    ?>
                
    Premere "indietro" per modificare i dati
                <?php
            
    break;
            case 
    REG_FAILED:
                echo 
    "Registrazione Fallita a causa di un errore interno.";
            break;
            case 
    REG_SUCCESS:
                echo 
    "Registrazione avvenuta con successo.

                Vi è stata inviata una email contente le istruzioni per confermare la registrazione."
    ;
            break;
        }
    }
    ?>
    </body>
    </html>
    qui c'è il codice di config.php

    Codice PHP:
    <?php

    error_reporting
    (E_ALL);

    $_CONFIG['host'] = "localhost";
    $_CONFIG['user'] = "root";
    $_CONFIG['pass'] = "";
    $_CONFIG['dbname'] = "articolo_autenticazione";

    $_CONFIG['table_sessioni'] = "sessioni";
    $_CONFIG['table_utenti'] = "utenti";

    $_CONFIG['expire'] = 60;
    $_CONFIG['regexpire'] = 24//in ore

    $_CONFIG['check_table'] = array(
        
    "username" => "check_username",
        
    "password" => "check_global",
        
    "name" => "check_global",
        
    "surname" => "check_global",
        
    "indirizzo" => "check_global",
        
    "occupazione" => "check_global",
        
    "mail" => "check_global"
    );

    function 
    check_username($value){
        global 
    $_CONFIG;
        
        
    $value trim($value);
        if(
    $value == "")
            return 
    "Il campo non può essere lasciato vuoto";
        
    $query mysql_query("
        SELECT id
        FROM "
    .$_CONFIG['table_utenti']."
        WHERE username='"
    .$value."'");
        if(
    mysql_num_rows($query) != 0)
            return 
    "Nome utente già utilizzato";
        
        return 
    true;
    }

    function 
    check_global($value){
        global 
    $_CONFIG;
        
        
    $value trim($value);
        if(
    $value == "")
            return 
    "Il campo non può essere lasciato vuoto";
        
        return 
    true;
    }


    //--------------
    define('AUTH_LOGGED'99);
    define('AUTH_NOT_LOGGED'100);

    define('AUTH_USE_COOKIE'101);
    define('AUTH_USE_LINK'103);
    define('AUTH_INVALID_PARAMS'104);
    define('AUTH_LOGEDD_IN'105);
    define('AUTH_FAILED'106);

    define('REG_ERRORS'107);
    define('REG_SUCCESS'108);
    define('REG_FAILED'109);

    $conn mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
    mysql_select_db($_CONFIG['dbname']);
    ?>
    qui quello di reg.lib.php

    Codice PHP:
    <?php
    function reg_register($data){
        
    //registro l'utente
        
    global $_CONFIG;
        
        
    $id reg_get_unique_id();
        
    mysql_query("
        INSERT INTO "
    .$_CONFIG['table_utenti']."
        (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
        VALUES
        ('"
    .$data['name']."','".$data['surname']."','".$data['indirizzo']."',
        '"
    .$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
        '1', '"
    .time()."','".$id."')");
        
        
    //Decommentate la riga seguente per testare lo script in locale
        //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
        
    if(mysql_insert_id()){
            return 
    reg_send_confirmation_mail($data['mail'], "test@localhost"$id);
        }else return 
    REG_FAILED;
    }

    function 
    reg_send_confirmation_mail($to$from$id){
        
    //invio la mail di conferma
        
    $msg "Per confermare l'avvenuta registrazione, clicckate il link seguente:
        [url]http://localhost/Articoli/autenticazione/1/scripts/confirm.php?id=[/url]"
    .$id."
        "
    ;
        return (
    mail($to"Conferma la registrazione"$msg"From: ".$from)) ? REG_SUCCESS REG_FAILED;
    }

    function 
    reg_clean_expired(){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        DELETE FROM "
    .$_CONFIG['table_utenti']."
        WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 60).") <= ".time()." and temp='1'");
    }

    function 
    reg_get_unique_id(){
        
    //restituisce un ID univoco per gestire la registrazione
        
    list($usec$sec) = explode(' 'microtime());
        
    mt_srand((float) $sec + ((float) $usec 100000));
        return 
    md5(uniqid(mt_rand(), true));
    }

    function 
    reg_check_data(&$data){
        global 
    $_CONFIG;
        
        
    $errors = array();
        
        foreach(
    $data as $field_name => $value){
            
    $func $_CONFIG['check_table'][$field_name];
            if(!
    is_null($func)){
                
    $ret $func($value);
                if(
    $ret !== true)
                    
    $errors[] = array($field_name$ret);
            }
        }
        
        return 
    count($errors) > $errors true;
    }

    function 
    reg_confirm($id){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        UPDATE "
    .$_CONFIG['table_utenti']."
        SET temp='0'
        WHERE uid='"
    .$id."'");
        
        return (
    mysql_affected_rows () != 0) ? REG_SUCCESS REG_FAILED;
    }
    ?>
    ora che avete tutto (e se manca qualcosa ditemelo) vedetre perchè fà così
    se volete testare di persona l'errore ecco qui provate a registrarvi

  2. #2

  3. #3
    gli ho dato un'occhiatina veloce ed è questa la funzione che fallisce:
    Codice PHP:
    function reg_register($data){
        
    //registro l'utente
        
    global $_CONFIG;
        
        
    $id reg_get_unique_id();
        
    mysql_query("
        INSERT INTO "
    .$_CONFIG['table_utenti']."
        (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
        VALUES
        ('"
    .$data['name']."','".$data['surname']."','".$data['indirizzo']."',
        '"
    .$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
        '1', '"
    .time()."','".$id."')");
        
        
    //Decommentate la riga seguente per testare lo script in locale
        //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
        
    if(mysql_insert_id()){
            return 
    reg_send_confirmation_mail($data['mail'], "test@localhost"$id);
        }else return 
    REG_FAILED;

    infatti ritorna la costante REG_FAILED.
    Io aggiungerei un controllo sulla query di INSERT che c'è proprio in quella funzione... non vorrei che fosse quella che sballa tutto
    Ciaoo
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  4. #4
    scusa non ho capito bene sai non sono un professionista.
    scusa la mia stoltezza ma scrivimi per filo e per segno cosa devo correggere e come

  5. #5
    ho risolto ho cambiato scrtipt ora vorrei sapere come si fà a
    Settare i permessi in scrittura ed in lettura(chmod 777) per la cartella contenente i file e sottocartelle

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.