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.
if($_COOKIE['valor'] == true);
header("Location: index.php");
}else{
header("Location: ejemplo.php-adss");
como ven ?
####He modificado####
Lee la ultima respuesta porfavor.
Ya supe como hacerlo xD
Encontre esto:
<?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
lo que pasa esque las cookies guardan datos en formato string y tu intentabas establecer un valor booleano
me podrias explicar un poco mas acerca de eso?
xD
Saludos y Gracias:D
Cita de: mokoMonster en 26 Octubre 2009, 06:29 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.
Cita de: DarkItachi en 26 Octubre 2009, 07:11 AM
Cita de: mokoMonster en 26 Octubre 2009, 06:29 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.
Un boleano es 1 o 0, no true o false... lo puedes utilizar como banderas pero el tipo de dato es numerico.
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
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.
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.
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
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 .