[Recomendado] Pequeños trucos en PHP / Scripts php-mysql / POO

Iniciado por Ertai, 14 Diciembre 2006, 01:27 AM

0 Miembros y 2 Visitantes están viendo este tema.

Erik#

Bueno, os dejo un captcha que cree usando sesiones, en principio iva a usar cookies, pero, me lo repense:

captchaverf.php
Código (php) [Seleccionar]
<?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
Código (php) [Seleccionar]
<?php

session_start
();

header("Content-type: image/png");

$_SESSION['captcha'] = rand(00019999);

$imagen imagecreate(50,25);

$fondo imagecolorallocate($imagen000);

$texto imagecolorallocate($imagen255255255);

imagestring($imagen1065,$_SESSION['captcha'], $texto);

imagepng($imagen);

?>


Prueba: www.krews.es/captchaverf.php

Servia

Esta funcióncomo se usaría?
Código (php) [Seleccionar]
<?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? :(

Dacan

Es para poner slashes del tipo (\) y se usa:

Código (php) [Seleccionar]
echo addslashes__recursive($tuvariable);

Aunque en ese código ya esta siendo utilizada en todas las superglobales.

Saludos, Dacan  :D

HardieVon

#23
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.

Código (php) [Seleccionar]
<?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);
#<-- 
}
?>

[u]nsigned

Una pregunta, la lectura/escritura de un archivo en el server, consumemenos recursos que el uso de SESIONES?

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

HardieVon

[quote author=nsigned link=topic=152467.msg1245631#msg1245631 date=1244007136]
Una pregunta, la lectura/escritura de un archivo en el server, consumemenos recursos que el uso de SESIONES?

Saludos
[/quote]

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.

дٳŦ٭

#26
Cita de: Dacan en 25 Enero 2009, 23:19 PM
Es para poner slashes del tipo (\) y se usa:

Código (php) [Seleccionar]
echo addslashes__recursive($tuvariable);

Aunque en ese código ya esta siendo utilizada en todas las superglobales.

Saludos, Dacan  :D

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...

Código (php) [Seleccionar]

//----------------------------------------------+
// 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!:

Código (php) [Seleccionar]

// 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


Con sangre andaluza :)


HardieVon

Cita de: дٳŦ٭ en  4 Junio 2009, 17:15 PM
Cita de: Dacan en 25 Enero 2009, 23:19 PM
Es para poner slashes del tipo (\) y se usa:

Código (php) [Seleccionar]
echo addslashes__recursive($tuvariable);

Aunque en ese código ya esta siendo utilizada en todas las superglobales.

Saludos, Dacan  :D

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...

Código (php) [Seleccionar]

//----------------------------------------------+
// 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!:

Código (php) [Seleccionar]

// 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

WHK

más corto:
Código (php) [Seleccionar]
<?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.

zinfinal

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