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

    Problema Captcha non inserita

    Ciao a tutti ragarri, ho implementato un Captcha all'interno di un form di registrazione al mio sito... ma sembra funzionare solo in parte

    Riesco ad inviare il form se il Captcha è corretto e a restituire un messaggio se il Captcha inserito non corrisponde.... però non riesco ad effettuare un controllo qualora il campo captcha sia lasciato vuoto dall'utente...

    Sicuramente implementerò un controllo lato client con javascript alla fine del lavoro, ma chiaramente non è il massimo... non ha molto senso!

    Dato che non sono un esperto mi date un consiglio su come procedere e su quanto fatto fino ad ora?

    Vi posto il codice:
    Codice PHP:
    <?php
    require("xxxxxxxxxxxxxxxx ecc ecc");
    require(
    "xxxxxxxxxxx ecc ecc");
    include(
    "xxxxxxxxxxxxxxxxx ecc ecc");
    include(
    "xxxxxxxxxxxxxxxxxxxxx ecc ecc");

    session_start();

    require 
    "../phpmailer/class.phpmailer.php";

    $uc = new CUsersCenter();
    if(!isset(
    $ID))
        
    $ID 0;

    if(
    $CMD == "modify")
    {
        
    $user = new CUser();
        
    $user $_SESSION["USER"];
        
    $checked "";
        if(
    $user->Newsletter == 1)
            
    $checked "checked";
        
    $ID $user->ID;
    }

    // $data_nascita = "00/00/1900";

    if($CMD == "Registrati")
    {
        
    $user = array();
        
    $user["ID"] = $ID;
        
    $user["Name"] = $name;
        
    $user["Surname"] = $surname;
        
    $user["Username"] = $username;
        
    $user["Password"] = $password;
        
    $user["Sesso"] = $sesso;
        
    $user["Eta"] = $eta;
        
    $user["Email"] = $email;
        
    $user["Citta"] = $citta;
        
    $user["Confirmed"] = 1;
        if(
    $ID == 0)
            
    $user["Confirmed"] = 0;
        
        
    $user["Newsletter"] = 0;
        if(
    $cal_nascita != 0)
        {
            
    $fsd split("/"$cal_nascita);
            
    $nascita mktime(000$fsd[1], $fsd[0], $fsd[2]);
        }
        
    $user["Nascita"] = $nascita;
        if(isset(
    $newsletter))
            
    $user["Newsletter"] = 1;
        
    $user["_explicitType"] = "remoteclasses.User";
        
    $user["IdGroup"] = $subscribers;
        
        if(isset(
    $_POST["captcha"])) // Captcha ----------------
        
    if($_SESSION["captcha"]==$_POST["captcha"])
        {
        echo 
    'CAPTHCA valida; si procede'
        
    $user $uc->Insert($user); // inserisco l'utente nel db e procedo con invio mail ecc ecc
        
    $lastId $user->ID;
        if(
    $lastId == 0)
        {
            
    $error "<span style='color: #ff0000'>[b]Attenzione![/b]</span> Il nickname '" $username "' o la mail '" $email "' sono già stato utilizzate ";
        }
        
        else
        {
            
    #metto in sessione l'utente
            
    $_SESSION["USER"] = $user;
            
            
    $destPath "../public/users/photos/" $username ".jpg";
            if(
    copy($_FILES['foto']['tmp_name'], $destPath))
            {
                
    ResizeImage($destPath$destPath808070true); 
            }
            
            if(
    $ID == 0)
            {
                
    $text =  getFileContent("mailtext.html");
                
    $link $site "/light.php?par1=" $lastId "&par2=" $user->SubscriptionDate;
                
                
    $finds = array("§name""§link""§username""§password");
                
    $repls = array($name$link$username$password);
                
    $text str_replace($finds$repls$text);
                
                
    $messaggio = new PHPmailer();
                
    $messaggio->SetLanguage("it""../phpmailer/language/");
                
    $messaggio->From "iscrizione@sito.it";
                
    $messaggio->FromName "Iscrizione sito Movida";
                
    $messaggio->Subject "Iscrizione al sito [url]www.sito.it[/url]";
                
    $messaggio->IsHTML(true);
                
    $messaggio->AddAddress($email);
                
    $messaggio->Body $text;

                if(!
    $messaggio->Send())
                {
                    
    //Header("Location: ringraziamenti.php");
                    
    die($messaggio->ErrorInfo);
                }
                else{
                    echo (
    "la captcha inserita è: $captcha !  il messaggio è stato inviato! Utente inserito in DB");
                }
            }
            else
            {
                    
    Header("Location: ringraziamenti.php?CMD=modify");
            }
          }
    }    
        
        } 
    // fine if captha
        // continuo col else della captha 
        
    else{
             if (
    $_SESSION['captcha']!=$_REQUEST['captcha']) //Ho provato a fare così per verificare se la Captcha è stata inserita o il campo è vuoto, ma nn va, non funzia
            
    {
                echo 
    'CAPTHCA non inserita! Ricompila il modulo inserendo la captcha corretta!';
            }
        echo 
    'CAPTHCA non valida; ignoro il testo immesso';
        }
    ?>

    Praticamente se lascio vuoto il campo, dopo il submit mi viene fuori la pagina pulita con tutti i campi vuoti, nel DB non scrive nulla e non invia la mail... ma non viene fuori nessun messaggio.

    Io ragazzi sono alle prime armi, sono sicuro di aver fatto davvero tanti errori in questo codice... potete aiutarmi a sistemare il tutto?


  2. #2
    Nessuno riesce a darmi qualche consiglio su come sistemare il mio codice?

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.