Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: mokoMonster en 25 Octubre 2009, 18:06 pm



Título: Ayuda con cookies please xD (Solucionado)
Publicado por: mokoMonster en 25 Octubre 2009, 18:06 pm
Buenas :D
Veran estoy tratando de hacer algo como el detectabot.php de este sitio xD
Es algo muy simple y de hecho lo estoy haciendo como pruebas solo para saber como hacerlo, posteriormente aplicarlo.
En mi codigo, consigo que el usuario meta el codigo del captcha y presione entrar, se inserta cookie e ingresa al sitio.
Pero lo que no se como hacer es para que cuando el usuario entre denuevo ya no le aparezca la pagina para insertar el captcha..
pense que podria ser algo asi, pero no estoy seguro.

Código:
if($_COOKIE['valor'] == true);
header("Location: index.php");
}else{
header("Location: ejemplo.php-adss");
como ven ?


####He modificado####
Lee la ultima respuesta porfavor.


Título: Re: Ayuda con cookies please xD
Publicado por: mokoMonster en 25 Octubre 2009, 18:59 pm
Ya supe como hacerlo xD
Encontre esto:

Código:
<?php
if(isset($_COOKIE['AboutVisit']))
{
$last = $_COOKIE['AboutVisit'];
echo "Welcome back! <br> You last visited on ". $last;
}
else
{
echo "Welcome to our site!";
}
?>

Gracias de todas formas :D


Título: Re: Ayuda con cookies please xD
Publicado por: WHK en 26 Octubre 2009, 04:56 am
lo que pasa esque las cookies guardan datos en formato string y tu intentabas establecer un valor booleano


Título: Re: Ayuda con cookies please xD
Publicado por: mokoMonster en 26 Octubre 2009, 06:29 am
me podrias explicar un poco mas acerca de eso?
xD
Saludos y Gracias:D


Título: Re: Ayuda con cookies please xD
Publicado por: DarkItachi en 26 Octubre 2009, 07:11 am
me podrias explicar un poco mas acerca de eso?
xD
Saludos y Gracias:D

Un booleano es un tipo de objeto que solo tiene dos valores, TRUE y FALSE

Lo que te esta diciendo WHK esque no puedes asignar TRUE o FALSE en un string, por eso si vas a intentar siguiendo así prueba a cambiar el true por una cadena "true" y false por una cadena "false" o puedes simplificarlo con "1" y "0" respectivamente.


Título: Re: Ayuda con cookies please xD
Publicado por: дٳŦ٭ en 26 Octubre 2009, 21:24 pm
me podrias explicar un poco mas acerca de eso?
xD
Saludos y Gracias:D

Un booleano es un tipo de objeto que solo tiene dos valores, TRUE y FALSE

Lo que te esta diciendo WHK esque no puedes asignar TRUE o FALSE en un string, por eso si vas a intentar siguiendo así prueba a cambiar el true por una cadena "true" y false por una cadena "false" o puedes simplificarlo con "1" y "0" respectivamente.

Un boleano es 1 o 0, no true o false... lo puedes utilizar como banderas pero el tipo de dato es numerico.


Título: Re: Ayuda con cookies please xD
Publicado por: WHK en 28 Octubre 2009, 05:19 am
de hecho son tres valores no dos,

0, 1 y valor nulo o sea nada que se considera como cero igual.

$x = '';
if(!$x){
 echo 'acá no hay nada';
}

true, 1, valor

lo que pasa esque en php el valor booleano o comparaciones booleanas también pueden incluir strings y decir si hay un valor, en ese caso se procesa automaticamente como si se utilizara return isset(trim($val)) y por eso puedes hacer cosas como estas:

if($_GET['string']){
 echo htmlspecialchars($_GET['string'], ENT_QUOTES);
}

en algunos lenguajes eso no se puede hacer.

De todas formas si puedes hacer comparaciones booleanas integrando strings y valores nulos pero lo que no puedes hacer es enviar valores booleanos a los strings porque no te funcionará o por lo menos no en php pero si en c++ por ejemplo  :P

algo similar sucede con un handle, en php son strings llamados resources que se asignan con un id numérico


Título: Re: Ayuda con cookies please xD
Publicado por: mokoMonster en 29 Octubre 2009, 01:51 am
Muchas Gracias por las respuestas anteriores.
:d
Para no publicar otro tema, voy a describir un problema que tengo con setcookie, este problema es reciente.

Tengo un dominio: ejemplo.ex.net y un subdominio bla.ejemplo.ex.net

A=ejemplo.ex.net
B=bla.ejemplo.ex.net

Cuando el usuario entra a A y tiene la cookie "AboutVisit" es redirigido al index.
Si no tiene cookie "AboutVisit" se dirige a antiddos.php, que pide un captcha y si es true te dirije al index, si no, te saca del sitio.
El index de A revisa si tienes cookie tambien, si no la tienes, antiddos.php.

Código:
antiddos.php@A

<?php
} else { //form is posted
  include("securimage.php");
  $img = new Securimage();
  $valid = $img->check($_POST['code']);
  $Month = 2592000 + time();
  if($valid == true) {
//Inserta cookie por 30 dias.
setcookie(AboutVisit, date("F jS - g:i a"), $Month);
     echo "Muchas Gracias.";
header("Location: index.php");
  } else {
     header("Location: http://ejemplo.ex.net-a.googlepages.com/");
  }
}

?>

Hasta aqui esto funciona perfectamente.

Cuando el usuario entra a B y tiene la cookie "mkmnstrCookie", deberia entrar a hell.php (un login).
Si no hay cookie "mkmnstrCookie" te lleba a antiddos.php
Pero, como (creo yo) que la cookie no se guarda, hell.php me redirige a antiddos.php.
Código:
antiddos.php@B

<?php
} else { //form is posted
  include("securimage.php");
  $img = new Securimage();
  $valid = $img->check($_POST['code']);
  $Month = 2592000 + time();
  if($valid == true) {
//Inserta cookie por 30 dias.
setcookie(mkmnstrCookie, date("F jS - g:i a"), $Month);
     echo "Muchas Gracias.";
header("Location: ../hell.php");
  } else {
     header("Location: http://bla.ejemplo.ex.net-a.googlepages.com/");
  }
}

?>


Este es el de hell.php
Código:
hell.php@B


<?php
if(!isset($_COOKIE['mkmnstrCookie']))
{
header("Location: anti/antiddos.php");
}
?>

Yo en realidad no veo cual es el problema.
Si ustedes lo ven o saben, porfavor, ayuda.
Saludos y muchas gracias

NOTA:  B en mi servidor esta guardado como ejemplo.ex.net/bla/ == bla.ejemplo.ex.net .