Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Errore PHP] PHP mi ignora gli if ed Exit

    Salve gente sto creando una pagina che conferma la validazione del'account. In pratica questa pagina viene eseguita con il passaggio della variabile confirmkey e :

    -Inserisce nella tabella authuser i dati contenuti nella tabella signup
    -Cancella il record con la confirm kay in signup
    -Inserisce l'utente nel database di PHPBB3

    Tutte queste operazioni vanno alla grande tranne che per un paio di cose stranissime:

    1 - Autmaticamente mi crea 2 record in authuser uno con i dati e uno senza (solo con l'ip, e newsletter)

    2- Se ne frega completamente degli if nel senso che quando trova ad esempio questa parte:

    Codice PHP:
            $UsernameQuery mysql_query("SELECT * FROM authuser WHERE uname='$username'",$connection);
            
    $UsernameExist mysql_num_rows($UsernameQuery);
            
            if (
    $UsernameExist == 0)
            {
               
    $inserimento mysql_query("INSERT INTO authuser (uname, passwd, team, level, status, Email, lastlogin, logincount, Showemail,Ip,Sesso,Photo,Newsletter) VALUES ('$username', '$password', '$team', '$level', '$status', '$email', '', 0, 0, '$ip','$sesso', '$photo', 1 )",$connection) or die("Errore:".mysql_error());
               
            } else
            {
            echo 
    "<div class=\"centra\">[b]Errore nell'inserimento!
    "
    ;
            echo 
    "Contatta l'[email='']amministratore[/email] per chiarimenti.[/b]</div>";
            exit ();
            } 
    Lui non solo esegue il messaggio di errore ma inserisce l'utente in authuser, cancella il record in signup e registra l'utente nel database del forum O___O

    Vi posto tutto il codice del pagina un Grazie in anticipo
    PHP Version 4.4.9
    MySQL Versione 5.0.45

    Codice PHP:
    <?php


         $confirmkey 
    $_GET['confirmkey'];
         
    $dbhost     "";    // Change this to the proper DB Host name
         
    $dbusername "";       // Change this to the proper DB User
         
    $dbpass     ="";        // Change this to the proper DB User password
         
    $dbname     "";     // Change this to the proper DB Name
         
    $connection = @mysql_connect($dbhost$dbusername$dbpass);
                       @
    mysql_select_db($dbname);
         
    $result     mysql_query("SELECT * FROM signup WHERE confirmkey = '$confirmkey'",$connection) or die("<div class=\"centra\">[b]La tua chiave di conferma non e' valida o &egrave; stata gi&agrave; usata!
    Contatta l'[email='']amministratore[/email] per chiarimenti.[/b]
    Errore:"
    .mysql_error()."</div>");
         
    $numrow     mysql_num_rows($result);

        
    /*/ Confirmation key is not found
        if ($numrow == 0)
        {
            echo "<div class=\"centra\">[b]La tua chiave di conferma non e' valida o &egrave; stata gi&agrave; usata!
    ";
            echo "Contatta l'[email='']amministratore[/email] per chiarimenti.[/b]</div>";
            exit ();
        }
        else
        {/*/
            // signup table
            
    $row      mysql_fetch_array($result);
            
    $username $row["uname"];
            
    $password $row["passwd"];
            
    $email    $row["email"];        
            
    $photo    $row["Photo"];
            
    $sesso    $row["Sesso"];
            
    $team     "Members";
            
    $level    2
            
    $status   "active";
            
    $ip       $_SERVER['REMOTE_ADDR']; 
            
            
    $UsernameQuery mysql_query("SELECT * FROM authuser WHERE uname='$username'",$connection);
            
    $UsernameExist mysql_num_rows($UsernameQuery);
            
            if (
    $UsernameExist == 0)
            {
               
    $inserimento mysql_query("INSERT INTO authuser (uname, passwd, team, level, status, Email, lastlogin, logincount, Showemail,Ip,Sesso,Photo,Newsletter) VALUES ('$username', '$password', '$team', '$level', '$status', '$email', '', 0, 0, '$ip','$sesso', '$photo', 1 )",$connection) or die("Errore:".mysql_error());
               
            } else
            {
            echo 
    "<div class=\"centra\">[b]Errore nell'inserimento!
    "
    ;
            echo 
    "Contatta l'[email='']amministratore[/email] per chiarimenti.[/b]</div>";
            exit ();
            }


     
    $delete mysql_query("DELETE FROM signup WHERE confirmkey='$confirmkey' ",$connection)or die("Errore critico:".mysql_error());



        
    mysql_close ();
        
        
    $db_host    '';
        
    $db_user    '';
        
    $db_pass    '';
        
    $db_name    '';
        
    $connection mysql_connect($db_host$db_user$db_pass);
        
    $db         mysql_select_db($db_name);    
        
        
    define('IN_PHPBB'true);
        
    $phpEx           substr(strrchr(__FILE__'.'), 1);
        
    $phpbb_root_path 'public/Forum/';
        require_once(
    "public/Forum/common.php");
        
        
    // Start session management
        
    $user->session_begin();
        
    $auth->acl($user->data);
        
        require_once(
    "public/Forum/includes/functions_user.php");

        
    $user_row = array(
                 
    'username'            => $username,
                 
    'user_password'       => $password,
                 
    'user_email'          => $email,
                 
    'group_id'            => '2',
                 
    'user_timezone'       => '0.00',
                 
    'user_dst'            => 0,
                 
    'user_lang'           => 'it',
                 
    'user_type'           => '0',
                 
    'user_actkey'         => '',
                 
    'user_regdate'        => time(),
              );

          
    // Register user...
          
    user_add($user_row);
        
            echo 
    "<div class=\"centra\">[b]Sei diventato un membro![/b]
    "
    ;
            echo 
    "Ora puoi Loggarti e modificare il tuo profilo. Modificando il tuo profilo permetterai agli altri di conoscerti e trovare pi&ugrave; facilmente le persone che condividono i tuoi interessi.</div>";
            
    ?>

  2. #2
    Se inserisci questo codice prima dell'IF, cosa ottieni?

    Codice PHP:
    var_dump($UsernameExist);
    exit(); 

  3. #3
    int(0);

    questo è il risultato (ho provato a creare un'account nuovo) e ho notato che inserendo quel codice il codice dopo non viene eseguito. Una mezza soluzione cmq l'ho trovata ho notato che non è che me ne inserisce sempre uno nuovo di record nuovo ma solo 1 cioè è come se fa un cotnrollo if(non ci sonor record vuoti) { $ne inserisco uno} else { niente}. Devo dire che qui la cosa si fa sempre più strana O_O.

    A ne approfitto per chiedere una cosa quando chiedo l'email per sicurezza la valido così:
    $email = trim(addslashes($_POST['email']));
    Oggi notavo che ad alcune persone non arrivava niente perchè magari nell'email avevano un apice del tipo topolino.D'alena@ciccio.it e quindi lo script gli mette lo \ prima del'apice una soluzione ?

  4. #4

  5. #5
    Ah quindi faccio

    mail(stripslashes($email), $EmailerSubject, $EmailerMessage, "From:$EmailerName<$EmailerFrom>\nReply-to:$EmailerFrom");

    così giusto ?

    Comunque per il problema principale nessun'idea XD?

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.