Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - kekoman

Páginas: 1 [2] 3 4 ... 12
16
PHP / Secure Sessions
« en: 10 de Junio de 2009, 22:26:11 pm »
Hola phper@s, cuanto tiempo jeje :P
Hace poco se me ocurio una idea de crear un sistema de sesiones que se guardan en una base de datos, he pensado que asi el usuario no puede modificar el contenido de la misma y el sistema es mas seguro. La sesiones que vienen por defecto en PHP son las mas seguras pero caducan cuando el usuario cierra el navegador, creo es una de las razones por la que he creado esta funcion :) La funcion se llama Secure Sessions
Como funciona?
1. Se crea un cookie en la maquina del cliente con el contenido de un código aleatorio. por ejemplo 12345
3. Se inserta en la base de datos una nueva entrada con el codigo aleatorio y con el contenido de la sesión (por ej: usuario y contraseña)
2. El algoritmo extrae el código de la cookie y lo busca en la base de datos mysql, si lo encuentra guarda el contenido de la sesion en una variable llamada $_SECURE_SESSION

Jeje, para desarollar mas el proyecto primero empezamos con la estructura de la base de datos:
Estructura de la base de datos
Los campos que usara la funcion:
ip: La ip del cliente, creo que no hace falta dar mas detalles
cookie: El nombre del cookie que tiene guardado el usuario en su pc
contain: El contenido de la sesion( usuario, contraseña, un codigo de captcha,etc...)
contain_hash: Es el hash del contenido de la sesion, sirve para no  tener que cargar en una variable toda la sesion, mas adelante veremos lo util que es  :)
code: Este es el codigo que se guarda en la cookie, sirve para identificar la sesion en la base de datos.
expire: Es la fecha en formato time cuando caduca la sesion  :)
Uso de Secure Sessions
1. Primero debemos ejecutar la funcion ssession_start, es obligatorio
ssession_start('localhost', 'root', 'password', 'secure_session', 1, 0);
el ultimo y el penultimo parametro son las variables sslimit y sskeeprior
sslimit: el limite de sesiones iguales, por ejemplo para evitar que un usuario inicie sesion de 2 pcs distintos
sskeeprior: en caso de que se supere el sslimit, si esta en 0  se borra la sesion anterior, si esta en 1 no deja crear una sesion nueva con el mismo contenido :P En la proxima version voy a mejorar esta caracteristica :)
2. Definir una nueva sesion
ssession_new('hispaflog_login', 'id=432;password=12345', time()+3600);
3. Extraer una sesion
ssession_call('hispaflog_login');
echo $_SECURE_SESSION['hispaflog_login'];

4. Eliminar una sesion
ssession_kill('hispaflog_login');

Bueno hasta aqui :P, pronto voy a sacar el codigo completo explicado linea a linea  :) para que otros programadores entiendan el codigo y colaboren con el proyecto  :P
Aqui el codigo:
Código: [Seleccionar]
function ssession_start($host, $user, $password, $db, $table='ssessions', $sstlimit=5, $sskeeprior=0) {

if(!@mysql_connect($host, $user, $password)) { //Se comprueba si la conexion a la base de datos mysql es correcta
trigger_error('La conexion a la base de datos mysql falla',E_USER_WARNING); //sino nos muestra un error
} else if(!@mysql_select_db($db)) {
trigger_error('No se puede seleccionar la base de datos <b>'.$db.'</b>',E_USER_WARNING); //Ahora comprobamos si se puede seleccionar la base de datos, sino nos muestra error
}

// ejecutamos todas estas funciones:
ssession_tools($table, $sslimit, $sskeeprior); //Esta funcion sirve para definir variables necesarias para el funcionamiento de nuestro codigo
ssession_check(); //Esta funcion comprueba errores, comprueba si la sesion ha caducado, etc...
ssession_clean(); //Esta funcion hace un poco de limpieza en la base de datos
}



function ssession_tools($tablename, $sslimit, $sskeeprior) {
global $ssesconfig;
global $minissdfexpvar;
$ssesconfig = array("table" => $tablename, "defaultexpire" => "600", "sslimit" => $sslimit, "sskeeprior" => $sskeeprior,); //se define la variable $ssesconfig, como vemos esta variable define algunos valores como el nombre de la tabla y el tiempo por defecto en la cual una sesion caduca

}
function ssession_check() {
global $ssesconfig;
global $ssession_check_mysql_error;
$sql = mysql_query("SELECT * FROM ".$ssesconfig['table']); //se comprueba que la tabla existe
if(!$sql) {
trigger_error('La tabla <b>'.$ssesconfig['table'].'</b> esta danada o no existe',E_USER_ERROR);
}
}

function ssession_clean() {
//esta funcion es muy util, aqui se comprueba si hay sesiones duplicadas en la base de datos, si es asi las borra
global $ssesconfig;
global $ssession_clean_mysql_error;
$sql = mysql_query("SELECT * FROM ".$ssesconfig['table']); //hacemos un query de todas las sesiones
while($clean=mysql_fetch_array($sql)) {

if(md5($clean['contain'])!=$clean['contain_hash']) {
ssession_kill($clean['cookie']);
}

if($clean[expire]<=time()) { //Aqui comprobamos si la sesion ha caducado, si es asi se elimina de la base de datos
if(!mysql_query("DELETE FROM ".$ssesconfig['table']." WHERE id='$clean[id]'")) {
trigger_error('Ha fallado el sistema de caducacion de sesiones, la sesion caducada no ha sido eliminada! Se procedera a su eliminacion en la proxima ejecucion.',E_USER_WARNING);
$ssession_call_mysql_error = mysql_error();
}
}


$WHERE = "WHERE contain_hash='".$clean[contain_hash]."'";
global $fclean;
$fclean = mysql_num_rows(mysql_query("SELECT * FROM ".$ssesconfig['table']." ".$WHERE));
if($fclean>$ssesconfig['sslimit']) {
if(!mysql_query("DELETE FROM ".$ssesconfig['table']." ".$WHERE." AND ip!='$_SERVER[REMOTE_ADDR]' LIMIT 1")) { //se elimina
trigger_error('Ha fallado el sistema de limpieza de sesiones, la limpieza no ha sido llevada a cabo correctamente! Se procedera a relimpiar en la proxima ejecucion.',E_USER_WARNING); //si falla la eliminacion, se muestra un error
$ssession_clean_mysql_error = mysql_error();
}
}
}
}

function ssession_sqlblind($char) {
$char = mysql_real_escape_string($char);
return $char;
}







function ssession_call($cookie) {
global $ssession_call_error;
global $ssesconfig;
global $_SECURE_SESSION;
global $_SECURE_SESSION_CODE;
global $_SECURE_SESSION_IP;
global $_SECURE_SESSION_EXPIRE;
$_SSES = array();
$cookievar = ssession_sqlblind($_COOKIE[$cookie]);
$sql = mysql_query("SELECT * FROM ".$ssesconfig['table']." WHERE code='$cookievar'");
while($ssext=mysql_fetch_array($sql)) {

if($ssext[ip]!=$_SERVER['REMOTE_ADDR']) {
ssession_kill($ssext[cookie]);
trigger_error('The ip not match',E_USER_WARNING);
}
$ssext_cookie = $ssext[cookie];
$_SECURE_SESSION[$ssext_cookie] = $ssext[contain];
$_SECURE_SESSION_EXPIRE[$ssext_cookie] = $ssext[expire];
$_SECURE_SESSION_IP[$ssext_cookie] = $ssext[ip];
$_SECURE_SESSION_CODE[$ssext_cookie] = $ssext[code];
}
$ssession_call_error = mysql_error();
}





function ssession_new($cookie, $contain=NULL, $expire=NULL) {
global $ssession_new_mysql_error;
global $ssesconfig;
global $sslimit;
if($expire==NULL) {
$expire = time() + $ssesconfig[defaultexpire];
}

$code = md5(mt_rand().time().$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].mt_rand());
$contain_hash = md5($contain);
$uniqses = mysql_num_rows(mysql_query("SELECT * FROM ".$ssesconfig['table']." WHERE contain_hash='$contain_hash'"));
if($uniqses>$sslimit AND $ssesconfig['sskeeprior']==1) {
trigger_error('Lo sentimos, el limite de sesiones unicas ha  sido superado', E_USER_NOTICE);
} else if($uniqses>$sslimit AND $ssesconfig['sskeeprior']==0) {
if(mysql_query("DELETE FROM ".$ssesconfig['table']." WHERE contain_hash='$contain_hash' LIMIT 1")) {
ssession_new($cookie, $contain, $expire);
} else {
trigger_error('Imposible crear la sesion', E_USER_NOTICE);
}
} else if(!mysql_query("INSERT INTO ".$ssesconfig['table']." (`ip` ,`cookie` ,`code` ,`contain` ,`contain_hash` ,`expire`) VALUES ('$_SERVER[REMOTE_ADDR]', '$cookie', '$code', '$contain','$contain_hash' , '$expire')")) {

trigger_error('Ha fallado la creacion de la sesion en el servidor', E_USER_WARNING);

} else if(!setcookie($cookie, $code, $expire)) {
trigger_error('Ha fallado la creacion del cookie en el cliente', E_USER_WARNING);
if(!mysql_query("DELETE FROM ".$ssesconfig['table']." WHERE code='$code'")) {
trigger_error('Ha fallado la eliminacion de la sesion creada.', E_USER_WARNING);
}
}
$ssession_new_mysql_error = mysql_error();

}

function ssession_kill ($cookie) {
global $ssesconfig;
global $ssession_kill_mysql_error;
global $_SECURE_SESSION_CODE;
if(!mysql_query("DELETE FROM ".$ssesconfig['table']." WHERE cookie='$cookie' AND ip='$_SERVER[REMOTE_ADDR]' AND code='$_SECURE_SESSION_CODE[$cookie]'")) {
trigger_error('function ssession_check(): Ha fallado la eliminacion de la sesion en el servidor', E_USER_WARNING);
$ssession_kill_mysql_error = mysql_error();
} else if(!setcookie($cookie, time()+$ssesconfig['defaultexpire'])) {
trigger_error('function ssession_check(): Ha fallado la eliminacion del cookie', E_USER_WARNING);
}

}

?>
Jejjejeje yap esta, funciona de maravilla  :D
Podeis descargar el codigo de aqui tmb: http://www.mediafire.com/?sharekey=046665f6dfc4ddaa61d4646c62b381cbe04e75f6e8ebb871
Este post es un poco chapuza, voy a escribir otro dentro de poco mejor organizado  :)
Bueno, nos vemos en el proximo tutorial  ;)
saludos![/code]

17
Visual Basic / MssFlooder
« en: 14 de Diciembre de 2008, 22:56:19 pm »
Jejeje, me he puesto las pilas y he creado un programa en toda regla  :P Lo podeis bajar de aqui: http://www.personalidad-web.net/InstalarMssFlooder.zip
Y un panta para q os hagais un idea:  :P

Saludos!

18
JavaScript / [Tutorial] Evitar que se recuerde la contraseña
« en: 12 de Diciembre de 2008, 16:58:17 pm »
Quiereis evitar que se recuerde la contraseña en el navegador y os salga la tipica ventanita "Desea que firefox recuerde esta contraseña?"  xD Es muy simple, solo teneis que añadir una variable al campo del formulario, por ejemplo:
Código: [Seleccionar]
<input type="password" size="16" name="pass" autocomplete="off"/>
Se trata de la variable autocomplete  :)
Saludos!

19
Visual Basic / Pencript
« en: 20 de Noviembre de 2008, 22:48:37 pm »
La verdad que me estaba aburriendo un poco, asi que cogi el visualbasic y me puse a jugar :P  :D
Hize este prqueño programa que a veces puede resultar util  O0 El unico problema es que no encripta archivos mas grandes de unos 30 KB, es util cuando quieremos encriptar un documento de texto o algo :P

Descargar:
http://www.personalidad-web.net/pencrypt.zip
Saludos!

20
PHP / Poner un contador PHP en tu web - Sin BD MYSQL
« en: 15 de Noviembre de 2008, 21:36:15 pm »
En este tutorial vamos a aprender a montar un contador en php!

Vamos a hacer un contador sin Base de Datos para los que lo prefieran asi;

1. Lista de los archivos del script:

contador.php

cont.txt

2. Codigo de los archivos:

contador.php


 <?
$file 
= &#39;cont.txt&#39;;
if(!file_exists($file)) {
echo 
"ERROR: " $file " No existe, se intentara crear....<br>";
if(
touch($file)) {
echo 
"OK: " $file " se ha creado con exito!";
$fp fopen($file"w");
$write fputs($fp, &#39;0&#39;);
fclose($fp);
} else {
echo 
"ERROR: " $file " no se pudo crear con exito! Compruebe los permisos CHMOD";
}
exit;
} else {
$count file_get_contents($file);
}
if(
$count<0) {
echo 
"ERROR: el contador no es correcto, porfavor corige " $file;
exit;
}
if(!
is_numeric($count)) {
echo 
"ERROR: el contador no es un numero entero, por favor corige " $file;
exit;
}
$count++;
$fp fopen($file"w+");
$write fputs($fp$count);
fclose($fp);
for(
$i=0;$i<=9;$i++) {
if(
$count[$i] != NULL) {
echo &
#39;<img src="numeros/&#39; . $count[$i] . &#39;.gif">&#39;;
}
}
?>

cont.txt
1

O si quieremos que el contador sea con imagenes sustituimos este codigo por
echo $count;
este otro:
for($i=0;$i;=9;$i++) {
if(
$count[$i] != NULL) {
echo &
#39;<img src="numeros/&#39; . $count[$i] . &#39;.gif" alt="" />&#39;;
}
}

Intruciones:
1. Subir la carpeta a tu web
2. Dar permisos CHMOD 777 a cont.txt
3. Poner este codigo en el lugar donde quieres poner el contador:
Código: [Seleccionar]
<iframe width="110" height="35" scrolling="no" src="contador/contador.php" frameborder="0">
</iframe>

Descargar Script

Si teneis alguna duda contactadme por el email contacto@personalidad-web.net o publicando aqui mismo una respuesta en el tema!  :laugh:
Podeis ver un ejemplo aqui: http://www.personalidad-web.net/ejemplos/contador/contador.php
FUENTE: http://www.personalidad-web.net/2008/10/contadorrapido/ (Mi pagina web)

Saludos!

21
Aplicaciones Pre-Fabricadas / SAMP Server STAT
« en: 03 de Septiembre de 2008, 16:06:37 pm »
Script creado parcialmente por mi  :)
Este script muestra las estadisticas de tu servidor (mapa, gamemode,numero de jugadores, si esta protegido con contraseña, etc...)
Modo de empleo:
Editar en el archivo "samp.php" la ip y el puerto de tu servidor, luego pon este codigo html en tu web:
Código: [Seleccionar]
<img src='samp.php'>

Archivos del script:
pass.gif -
Descargar
on.gif -
Descargar
off.gif
Descargar
images/1.png - Descargar

samp.php
Código: [Seleccionar]
<?
header("Content-type: image/png");
$ip = "85.17.6.58";
$port = "7777";
$fp = fsockopen('udp://' . $ip, $port, $errno, $errstr,3) or $this->erro($errstr,__LINE__,__FILE__,$errno);
                                       $packet = 'SAMP';
                        $packet .= chr(strtok($ip, '.'));
                        $packet .= chr(strtok('.'));
                        $packet .= chr(strtok('.'));
                        $packet .= chr(strtok('.'));
                        $packet .= chr($port & 0xFF);
                        $packet .= chr($port >> 8 & 0xFF);
                       
                        fwrite($fp, $packet.'i');
                        fread($fp, 11);
                        $is_passworded = ord(fread($fp, 1));
                        $plr_count     = ord(fread($fp, 2));
                        $max_plrs      = ord(fread($fp, 2));
                        $strlen        = ord(fread($fp, 4));
                        $hostname      = fread($fp, $strlen);
                        $strlen        = ord(fread($fp, 4));
                        $gamemode      = fread($fp, $strlen);
                        $strlen        = ord(fread($fp, 4));
                        $mapname       = fread($fp, $strlen);
/////////////
$set = 'test';
$set = file_get_contents('settings/' . $set . '.ini');
$ipcat1 = explode('[IP]', $set);
$ipcat2 = explode('[/IP]', $ipcat1[1]);
$ipcat = $ipcat2[0];
$ipx1 = explode('x=', $ipcat);
$ipx2 = explode(';', $ipx1[1]);
$ipx = $ipx2[0];
$ipy1 = explode('y=', $ipcat);
$ipy2 = explode(';', $ipy1[1]);
$ipy = $ipy2[0];
//
$hostcat1 = explode('[HOSTNAME]', $set);
$hostcat2 = explode('[/HOSTNAME]', $hostcat1[1]);
$hostcat = $hostcat2[0];
$hostx1 = explode('x=', $hostcat);
$hostx2 = explode(';', $hostx1[1]);
$hostx = $hostx2[0];
$hosty1 = explode('y=', $hostcat);
$hosty2 = explode(';', $hosty1[1]);
$hosty = $hosty2[0];
//
$gm1 = explode('[GAMEMODE]', $set);
$gm2 = explode('[/GAMEMODE]', $gm1[1]);
$gm = $gm2[0];
$gmx1 = explode('x=', $gm);
$gmx2 = explode(';', $gmx1[1]);
$gmx = $gmx2[0];
$gmy1 = explode('y=', $gm);
$gmy2 = explode(';', $gmy1[1]);
$gmy = $gmy2[0];
//
$mp1 = explode('[MAPNAME]', $set);
$mp2 = explode('[/MAPNAME]', $mp1[1]);
$mp = $mp2[0];
$mpx1 = explode('x=', $mp);
$mpx2 = explode(';', $mpx1[1]);
$mpx = $mpx2[0];
$mpy1 = explode('y=', $mp);
$mpy2 = explode(';', $mpy1[1]);
$mpy = $mpy2[0];
//
$pl1 = explode('[PLS]', $set);
$pl2 = explode('[/PLS]', $pl1[1]);
$pl = $pl2[0];
$plx1 = explode('x=', $pl);
$plx2 = explode(';', $plx1[1]);
$plx = $plx2[0];
$ply1 = explode('y=', $pl);
$ply2 = explode(';', $ply1[1]);
$ply = $ply2[0];
//
$color1 = explode('COLOR=', $set);
$color2 = explode(';', $color1[1]);
$color = $color2[0];
//
$img1 = explode('IMG=', $set);
$img2 = explode(';', $img1[1]);
$img = $img2[0];
//
$passcat1 = explode('[PASS]', $set);
$passcat2 = explode('[/PASS]', $passcat1[1]);
$passcat = $passcat2[0];
$passx1 = explode('x=', $passcat);
$passx2 = explode(';', $passx1[1]);
$passx = $passx2[0];
$passy1 = explode('y=', $passcat);
$passy2 = explode(';', $passy1[1]);
$passy = $passy2[0];
////////////
$passimgcat1 = explode('[PASSIMG]', $set);
$passimgcat2 = explode('[/PASSIMG]', $passimgcat1[1]);
$passimgcat = $passimgcat2[0];
$passimgx1 = explode('x=', $passimgcat);
$passimgx2 = explode(';', $passimgx1[1]);
$passimgx = $passimgx2[0];
$passimgy1 = explode('y=', $passimgcat);
$passimgy2 = explode(';', $passimgy1[1]);
$passimgy = $passimgy2[0];
///
$statimgcat1 = explode('[STATIMG]', $set);
$statimgcat2 = explode('[/STATIMG]', $statimgcat1[1]);
$statimgcat = $statimgcat2[0];
$statimgx1 = explode('x=', $statimgcat);
$statimgx2 = explode(';', $statimgx1[1]);
$statimgx = $statimgx2[0];
$statimgy1 = explode('y=', $statimgcat);
$statimgy2 = explode(';', $statimgy1[1]);
$statimgy = $statimgy2[0];
///


$im = imagecreatefrompng($img);
$pass = imagecreatefromgif('pass.gif');
$color = sscanf($color, '#%2x%2x%2x');
$blanco = imagecolorallocate($im, $color[0], $color[1], $color[2]);
imagettftext($im, 12, 0, $ipx, $ipy, $blanco, 'font.ttf', 'IP/PORT:  ' . $ip . ':' . $port);
imagettftext($im, 8, 0, $hostx, $hosty, $blanco, 'font.ttf', $hostname);
imagettftext($im, 8, 0, $gmx, $gmy, $blanco, 'font.ttf', $gamemode);
imagettftext($im, 8, 0, $mpx, $mpy, $blanco, 'font.ttf', $mapname);
imagettftext($im, 8, 0, $plx, $ply, $blanco, 'font.ttf', $plr_count . '/' . $max_plrs);
if ($plr_count == "$max_plrs" OR $plr_count>$max_plrs) {
$stat = 'off';
} else {
$stat = 'on';
}
$stat = imagecreatefromgif($stat . '.gif');
imagecopymerge($im, $stat, $statimgx, $statimgy, 0, 0, 12, 12, 100);
if ($is_passworded == '1') {
imagettftext($im, 8, 0, $passx, $passy, $blanco, 'font.ttf', 'Passworded');
imagecopymerge($im, $pass, $passimgx, $passimgy, 0, 0, 16, 16, 100);
}
imagepng($im);
imagedestroy($im);
?>
font.ttf Descargar
settings/test.ini
Código: [Seleccionar]
[IP]
x=150;
y=112;
[/IP]
[HOSTNAME]
x=86;
y=38;
[/HOSTNAME]
[GAMEMODE]
x=79;
y=62;
[/GAMEMODE]
[MAPNAME]
x=47;
y=84;
[/MAPNAME]
[PLS]
x=60;
y=108;
[/PLS]
[PASS]
x=4;
y=17;
[/PASS]
[PASSIMG]
x=63;
x=3;
[/PASSIMG]
[STATIMG]
x=100;
y=98;
[/STATIMG]
COLOR=#000000;
IMG=images/1.png;

Para que no surgan problemas, aqui les el codigo original que modifique:
http://www.phpclasses.org/browse/file/19274.html

Saludos!

22
General / Me voy de vacaciones
« en: 23 de Agosto de 2008, 23:46:23 pm »
Me ausento 7 dias  :P Volvere el 31 de agosto  ;)
Saludos!  :)

23
Hardware o Software / Por que se bloquea firefox?
« en: 16 de Agosto de 2008, 12:06:51 pm »
Me pasa siempre en la misma web, se me queda bloqueado unos 20 segundos luego se desbloquea  :-\ Os a pasado alguna vez?
Saludos!

24
Aplicaciones Pre-Fabricadas / Real Captcha
« en: 04 de Agosto de 2008, 21:43:00 pm »
Acabo de desarollar un script PHP que es muy fuerte contra los bots  ;D
Consiste en lo siguiente:
Tienes que decir cual es la accion que hace la persona de la imagen. Cada imagen tiene en la base de datos una definicion determinada de la accion. Aqui un ejemplo:

Aqui el codigo:  xD
SQL:
Código: [Seleccionar]
--
-- Estructura de tabla para la tabla `capcha`
--

CREATE TABLE IF NOT EXISTS `capcha` (
  `id` int(11) NOT NULL auto_increment,
  `answer` varchar(250) NOT NULL,
  `img` varchar(250) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Volcar la base de datos para la tabla `capcha`
--

INSERT INTO `capcha` (`id`, `answer`, `img`) VALUES
(1, 'Eating', '7.jpg'),
(2, 'Playing fotball', '8.jpg'),
(3, 'Talking on the phone', '11.jpg');
capcha.php
<?
session_start
();
include(
"capcha_mysql.php");

$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");
$sql mysql_fetch_array($query);
$_SESSION[&#39;answer&#39;] = $sql[&#39;answer&#39;];

header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("images/$sql[img]");
imagejpeg($im);
imagedestroy($im);
?>

form.php
<?
include("capcha_mysql.php");
$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");

$an = array();
$rand rand(15);
$na $rand;
$n 0;
session_start();
$an[$rand] = $_SESSION[&#39;answer&#39;];

while($i=mysql_fetch_array($query)) {
$n $n 1;
if(
$n != "$na&& $i[answer] != "".$_SESSION[&#39;answer&#39;]."") {
$an[$n] = $i[answer];
}
}
?>
<img src="capcha.php" style="border: 3px solid #666699"><p>
<font size="6" color="#666699">Que acción realizan las personas de la imagen??</font></p>
<form method="POST" action="send">
<?
for($i=1;$i<=5;$i++) {
if (
$an[$i] != NULL) {
echo 
"<p>$an[$i] <input type=\"radio\" value=\"$an[$i]\" name=\"answer\"></p>";
}
}
?>

<p><input type="submit" value="Enviar"></p>
</form>

send.php

<?
if (
$_POST[&#39;answer&#39;]) {
if ($_POST[&#39;answer&#39;] == "".$_SESSION[&#39;answer&#39;]."") {
echo "Respuesta correcta";
} else {
echo 
"Respuesta incorrecta";
}
}
?>

capcha_mysql.php
<?
$host 
= &#39;localhost&#39;;
$user = &#39;root&#39;;
$pass = &#39;password&#39;;
$db = &#39;capcha&#39;;
$connect = @mysql_connect($host$user$pass) or die (&#39;Real-Capcha cant make the connection whit mysql.&#39;);
mysql_select_db($db$connect) or die (&#39;DB dont exist&#39;);
?>

Lo dejo como codigo libre, podeis hacer mejoras si quereis!  :)

25
PHP / Se repiten los hash de salida?
« en: 24 de Julio de 2008, 10:43:37 am »
Tengo una pequeña duda: Se pueden repetir los hash de salida de md5?  ???
Saludos!

26
PHP / Encripta tus cookies
« en: 09 de Julio de 2008, 20:27:13 pm »
Esta function sirver para encriptar tus cookies y evitar que los editen  ;)
Un pequeño esquema:

<?
$pass 
= &#39;SECRET&#39; . $_SERVER[&#39;REMOTE_ADDR&#39;];
$skey strtoupper(md5($pass));
function 
vige($texto,$clave,$ty=true)
{
  
$alfabeto "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890?!,.?-_()=*[]^%&";
	

	
$texto=strtoupper($texto);
	
$clave=strtoupper($clave);
	
	

	
$cla=$clave;
	
while(
strlen($clave)<strlen($texto))$clave.=$cla;
	
	
	

	
$result= &#39;&#39;;
	

	
for(
$i=0$istrlen($texto); $i++) 
	
{
	
if(
$texto[$i]==&#39; &#39;){ $result.=$texto[$i]; continue; }
	
	
$idx strpos($alfabeto,$texto[$i]);
	
	
if(
$idx 0$result .= $texto[$i];
	
	
else {
	

	
	
	
	
$k strpos($alfabeto,$clave[$i]);
	
	
	
	

	
	
	
	
$idx+=$ty?$k:strlen($alfabeto)-$k;
	
	
	
	
$result.=$alfabeto[$idx strlen($alfabeto)];
	
	
	
}
	
	
}
	
return 
$result;
}
function 
scrypt($texto){
global 
$skey;
return 
vige($texto,$skey,true);
}

function 
sdecrypt($texto){
global 
$skey;
return 
vige($texto,$skey,false);
}

?>


Ejemplo de utilizacion:
<?
setcookie
("testcookie"scrypt(&#39;User and Password&#39;), time()+3600);
?>

<?
$userdata 
sdecrypt($_COOKIE[&#39;testcookie&#39;]);
?>

fuente: http://www.mygnet.net/codigos/php/criptografia/cifrado_de_vigenere.1675

27
Charlas / Offtopic / he vuelto
« en: 04 de Mayo de 2008, 20:38:22 pm »
Creo que os haveis dado cuenta de que hace mucho que no posteo en phperos! Bueno, me fui a la playa en Asturias una semanita con unos amigos  xD xD  xD
precisamente aqui
http://maps.google.es/maps?f=q&hl=es&geocode=&q=llanes&ie=UTF8&ll=43.420759,-4.750364&spn=0.006764,0.014591&t=h&z=16
Saludos!

28
(X)HTML / Prefijo html?
« en: 20 de Marzo de 2008, 16:56:16 pm »
Tengo un duda, como puedo cambiar el prefijo a todos mis links de mi pagina?  :P :P
Por ejemplo:
Que este codigo html
Código: [Seleccionar]
<a href="pagina.php">Entrar</a>sea
Código: [Seleccionar]
<a href="PREFIJO?pagina.php">Entrar</a>

29
PHP / Problemita al mostrar datos mysql
« en: 14 de Marzo de 2008, 14:44:40 pm »
Hola, tengo un pequeño problema con php+mysql! Primero les voy a enseñar el codigo
<?
if (is_numeric($_GET[&#39;id&#39;])) {
$sql mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE id=&#39;$_GET[id]&#39;"));
?>
<form method="POST" action="">
	
<p align="left">Nombre del rango: <?=$sql[&#39;class&#39;]?></p>
	
<p align="left">Poderes actuales:</p>
	
<p align="center"><div><a href="#" onclick="setCheckboxes(&#39;pow&#39;, true); return false;">Marcar todos/as</a> /
            <a href="#" onclick="setCheckboxes(&#39;pow&#39;, false); return false;">Desmarcar todos</a> )
        </legend><div id="pow">
<?
$sql 
mysql_query("DESCRIBE ranks");
while (
$row mysql_fetch_array($sql)) {
if (!
in_array($row[&#39;Field&#39;], $na)) {
$rd mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE class=&#39;unable&#39;"));
$ra mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE id=&#39;$_GET[id]&#39;"));
$f $row[Field];
if (
$ra[$f] == "1") {
$chd checked;
}
echo 
"<p><input type=&#39;checkbox&#39; name=&#39;$row[Field]&#39; value=&#39;ON&#39; $chd$rd[$f]</p>";
}
?></div></div></p>
	
<p><input type="submit" value="Enviar" name="B1"> <input type="reset" value="Restablecer" name="B2"></p>
</form>
<?
}
?>

Os voy a explicar de que va el codigo! Tengo una tabla con poderes y quero enumerar los poderes de cada rango para luego actualizarlos  ;D Hos voy a poner 2 pantallazos:


El problema:
Si tengo los siguientes poderes:
perfil_motto: 0
perfil_img: 0
mp_send: 0
admin_panel: 1
Esta todo bien, me muestra todo bien:

Pero en cuando modifico los datos de siguiete manera:
Citar
perfil_motto: 1
perfil_img: 0
mp_send: 0
admin_panel: 1
Se me chekuean todas las casillas para abajo:

Muy raro, no?  xD xD Espero que me echeis una mano!  :P
Gracias y un saludo!  O0

30
PHP / Paginador Mysql
« en: 10 de Marzo de 2008, 10:05:19 am »
Alguien tiene idea de como se hace un paginador con datos mysql?
Gracias y un saludo!

Páginas: 1 [2] 3 4 ... 12