Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 45
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246

    dove lo metto ?captcha?

    Buongiorno a tutti avrei un problema con php riguardo l'inserimento del captcha in un modulo per mail, ho scaricato già tutto ma dalle varie prove che ho fatto non sono riuscito ad ottenere qualcosa che funzioni, spero di non disturbare eccessivamente ed incontrare qualche benintenzionato a darmi una mano.
    Il form mail è composto di due file nel quale vorrei inserire lo script captcha, per quanto già ne so andrebbe inserito nel punto in cui vorrei fosse visibile ma non mi funziona, potreste dare un'occhio al codice per favore

    questa è la prima pagina del modulo per mail: send.php


    Codice PHP:
    <?php $receiverMail    "your@email.com";  $name        ltrim(rtrim(strip_tags(stripslashes($_POST['name'])))); $email        ltrim(rtrim(strip_tags(stripslashes($_POST['email'])))); $subject    ltrim(rtrim(strip_tags(stripslashes($_POST['subject'])))); $msg        ltrim(rtrim(strip_tags($_POST['msg'])));  $ip        getenv("REMOTE_ADDR"); $msgformat    "From: $name ($ip)\nEmail: $email\n\n$msg";  // VALIDATION if(empty($name) || empty($email) || empty($subject) || empty($msg)) {     echo "<h3>The email was not sent</h3>

    Please fill all the required fields</p>"; } elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {     echo "<h3>The email was not sent</h3>

    The email address is invalid</p>"; } else {     mail($receiverMail$subject$msgformat, "From$name <$email>");     echo "<h3>The email has been sent!</h3>

    I will get back to you as soon as possible.</p>"; } ?>

    seconda pagina del modulo mail: contact.php


    Codice PHP:
    <form method="post" action="send.php"Name:
    <
    input name="name" type="text" size="30" maxlength="40" />

     
    Email:
    <
    input name="email" type="text" size="30" maxlength="40" />

     
    Subject:
    <
    input name="subject" type="text" size="30" maxlength="40" />

     
    Message:
    <
    textarea name="msg" cols="50" rows="6"></textarea>

     <
    input type="reset" value="Reset" /><input type="submit" value="Send" /> </form

    questo è lo script per il captcha (captcha.php)





    Codice PHP:
    < ?php header("Content-type: image/png");  $x 200$y 75$code substr($_GET['code'],0,9); $space $x / (strlen($code)+1);    $img imagecreatetruecolor($x,$y);    $bg imagecolorallocate($img,255,255,255); $border imagecolorallocate($img,0,0,0); $colors[] = imagecolorallocate($img,128,64,192); $colors[] = imagecolorallocate($img,192,64,128); $colors[] = imagecolorallocate($img,108,192,64);    imagefilledrectangle($img,1,1,$x-2,$y-2,$bg); imagerectangle($img,0,0,$x-1,$y-2,$border);    for ($i=0$istrlen ($code); $i++) { $color $colors[$i count($colors)]; imagettftext($img,28+rand(0,8),-20+rand(0,40),($i+0.3)*$space,50+rand(0,10),$color,'alba.ttf',$code{$i}); }    for($i=0;$i<400;$i++) { $x1 rand(3,$x-3); $y1 rand(3,$y-3); $x2 $x1-2-rand(0,8); $y2 $y1-2-rand(0,8); imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]); }    imagepng($img); ?> 
    ringrazio anticipatamente chi mi riuscisse ad effettuare il copia/incolla nella maniera corretta

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    non capisco perchè la formattazione del codice php abbia scritto il codice in questa maniera!!spero sia legibile ugualmente

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    mi date qualche indicazione per proseguire'

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Dunque...
    il tuo primo codice riceve il contenuto della form e lo invia tramite email
    il secondo è la form
    il terzo genera un'immagine tipo captcha

    Il fatto è che questa immagine dovresti utilizzarla.
    Ti consiglio
    1. aggiungi al terzo script una parte che salva in $_SESSION il valore del captcha
    2. inserisci l'immagine captcha nel form (esattamente come una qualunque immagine, ma mettendo come url quello dello script php) e un campo text in cui l'utente deve inserire il valore
    3. inserisci un controllo di corrispondenza tra il valore salvato nella sessione (lo fa il terzo script quando lo richiami con il secondo come immagine) e il valore inviato dal form

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    possiamo anche fare un passo alla volta che non conosco questo linguaggio cosa significa aggiungi al terzo script una parte che salva in $_SESSION il valore del captchalinguaggio...e :master:
    come si fa ad
    inserisci l'immagine captcha nel form (esattamente come una qualunque immagine, ma mettendo come url quello

    e come si fa ad inserire un controllo di corrispondenza tra il valore salvato nella sessione (lo fa il terzo script quando lo richiami con il secondo come immagine) e il valore inviato dal form dello script php) e un campo text in cui l'utente deve inserire il valore.....
    forse mi conviene trovare uno script captcha più semplice da integrare nella pagina contact altrimenti per una cosa così complicata non mi aiuta nessuno

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    c'è qualcuno che vuole aitarmi

  7. #7
    posta il codice in modo coretto e vedo di darti una mano...

    nn mettere tutto su un rigo...

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    ecco il codice spero venga scritto bene (send.php)

    <?php
    $receiverMail = "your@email.com";

    $name = ltrim(rtrim(strip_tags(stripslashes($_POST['name']))));
    $email = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $subject = ltrim(rtrim(strip_tags(stripslashes($_POST['subject']))));
    $msg = ltrim(rtrim(strip_tags($_POST['msg'])));

    $ip = getenv("REMOTE_ADDR");
    $msgformat = "From: $name ($ip)\nEmail: $email\n\n$msg";

    // VALIDATION
    if(empty($name) || empty($email) || empty($subject) || empty($msg)) {
    echo "<h3>The email was not sent</h3>

    Please fill all the required fields</p>";
    }
    elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
    echo "<h3>The email was not sent</h3>

    The email address is invalid</p>";
    }
    else {
    mail($receiverMail, $subject, $msgformat, "From: $name <$email>");
    echo "<h3>The email has been sent!</h3>

    I will get back to you as soon as possible.</p>"; }
    ?>

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    contact.php

    <form method="post" action="send.php"> Name:
    <input name="name" type="text" size="30" maxlength="40" />

    Email:
    <input name="email" type="text" size="30" maxlength="40" />

    Subject:
    <input name="subject" type="text" size="30" maxlength="40" />

    Message:
    <textarea name="msg" cols="50" rows="6"></textarea>

    <input type="reset" value="Reset" /><input type="submit" value="Send" /> </form>

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    246
    captcha.php


    < ?php header("Content-type: image/png");
    $x = 200; $y = 75;
    $code = substr($_GET['code'],0,9);
    $space = $x / (strlen($code)+1);
    $img = imagecreatetruecolor($x,$y);
    $bg = imagecolorallocate($img,255,255,255);
    $border = imagecolorallocate($img,0,0,0);
    $colors[] = imagecolorallocate($img,128,64,192);
    $colors[] = imagecolorallocate($img,192,64,128);
    $colors[] = imagecolorallocate($img,108,192,64);
    imagefilledrectangle($img,1,1,$x-2,$y-2,$bg);
    imagerectangle($img,0,0,$x-1,$y-2,$border);
    for ($i=0; $i< strlen ($code);
    $i++) { $color = $colors[$i % count($colors)];
    imagettftext($img,28+rand(0,8),-20+rand(0,40),($i+0.3)*$space,50+rand(0,10),$color ,'alba.ttf',$code{$i});
    } for($i=0;$i<400;$i++) { $x1 = rand(3,$x-3);
    $y1 = rand(3,$y-3);
    $x2 = $x1-2-rand(0,8);
    $y2 = $y1-2-rand(0,8);
    imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]);
    } imagepng($img);
    ?>

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.