modulo invio mai:l non riesco ad integrare captcha

kain

Utente Attivo
14 Apr 2010
67
0
0
Ciao vorrei implementare questo form per mail con uno script antispam che abbia il captcha, purtroppo fino ad ora non sono riuscito a farlo da solo potete aiutarmi? vi invio gli script

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

PHP:
<?php 
$receiverMail****=*"[email protected]"; 

$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><p>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><p>The*email*address*is*invalid</p>"; 
} 
else*{ 
****mail($receiverMail,*$subject,*$msgformat,*"From:*$name*<$email>"); 
****echo*"<h3>The*email*has*been*sent!</h3><p>I*will*get*back*to*you*as*soon*as*possible.</p>";*} 
?>

seconda pagina del modulo mail: contact.php

HTML:
<form*method="post"*action="send.php"> 
Name:<br*/><input*name="name"*type="text"*size="30"*maxlength="40"*/><br*/><br*/> 
Email:<br*/><input*name="email"*type="text"*size="30"*maxlength="40"*/><br*/><br*/> 
Subject:<br*/><input*name="subject"*type="text"*size="30"*maxlength="40"*/><br*/><br*/> 
Message:<br*/><textarea*name="msg"*cols="50"*rows="6"></textarea><br*/><br*/> 
<input*type="reset"*value="Reset"*/>&nbsp;<input*type="submit"*value="Send"*/> 
</form>*

di sistema captcha vorrei inserire quello in questa pagina che dalla descrizione mi sembra completo ma anche complesso:

http://www.pcinformatica.eu/2009/05/28/programmazione/php/creare-captcha-in-php/
oppure questo

http://www.trackback.it/articolo/creare-un-semplice-sistema-captcha-in-php/317/

potete aiutarmi a risolvere questo problema??
 
Ciao Ciro avevo gia letto questo articolo ed anche altri dove si fornivano servizi simili ma non voglio fare alcuna iscrizione, o appgiarmi a sistemi che impongano link esterni o marchi pubblicitari, vorrei solo integrare uno script funzionale nel modulo che ho trovato, potete aiutarmi?
grazie e scusate il mio tirare dritto verso le idee che mi vengono sono un mulo
 
grazie Eliox lo vedo subito spero che l'articolo sia scritto per venire incontro alle mie ristrette capcità in php...
 
potete spiegarmi come procedere, ho fatto un po' di prove ma ammetto che in php mi muovo a casaccio!!!!
 
ho inserito come suggerito in questa pagina del forum http://forum.mrwebmaster.it/php/17425-inserire-captcha.html il codice:
PHP:
<?
//indichiamo il percorso all'immagine
$img = imagecreatefrompng("./img.png");

//inseriamo degli elementi grafici all'interno del file
$color = imagecolorallocate($img, 0, 0, 0);
$linea = imagecolorallocate($img,239,239,239);
imageline($img,0,0,49,39,$linea);
imageline($img,40,0,64,29,$linea);

//scriviamo la stringa nell'immagine
imagestring($img, 5, 20, 10, $str, $color);

//salviamo la stringa in sessione
$_SESSION['control'] = sha1($str);

//mostriamo a video l'immagine
header("Content-type: image/png");
imagepng($img);
?>

preso dalla pagina https://www.mrw.it/php/articoli/anti-spam-captcha-php_712_4.html

nella pagina contact.php al punto in cui volevo il captcha e l'immagine img.png ma richiamando la pagina viene fuori un messaggio ch3e dice: l'immagine "indirizzo.........contact.php" non può essere caricata perchè contiene degli errori ... dunque l'intera pagina con il modulo viene considerata un'immagine!!! non so come procedere... c'è altro che devo aggiungere?
nelle pagine precedenti dell'articolo c'erano altre stringhe di codice che se vanno inserite non so dove metterle....potete darmi altre indicazioni per andare avanti ?!?
 
non trovo su questo forum una discussione simile in cui il problema sia stato risolto avete altre risorse da segnalare?
 
<form method="post" action="send.php">
<p>Name:<br />
<input name="name" type="text" size="30" maxlength="40" />
<br />
<br />
Email:<br />
<input name="email" type="text" size="30" maxlength="40" />
<br />
<br />
Subject:<br />
<input name="subject" type="text" size="30" maxlength="40" />
<br />
<br />
Message:<br />
<textarea name="msg" cols="50" rows="6"></textarea>
</p>
<p><!--captcha--><?
//indichiamo il percorso all'immagine
$img = imagecreatefrompng("./img.png");

//inseriamo degli elementi grafici all'interno del file
$color = imagecolorallocate($img, 0, 0, 0);
$linea = imagecolorallocate($img,239,239,239);
imageline($img,0,0,49,39,$linea);
imageline($img,40,0,64,29,$linea);

//scriviamo la stringa nell'immagine
imagestring($img, 5, 20, 10, $str, $color);

//salviamo la stringa in sessione
$_SESSION['control'] = sha1($str);

//mostriamo a video l'immagine
header("Content-type: image/png");
imagepng($img);
?><!--/captcha--><br />
<br />
<input type="reset" value="Reset" />
&nbsp;
<input type="submit" value="Send" />
</p>
</form>
 
Ma l'hai letto almeno l'articolo oppure hai solamente copiato ed incollato il codice? Te lo chiedo perchè io ho fatto una prova e a me funziona perfettamente. E' ovvio che ti serve anche il codice presente nella pagina precedente e mi sembra spiegato chiaramente. Inoltre dici di aver inserito l'immagine "img.png". Cosa hai inserito di preciso??? Nella cartella contenente lo script, oppure in una differente modificando il path, devi inserire una immagine a piacere chiamata img.png sulla quale verranno tracciare delle linee e verrà visualizzata la stringa casuale generata dal codice.
 
...si l'ho letto l'articolo ma non so dove mettere le altre parti del codice, nel forum ho trovato una discussione sullo stesso argomento che rimadava al solito articolo ed ho inserito il codice della pagina a cui faceva riferimento il link, non le parti precedenti perchè non so dove metterle, faccio un'altra prova e posto il codice magari le cose vanno meglio...in quanto all'imagine .png l'ho inserita nella cartella dello script (almeno questo sono riuscito a farlo)
 
è corretto o ancora navigo nell'errore??
PHP:
<form method="post" action="send.php">
  <p>Name:<br />
    <input name="name" type="text" size="30" maxlength="40" />
    <br />
    <br />
Email:<br />
<input name="email" type="text" size="30" maxlength="40" />
<br />
<br />
Subject:<br />
<input name="subject" type="text" size="30" maxlength="40" />
<br />
<br />
Message:<br />
<textarea name="msg" cols="50" rows="6"></textarea>
</p>
  <p><!--captcha--> <?
//facciamo partire la sessione
session_start();

//creaiamo la stringa random e criptiamola
$crypt = sha1(microtime() * mktime());

//preleviamo una porzione della stringa
$str = substr($crypt,0,4);
?><?
//indichiamo il percorso all'immagine
$img = imagecreatefrompng("./img.png");

//inseriamo degli elementi grafici all'interno del file
$color = imagecolorallocate($img, 0, 0, 0);
$linea = imagecolorallocate($img,239,239,239);
imageline($img,0,0,49,39,$linea);
imageline($img,40,0,64,29,$linea);

//scriviamo la stringa nell'immagine
imagestring($img, 5, 20, 10, $str, $color);

//salviamo la stringa in sessione
$_SESSION['control'] = sha1($str);

//mostriamo a video l'immagine
header("Content-type: image/png");
imagepng($img);
?><?
session_start();
if(sha1($_POST['stringa']) != $_SESSION['control'])
{
  die("Sei forse uno spam robot?");
}else{
  echo 'Ciao Essere Umano!';
}
?><!--/captcha--><br />
    <br />
    <input type="reset" value="Reset" />
&nbsp;
<input type="submit" value="Send" />
    </p>
</form>
 
ancora nonfunziona l'errore che mi da è lo stesso di prima mi dite come devo mettere il captcha, so che per molti di voi sono sciocchezze ma stando io alle prime armi non è cosa da nulla
 
session_start() deve essere inserito prima di ogni altro output, quindi prima di qualsiasi tag HTML
 

Discussioni simili