Captcha con seguridad Erronea:

Iniciado por z3nth10n, 25 Febrero 2013, 17:51 PM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

Hola amigos, pues bueno, hace ya un tiempecillo (3 dias) empecé a prograamar una página web... Y bueno, pues le puse una captcha... y bien pues:

http://blog.unijimpe.net/crear-captcha-con-php/

De ahí hice copia y pega tremendos, pero cuando intenté yo mismo poner algo de mi parte pues la cagué en el sentido de que sí funciona, pero no tiene la seguridad.

Mi web es esta: http://sub4sub.22web.org/

Y bueno, pues lo que intente fue sencillo...

Con este codigo hice un archivo llamado test.php:

Código (php) [Seleccionar]

session_start();
if ($_POST['action'] == "checkdata") {
   if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {
       echo "Bienvenido";
   } else {
       echo "Inténtalo nuevamente";
   }
   exit;
}


Y luego cambie esto por esto:

Código (php) [Seleccionar]

<?php
session_start
();
if (
$_POST['action'] == "checkdata") {
if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {
header('Location: privada.php');
} else {
?>

<script type="text/javascript">
<!--
window.alert('El codigo introducido es erroneo.');
history.go(-1);
//-->
</script>
<?php
}
exit;
}
?>



Y luego en privada.php:


<?php
 session_start
(); 
require 
'test.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
// .......


Pero ni chekea nada ni nada...




Probé con este código, pero cada vez que meto el codigo me redirecciona a la index:


<?php

session_start
();
if (!isset(
$_SESSION['tmptxt']) // Comprobamos que estemos Logueados
    
|| $_SESSION['tmptxt'] !== true) { // Si no estamos Logueados...
    
header('Location: index.php'); // Nos lleva a el index para Entrar.
    
exit;
}

if (
$_POST['action'] == "checkdata") {

if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {

header('Location: privada.php');

} else {

?>


<script type="text/javascript">

<!--

window.alert('El codigo introducido es erroneo.');

history.go(-1);

//-->

</script>

<?php

}

exit;

}

?>



Un saludo...




SOY DIOS, HE ARREGLADO ESTO YO SOLO... No en realidad, solamente lo arregle concentrandome demasiado... :P

Interesados hablad por Discord.

kalvinman

Antes de hacer la validacion if verifica el valor y la existencia de la variable de sesion

if(isset($_SESSION['tmptxt']) && !empty($_SESSION['tmptxt'])) {}

Y tambien te seria util imprimir el valor de la variable en pantalla para ver si esta pasando correctamente antes deasignar la redireccion, y por cierto, es mejor realizar redirecciones en PHP ya que si haces las redirecciones por javascript pueden anularse en el navegador.

z3nth10n

Cita de: kalvinman en  1 Marzo 2013, 21:40 PM
Antes de hacer la validacion if verifica el valor y la existencia de la variable de sesion

if(isset($_SESSION['tmptxt']) && !empty($_SESSION['tmptxt'])) {}

Y tambien te seria util imprimir el valor de la variable en pantalla para ver si esta pasando correctamente antes deasignar la redireccion, y por cierto, es mejor realizar redirecciones en PHP ya que si haces las redirecciones por javascript pueden anularse en el navegador.

Ya lo he arreglado lo he dicho.  :-\

Interesados hablad por Discord.