Gente de los foros de la gran web.
Ando con un problema con implementar securimage.
El securimage es un sistema de captcha , que al parecer se implementa muy rapido y con poco codigo.
http://www.phpcaptcha.org/documentation/quickstart/
EL problema es que en mi caso . Lo implemente en mi web de prueba en el servidor de prueba gratishost y funciono.
Cuando lo llevo a mi server oficial , no em funciona , es decir , su subo los archivos para testear si el server cumple los requerimientos pasa la prueba y funciona todo.
El problema que tengo es , que al parecer mi codigo no me esta comprobando si el codigo de imagen ingresado es correcto o no. Y al parecer la variable
captcha_code
Código:
<input type="text" name="captcha_code" size="10" maxlength="6" />
No se pasa por post , y al aprobe de muchas formas como.
<input type="text" name="'.$_POST['captcha_code'].'" size="10" maxlength="6" />
Recogerla con
$imagen = $_POST['captcha_code'];
pero nada. sigue sin funcionar.
Aver si alguien me da una mano , la verdad qeu los bots ya se me estar viniendo ensima y hace 3 dias que duermo pensando en este maldito codigo.
LEs dejo el codigo completo de el archivo register.php de mi web aver si alguien me quiere un poquito.
Código PHP:
<div id="register">
<?php
echo '<h1>'.MSG_register.'</h1>';
$website->include_language_definition("modulos/user");
include_once $_SERVER['DOCUMENT_ROOT'] . '/securimage/securimage.php';
$securimage = new Securimage();
if($website->get_config("allow_registration"))
{
if(!isset($_SESSION['xid'])){
$errors=array();
$user_added=false;
if(isset($_POST['suite_button']))// Verificacion y insercion de los datos
{
// Check the data
if(user_exist(addslashes($_POST['pseudo']))){
$errors[]=MSG_usertaken;
}
else{
$check_pseudo=eregi('[A-Za-z0-9]{3,}',$_POST['pseudo']);
if (!$check_pseudo || strlen($_POST['pseudo']) >50 )
$errors[]=MSG_pseudoinvalid." ". sprintf(MSG_atleastmax,3,50) ;
}
if($_POST['pass1']=="")
$errors[]= MSG_enterpassword;
if($_POST['pass1']!=$_POST['pass2'])
$errors[]=MSG_passerror;
if(mail_exist($_POST['email'])){
$errors[]= MSG_mailused;
}
else{
$check_mail=eregi('^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*$',$_POST['email']);
if (!$check_mail)
$errors[]=MSG_notvalidemail;
}
if(strlen($_POST['signature'])>150)
$errors[]=MSG_sigtoolong;
if($_POST['avatar']!="none.gif")
$avatar="avatar_base/".$_POST['avatar'];
else
$avatar="";
if(count($errors)!=0){
echo'<div class="cadre">';
echo'<h2>'.MSG_ERRORS.'</h2>';
echo'<ul>';
for($i=0;$i<sizeof($errors);$i++)
{
echo "<li>". $errors[$i]."</li>";
}
echo'</ul>';
echo'</div>';
}
if ($securimage->check($_POST['captcha_code']) == false) {
// the code was incorrect
// handle the error accordingly with your other error checking
echo'<div class="cadre">';
echo'<h2>'.MSG_ERRORS.'</h2>';
// or you can do something really basic like this
die('Codigo De Seguridad Incorrecto <a href="javascript:history.back(1)">Intenta Nuevamente</a>');
echo'</div>';
}
else{
$user_added=true;
$email2=$_POST['email'];
$pseudo2=$_POST['pseudo'];
$pass12=$_POST['pass1'];
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
//dirección del remitente
$headers .= 'From: Nuevo Usuario xxxxxx <[email protected]>' . "\r\n";
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: [email protected]\r\n";
mail($email2, "Nuevo Usuario xxxxx", "Gracias Por registrarse en www.xxxx.com.ar<br>Sus datos De usuario en nuestra web son <br> Usuario:$pseudo2 , Password:$pass12 <br>Puede cambiar sus datos desde la opcion Mi cuenta > Editar Mi cuenta <br> Guarde Este Correo <br> Cualquier consulta Puede Hacerla desde el contacto de la web. ", $headers);
$sql="INSERT INTO users (pseudo,pass_crypt,email,avatar,signature,register_date,theme) VALUES ('".addslashes($_POST['pseudo'])."','".md5($_POST['pass1'])."','".$_POST['email']."','".$avatar."','".addslashes($_POST['signature'])."','".time()."','".$_POST['theme']."')";
$req=mysql_query($sql) or die('SQL ERROR');
// enviamos el email con los datos del usuario
redirection("index.php",5,"success",sprintf(MSG_welcomeuser,"<b>".htmlentities($_POST['pseudo'])."</b>") );
}
}
if(!$user_added){
echo'<form name="register_form" method="post" action="?p=register" enctype="multipart/form-data">';//
echo'<table >
<tr>
<th colspan="2">'.MSG_userinfo.'</th>
</tr>
<tr>
<td class="dark">'.MSG_pseudo.'</td>
<td class="bright"><input type="text" name="pseudo" ';
if(isset($_POST['pseudo']))
echo 'value="'.$_POST['pseudo'].'"';
echo'/>* '.sprintf(MSG_atleastmax,3,50).'</td>
</tr>
<tr>
<td class="dark">'.MSG_password.'</td>
<td class="bright"><input type="password" name="pass1" ';
if(isset($_POST['pass1']))
echo 'value="'.$_POST['pass1'].'"';
echo' />*</td>
</tr>
<tr>
<td class="dark">'.MSG_passwordverif.'</td>
<td class="bright"><input type="password" name="pass2" ';
if(isset($_POST['pass2']))
echo 'value="'.$_POST['pass2'].'"';
echo' />*</td>
</tr>
<tr>
<td class="dark">'.MSG_mail.'</td>
<td class="bright"><input type="text" name="email" ';
if(isset($_POST['email']))
echo 'value="'.$_POST['email'].'"';
echo' />*</td>
</tr>
<tr>
<td class="dark">'.MSG_signature.'</td>
<td class="bright"><textarea name="signature" cols="30" rows="5">';
if(isset($_POST['signature']))
echo $_POST['signature'];
echo'</textarea><br /> ('.MSG_characteresmax.' - NO HTML)</td>
</tr>
<tr>
<td class="dark"><b>'.MSG_theme.'</b></td>
<td class="bright">';
echo'<select name="theme" >';
$sql="SELECT id,name FROM themes WHERE activated=1 order by id asc";
$req=mysql_query($sql);
while($data=mysql_fetch_array($req))
{
echo'<option value="'.$data['id'].'" '.$s.'>'.$data['name'].'</option>';
}
echo"</select>";
echo'</td>
<tr>
<td class="dark">'.MSG_avatar.'</td>
<td class="bright">';
echo'<select name="avatar" onChange ="imgDepart1.src=\'avatars/avatar_base/\' + form.avatar.options[form.avatar.selectedIndex].value;">';
$dossier = opendir ("avatars/avatar_base/");
$i = 0;
if(isset($_POST['avatar']) && $_POST['avatar']=="none.gif")
{
$fichier1="none.gif";
$s2="selected";
}
while ($fichier = readdir ($dossier)){
if ($fichier != "." && $fichier != ".." && $fichier != "index.html" && $fichier != "avatar_base_temp" && $fichier != "Thumbs.db" && $fichier != "none.gif") {
if(!isset($fichier1)) $fichier1=$fichier;
//$fichier = substr($fichier, 0, strlen($fichier)-4);
if(isset($_POST['avatar']) && $_POST['avatar']==$fichier ){
$s="selected";
$fichier1=$fichier;
}
else{
if(!isset($fichier1)) $fichier1=$fichier;
$s="";
}
echo '<option value="'.$fichier.'" '.$s.'>'.$fichier.'</option>';
$i = $i + 1;
}
}
closedir ($dossier);
if(!isset($s2))$s2="";
echo'<option value="none.gif" '.$s2.'>'.MSG_noavatar.'</option>';
echo"</select>";
echo'<img name="imgDepart1" src="avatars/avatar_base/'.$fichier1.'" alt="'.MSG_noavatar.'" border="1" style="vertical-align:top">';
echo'</td>
</tr>';
echo'
<tr>
<td class="dark">Codigo de Seguridad</td>
<td class="bright">';
echo '<img id="captcha" src="/securimage/securimageshow.php" alt="CAPTCHA Image" /><br>Ingresar Codigo Imagen:<input type="text" name="'.$_POST['captcha_code'].'" size="10" maxlength="6" /><br>';
//echo '<a href="#" onclick="document.getElementById('captcha').src = "/securimage/securimage_show.php?"+Math.random();" >Reload Image1</a>';
echo'</td>
</tr>';
echo '</table>';
echo'<p><input type="submit" value="'.MSG_subscribe.'" name="suite_button"></p></form>';
}
}
else{
redirection("index.php",3,"msgerror",MSG_alreadyconnected);
}
}// Fin del registro
else
echo'<p class="msgerror">'.MSG_registerclose.'</p>';
?>
</div>
Bueno despues de ver el video de como escribir un buen post les plantie un buen proplema
jajaj
Salu2