Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: TheGeorge en 14 de Octubre de 2009, 20:37:37 pm

Título: $_SERVER['PHP_SELF'] (Seguro)
Publicado por: TheGeorge en 14 de Octubre de 2009, 20:37:37 pm
¡He leido que es inseguro!

¿Cómo o que función podría usar para escribir en el action de un form de tal manera que sea seguro?

Agradezco de antemano su colaboración-.

Saludos-.
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 14 de Octubre de 2009, 20:38:54 pm
creo k poniendo htmlspecialchars($_SERVER['PHP_SELF']); esta arreglado
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: TheGeorge en 14 de Octubre de 2009, 20:40:24 pm
creo k poniendo htmlspecialchars($_SERVER['PHP_SELF']); esta arreglado

Muchas gracias. :D

¿Alguna otra sugerencia?

Saludos
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 14 de Octubre de 2009, 20:51:08 pm
tambien es mas sencillo usar $_SERVER['SCRIPT_NAME']
Tambien hay alguna variable que devuelve la URL completa y esto, puedes ver todas usando:
<?php
foreach($_SERVER as $nombre => $valor) {
echo '$_SERVER[\''.$nombre.'\'] => '.$valor.'<br>';
}
?>

Salu2.
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: TheGeorge en 14 de Octubre de 2009, 20:53:55 pm
a $_SERVER['SCRIPT_NAME'] no es necesario ponerle htmlspecialchars() verdad?

Saludos
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 14 de Octubre de 2009, 21:13:24 pm
no, k yo halla visto
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 14 de Octubre de 2009, 21:40:59 pm
tambien es mas sencillo usar $_SERVER['SCRIPT_NAME']
Tambien hay alguna variable que devuelve la URL completa y esto, puedes ver todas usando:
<?php
foreach($_SERVER as $nombre => $valor) {
echo '$_SERVER[\''.$nombre.'\'] => '.$valor.'<br>';
}
?>

Salu2.
West, ¿Pordrías explicar ese codigo que haz usado para saber el resultado de la variable $_SERVER?
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 15 de Octubre de 2009, 16:18:18 pm
en realidad me e complicado la vida bastante xD
eso lo un foreach, la primera variable ($_SERVER) es la variable (que debe ser array) que sera recorrida por el foreach.
as $otravariable es la variable donde se guarda el valor de ese "elemento" del array, al añadir => $otravar2 pasa aguardarse hay el valor, y en $otravariable el nombre de la llave ($array['LLAVE']).

Es un lio foreach, y lo e puesto sencillamente para que sea facil de entender al mostrarse, ya que mostraria:

$_SERVER['algo'] => 'valor'
$_SERVER['algo2'] => '...'
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 15 de Octubre de 2009, 21:42:03 pm
Yo se usar foreach, lo que no entendi fue la parte de => 'valor', Me explicas esa parte mejor.  :-[

Y gracias de antemano.
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 15 de Octubre de 2009, 21:46:57 pm
uffff.
a ver, si sabes foreach sabes que si tienes:
$array = array('hola', 'adios');
foreach($array as $a) {
echo $a;
}
saldra hola y adios.

Pero si el array es asi (CREO k es un array ASOCIATIVO):
$array = array('saludo' => 'hola', 'despedida' => 'adios');

abria que usar esto:
foreach($array as $llave => $valor) {
lo que hace es almacenar la llave y el valor de ella, es decir $llave seria 'saludo' y $valor 'hola'

No se si me explique bien
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 26 de Octubre de 2009, 22:38:09 pm
Bueno creo que en el codigo que tu hiciste no es necesario el $valor, ya que puede ser:
Citar
<?php
foreach($_SERVER as $nombre) {
echo '$_SERVER[\''.$nombre.'\'] => '.$nombre.'<br>';
}
?>

Estoy en lo cierto?, ya que me imagino que $nombre es igual a todos los valores de $_SERVER(PHP_SELF,REMOTE_ADDR,etc..) entonces el $valor seria innecesario, west corrigeme si estoy en lo errado.
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 27 de Octubre de 2009, 17:15:15 pm
piensa, si resulta que $_SERVER[$nombre] = $nombre me estas diciendo que el nombre es igual al valor, es decir:
$_SERVER['REMOTE_ADDR'] = REMOTE_ADDR
$_SERVER['PHP_SELF'] = PHP_SELF

etc...
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Tope en 27 de Octubre de 2009, 17:34:06 pm
No os desvieís, porque entonces me pongo yo a dar la tabarra un rato con los arrays.

Para no pelearse, usad

<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
?>
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 27 de Octubre de 2009, 18:31:22 pm
No os desvieís, porque entonces me pongo yo a dar la tabarra un rato con los arrays.

Para no pelearse, usad

<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
?>


Que peleas ni que leches??

Y obvio eso es mas sencillo, pero menos organizado y mas dificil de entender para quien no sepa
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: CarlosRdrz en 27 de Octubre de 2009, 18:50:43 pm
Hola,

No entiendo por qué hacéis un mundo de lo que es tan fácil.
Si no sabéis el contenido de las variables superglobales o que indican, solo tenéis que mirar la documentación de PHP:
http://docs.php.net/manual/es/reserved.variables.server.php

Saludos
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 27 de Octubre de 2009, 19:29:01 pm
piensa, si resulta que $_SERVER[$nombre] = $nombre me estas diciendo que el nombre es igual al valor, es decir:
$_SERVER['REMOTE_ADDR'] = REMOTE_ADDR
$_SERVER['PHP_SELF'] = PHP_SELF

etc...
¿Y si es $_SERVER[$nombre] = $valor?
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 27 de Octubre de 2009, 19:52:27 pm
no te entiendo?
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 27 de Octubre de 2009, 20:21:39 pm
Me dijiste que si yo ponía $_SERVER[$nombre] = $nombre , me iba a dar como resultado $_SERVER['REMOTE_ADDR'] = REMOTE_ADDR etc.. y te pregunto que si pongo $_SERVER[$nombre] = $valor, ¿Qué devolvería?
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 27 de Octubre de 2009, 20:23:54 pm
pues $_SERVER['elnombre'] = elvalor

$_SERVER['REMOTE_ADDR'] = 1.1.1.1.1
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: Focux en 27 de Octubre de 2009, 20:31:28 pm
pues $_SERVER['elnombre'] = elvalor

$_SERVER['REMOTE_ADDR'] = 1.1.1.1.1
A ok, por ultimo, ¿Por qué en la primera parte de $_SERVER['REMOTE_ADDR'] = 1.1.1.1.1, en vez de mostrar 1.1.1.1.1, muestra $_SERVER['REMOTE_ADDR']?
Título: Re:$_SERVER['PHP_SELF'] (Seguro)
Publicado por: westwest en 27 de Octubre de 2009, 20:32:09 pm
por que es el nombre del array...