Autor
|
Tema: Pequeños trucos en PHP (Leído 36,307 veces)
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.944
The Hacktivism is not a crime
|
Podríamos hacer un solo post en el comienzo con uno o grupos de php algo así como librerías de códigos sacados de acá mismo y usarlos en sistemas, pasar todo a funciones y aplicarlos como uno quiera, por ejemplo que todo comienze con un include a ./.class_php/includes.php y ese include que se encargue de hacer el resto y ese directorio con acceso denegado al acceso público, de esta forma si alguien necesita alguna función de acá solo descarga el sistema y le hace un include y listo. Si es que se puede con el permiso del mod, habría que pedir permiso a los que postearon cada tema para ver si se puede incluir o no, es mas, hasta podría elegirse solo los mas funcionales para ahorrar espacioy hacer algo así como un concurso mensual y los mejores serán incluido al paquete  , si fuera así cada persona que posteara algo acá tendría que decir que podemos incluirlo si es que quiere que se incluya.. claro nuevamente con el permiso del mod 
|
|
|
|
|
En línea
|
|
|
|
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
Desconectado
Mensajes: 5.083
Mtz De C.
|
Claro  no hay problema, nomas me avisan a que le dejo y quito chincheta 
|
|
|
|
|
En línea
|
Con sangre andaluza 
|
|
|
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Pertenezco a Reach
|
Bueno, este generador lo hice hace tiempo, es util para formularios de dominios, hosting, emails...: <?php // generador de dnis para formularios // Creado por Erik# // erik_unix@hotmail.com function dni($dni){ $gen= (int) ($dni / 23); $gen *= 23; $gen= $dni - $gen; $gen2= "TRWAGMYFPDXBNJZSQVHLCKEO"; $letra= substr ($gen2, $gen, 1); return $dni.$letra; } $n1 = rand(0,9); $n2 = rand(0,9); $n3 = rand(0,9); $n4 = rand(0,9); $n5 = rand(0,9); $n6 = rand(0,9); $n7 = rand(0,9); $n8 = rand(0,9); $ndni = $n1.$n2.$n3.$n4.$n5.$n6.$n7.$n8; echo '<b>DNI: </b>'.dni($ndni); ?>
|
|
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Pertenezco a Reach
|
Bueno, os dejo un captcha que cree usando sesiones, en principio iva a usar cookies, pero, me lo repense: captchaverf.php<?php session_start(); if($_POST['ok']){ if($_POST['captcha'] == $_SESSION['captcha']){ echo "Captcha correcto"; }else{ echo "Captcha incorrecto"; } }else{ echo '<img src="captcha.php"><br> <form action="captchaverf.php" method="POST"> <input type="text" name="captcha"><br><input type="submit" name="ok" value="Verificar"></form>'; } ?> captcha.php<?php session_start(); header("Content-type: image/png"); $_SESSION['captcha'] = rand(0001, 9999); $imagen = imagecreate(50,25); $fondo = imagecolorallocate($imagen, 0, 0, 0); $texto = imagecolorallocate($imagen, 255, 255, 255); imagestring($imagen, 10, 6, 5,$_SESSION['captcha'], $texto); imagepng($imagen); ?> Prueba: www.krews.es/captchaverf.php
|
|
|
|
|
En línea
|
|
|
|
Servia
Desconectado
Mensajes: 291
|
Esta funcióncomo se usaría? <?php function addslashes__recursive($var){ if (!is_array($var)) return addslashes($var); $new_var = array(); foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v); return $new_var; } $_POST=addslashes__recursive($_POST); $_GET=addslashes__recursive($_GET); $_REQUEST=addslashes__recursive($_REQUEST); $_SERVER=addslashes__recursive($_SERVER); $_COOKIE=addslashes__recursive($_COOKIE); ?> Se pone en cada archivo php y listo? no verdad? 
|
|
|
|
|
En línea
|
|
|
|
Dacan
Desconectado
Mensajes: 191
|
Es para poner slashes del tipo (\) y se usa: echo addslashes__recursive($tuvariable); Aunque en ese código ya esta siendo utilizada en todas las superglobales. Saludos, Dacan 
|
|
|
|
|
En línea
|
 Follow me: @Dangonzalez94
|
|
|
HardieVon
Desconectado
Mensajes: 181
Programming HardCore
|
Hola que tal, a mi me fastidia andar capturando captchas y explotando mi server con sesiones. sin mencionar la gestion de cookies como sesiones. Aqui eh hecho una solución aparentemente factible. y digo aparente por que todo es hipotetico aunque supongo que funciona perfecto. AQUI CON ESTA FUNCION. <?php function XSRF($s){ $ref=parse_url($_SERVER['HTTP_REFERER']); if(($ref['host']==$_SERVER['HTTP_HOST'])&&(basename($ref['path'])==$s)) return true; } /* EJEMPLO */ # El argumento este que se pasa, es script donde se supone viene el vinculo por ejemplo # en un script donde su nombre es admin_posts.php y contine algo como <a href="eliminar.php?cual=estemero">Eliminar</a> #entonces en el script eliminar.php ponemos la siguente estructura if(XSRF("admin_posts.php")){ #ejecuta si es legitimo --> $gestor=fopen('correcto.txt', 'a'); fwrite($gestor, "OK\n"); fclose($gestor); #<-- } ?>
|
|
|
|
« Última modificación: 3 Junio 2009, 07:26 por Seguridad PHP »
|
En línea
|
|
|
|
|
El As del Club Paris
|
Una pregunta, la lectura/escritura de un archivo en el server, consumemenos recursos que el uso de SESIONES?
Saludos
|
|
|
|
|
En línea
|
|
|
|
HardieVon
Desconectado
Mensajes: 181
Programming HardCore
|
Una pregunta, la lectura/escritura de un archivo en el server, consumemenos recursos que el uso de SESIONES?
Saludos
man no debes de postear eso aqui, y relativamente es lo mismo, mejor usa cookie es mas lijero que el proceso de sesiones. pero no le veo mucha relacion utilitaria en una sesion y un archivo. podrias tu sustituir el uso de una sesion con el uso de un archivo?? PD: tu firma me da miedo.
|
|
|
|
|
En línea
|
|
|
|
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
Desconectado
Mensajes: 5.083
Mtz De C.
|
Es para poner slashes del tipo (\) y se usa: echo addslashes__recursive($tuvariable); Aunque en ese código ya esta siendo utilizada en todas las superglobales. Saludos, Dacan  Exactirijillo xD, así es, con eso se cepilla todo lo que entra y sale a través del server/php. Aunque si tienes las magic quotes te va a poner tripe \ xD tons le cambié algo... //----------------------------------------------+ // We claer all traffic of our server | //----------------------------------------------+ // This function I extrac of SMF system fourum, cleared all " and ' in traffic server function addslashes__recursive($var){ if (!is_array($var)) return addslashes($var); $new_var = array(); foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v); return $new_var; } //If the magic quotes are disable, aplicate the function, else, do not nothing if(get_magic_quotes_gpc()==0){ $_POST=addslashes__recursive($_POST); $_GET=addslashes__recursive($_GET); $_REQUEST=addslashes__recursive($_REQUEST); $_SERVER=addslashes__recursive($_SERVER); $_COOKIE=addslashes__recursive($_COOKIE); } Y pues entrado en tema... les regalo otra!: // With this function, we are clear the html chars to entity ascii function clear_chars($var){ if(!is_array($var)){ return htmlspecialchars($var); } else{ $new_var = array(); foreach ($var as $k => $v){ $new_var[htmlspecialchars($k)]=clear_chars($v); return $new_var; } } } if($_POST) $_POST=clear_chars($_POST); if($_GET) $_GET=clear_chars($_GET); if($_REQUEST) $_REQUEST=clear_chars($_REQUEST); if($_SERVER) $_SERVER=clear_chars($_SERVER); if($_COOKIE) $_COOKIE=clear_chars($_COOKIE); Suerte
|
|
|
|
« Última modificación: 4 Junio 2009, 17:17 por дٳŦ٭ »
|
En línea
|
Con sangre andaluza 
|
|
|
HardieVon
Desconectado
Mensajes: 181
Programming HardCore
|
Es para poner slashes del tipo (\) y se usa: echo addslashes__recursive($tuvariable); Aunque en ese código ya esta siendo utilizada en todas las superglobales. Saludos, Dacan  Exactirijillo xD, así es, con eso se cepilla todo lo que entra y sale a través del server/php. Aunque si tienes las magic quotes te va a poner tripe \ xD tons le cambié algo... //----------------------------------------------+ // We claer all traffic of our server | //----------------------------------------------+ // This function I extrac of SMF system fourum, cleared all " and ' in traffic server function addslashes__recursive($var){ if (!is_array($var)) return addslashes($var); $new_var = array(); foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v); return $new_var; } //If the magic quotes are disable, aplicate the function, else, do not nothing if(get_magic_quotes_gpc()==0){ $_POST=addslashes__recursive($_POST); $_GET=addslashes__recursive($_GET); $_REQUEST=addslashes__recursive($_REQUEST); $_SERVER=addslashes__recursive($_SERVER); $_COOKIE=addslashes__recursive($_COOKIE); } Y pues entrado en tema... les regalo otra!: // With this function, we are clear the html chars to entity ascii function clear_chars($var){ if(!is_array($var)){ return htmlspecialchars($var); } else{ $new_var = array(); foreach ($var as $k => $v){ $new_var[htmlspecialchars($k)]=clear_chars($v); return $new_var; } } } if($_POST) $_POST=clear_chars($_POST); if($_GET) $_GET=clear_chars($_GET); if($_REQUEST) $_REQUEST=clear_chars($_REQUEST); if($_SERVER) $_SERVER=clear_chars($_SERVER); if($_COOKIE) $_COOKIE=clear_chars($_COOKIE); Suerte Sigue estando el return dentro de el bucle. ¬¬ vicioso del vodka
|
|
|
|
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.944
The Hacktivism is not a crime
|
más corto: <?php $_GET = stripslashses_gpc($_GET); $_POST = stripslashses_gpc($_POST); $_COOKIE = stripslashses_gpc($_COOKIE); $_SERVER = stripslashses_gpc($_SERVER); function stripslashses_gpc($buffer){ if(!function_exists('get_magic_quotes_gpc')) return $buffer; if(get_magic_quotes_gpc()){ if(is_array($buffer)){ foreach($buffer as $variable => $valor){ $temp[$variable] = stripslashses_gpc($valor); } return $temp; }else{ return stripslashes($buffer); } }else{ return $buffer; } } ?> Y con array_map() es más corto.
|
|
|
|
|
En línea
|
|
|
|
zinfinal
Desconectado
Mensajes: 4
******
|
Descripcion: Bueno esto sirve de una palabra agregarle algo en cada letra. function letras($palabra, $k){ return implode($k,str_split($palabra)); }
ejemplo: echo letras('hola', '<br />'); //resultado: h o l a ejemplo2: echo letras('hola', ','); //resultado: h,o,l,a
|
|
|
|
|
En línea
|
|
|
|
|
|