Hola a todos ( y felices fiestas
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
),
Estoy terminando un formualrio de registro en mi proyecto y quiero incorporar un captcha que enviará un correo electrónico al usuario para completar el registro y asi evitar en lo posible los registros indeseados.
El captcha que estoy usando es el de securimage que parece ser bastante bueno, he adaptado el formulario inicial a mis requisitos para incluirlo en el mio (eliminando campos que ya tengo) pero tengo un problema con las sesiones ¿que raro no
![Patada](http://static.forosdelweb.com/fdwtheme/images/smilies/footinmouth.png)
?
Os adjunto los codigos del formulario:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<meta http-equiv="Content-Type"content=" text/html;charset=utf-8">
<!--onsubmit="this.submit(); this.reset(); return false"> -->
<form method="post" action="../DBQuery/RegistroPersona.php"
enctype="multipart/form-data">
<form>
<!--Tabla Personas de la Base de datos-->
<fieldset>
<legend>Datos Personales</legend>
<label for="nombre">Nombre:</label><input type="text" name="nombre"
id="nombre"size="40"/><br/><br/>
<label for="apellido1">Apellido 1º:</label><input type="text"
name="apellido1" id="apellido1"/>
<label for="apellido2">Apellido 2º:</label><input type="text"
name="apellido2" id="apellido2"/><br>
<label for="imagen">Foto:<input type="file" name="imagen" size="40"><br>
</fieldset>
<fieldset>
<legend>Contraseña</legend>
<p>Indique aquí su usuario y su contraseña por favor. Guárdelos en un lugar
que recuerde por si los olvida o los pierde</p>
<label for="usuario">Usuario:</label><input type="text" name="usuario"
id="usuario"/><br/>
<label for="clave">Contraseña:</label><input type="password" name="clave"
id="clave"/><br/>
<label for="clave2">Por favor repita la contraseña:</label><input
type="password" name="clave2" id="clave2"/><br/>
<label for="preguntaClave">Pregunta secreta:</label><input type="text"
name="preguntaClave" id="preguntaClave" size="80"/><br/><br/>
<label for="respuestaClave">Respuesta secreta:</label><input type="text"
name="respuestaClave" id="respuestaClave" size="80"/><br/><br/>
<label for="mailPersona">Correo electrónico:</label><input type="text"
name="mailPersona" id="mailPersona" size="80"/><br/><br/>
</html>
<?php
// Captcha
include_once('securimage/nmbscaptcha.php');
/*Iniciamos sesion. Como no hay ninguna sesion iniciada, se crea, con un
session_i alfanumérico aleatorio */
session_start ();
/*Se indican las variables de inicio de sesion*/
session_register ($usuario,$clave);
?>
<html>
<!-- Se crea un cammpo oculto para enviar la constante de sesion id -->
<input type="hidden" name="<?php echo (session_name());?>" value="
</html>
<?php
echo (session_id());?>">
?>
<html>
<!--Envio los datos-->
<input type="submit"value="Enviar" />
<input type="reset"value="Borrar" />
</fieldset>
<!--Reseteo el Formulario-->
<body onload ="document.myform.reset()">
</form>
</html>
El captcha modificado:
Código PHP:
<?php
/**
* Project: Securimage: A PHP class for creating and managing form CAPTCHA images<br />
* File:
securimage.php<br />
* URL: www.phpcaptcha.org
*/
session_start();
// Start the session where the code will be stored.
?>
<html>
<body>
<?php
if (empty($_POST)) { ?>
<div style="width: 430px; float: left; height: 90px">
<img id="siimage" align="left" style="padding-right: 5px; border: 0" src="securimage_show.php?sid=
<?php
echo md5(time()) ?>" />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="19" height="19"
id="SecurImage_as3" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="securimage_play.swf?
audio=securimage_play.php&bgColor1=#777&bgColor2=#fff&iconColor=#000&roundedCorner=5" />
<param
name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="securimage_play.swf?audio=securimage_play.php&bgColor1=#777&bgColor2=#fff&iconColor=#000&roundedCorner=5"
quality="high" bgcolor="#ffffff" width="19" height="19" name="SecurImage_as3" align="middle"
allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
<br />
<!-- pass a session id to the query string of the script to prevent ie caching -->
<a tabindex="-1" style="border-style: none" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src
= 'securimage_show.php?sid=' + Math.random(); return false">
<img src="images/refresh.gif" alt="Reload Image" border="0" onclick="this.blur()" align="bottom" /></a>
</div>
<div
style="clear: both">
</div>Código:<br />
<!-- NOTE: the "name" attribute is "code" so that $img->check($_POST['code']) will check the submitted form field -->
<form method="POST">
<input type="text" name="code" size="12" /><br /><br />
</form>
<?php
}
else { //form is posted
include("securimage.php");
$img = new Securimage();
$valid = $img->check($_POST['code']);
if($valid == true) {
echo "<center>Thanks, you entered the correct code.<br />Click <a href=\"{$_SERVER
['PHP_SELF']}\">here</a> to go back.</center>";
} else {
echo "<center>Sorry, the code you entered was invalid. <a
href=\"javascript:history.go(-1)\">Go back</a> to try again.</center>";
}
}
?>
</body>
</html>
y el error que me devuelve todo ello:
Cita: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\rgs_gral_cons.php:4) in C:\xampp\htdocs\phpBits\BodyForm_Txt_RGTCon.php on line 43
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\rgs_gral_cons.php:4) in C:\xampp\htdocs\phpBits\BodyForm_Txt_RGTCon.php on line 43
?>
¿Alguien puede indicarme que es lo que estoy haciendo mal y darme una solución?
NO entiendo lo que me indica el error. De nuevo mi ignorancia ancestral.
![En dos](http://static.forosdelweb.com/fdwtheme/images/smilies/partido.png)
![enojado](http://static.forosdelweb.com/fdwtheme/images/smilies/enojado.png)
Muchas gracias por adelantado y os deseo lo mejor para el próximo año (y el resto de viestra vida
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
)
J.