Foros del Web » Programando para Internet » PHP »

Despelote...

Estas en el tema de Despelote... en el foro de PHP en Foros del Web. Feliz semana. Estoy realizando varias cosas en BD. Una de ellas es un script para usuarios, (un admin los registra). La validacion de usuarios la ...
  #1 (permalink)  
Antiguo 29/12/2003, 11:50
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Despelote...

Feliz semana.

Estoy realizando varias cosas en BD.

Una de ellas es un script para usuarios, (un admin los registra).

La validacion de usuarios la hice asi:

SQL = "seleccionar * FROM $tabla WHERE nombre = $usuario";

Y... todo va bien...

"Bastante bien"....

Hasta que....

Se me ocurrio crear al usuario "000".

Y TODO se me volvio un despelote.

Si a alguien se le ocurre ingresar el usuario 0, le da acceso.

Si a alguien se le ocurre ingresar el usuario 00000, le da acceso.

Si a alguien se le ocurre ingresar el usuario 00, le da acceso.

Si a alguien se le ocurre ingresar el usuario 0000000000, le da acceso.


Asi que hice esto:

<?php

$chicha = "000";
$guaro = "0";
if($chicha == $guaro){$resultado = "Que cosa!";}
echo "Aqui todo el chicharron: $chicha $resultado listo.";

?>

Y como ven...

Sigue siendo un despelote.

sinembargo, cree un usuario de nombre 000 en Invision board, y ese si no me permite nada si le meto un usuario: "00".

Es decir..............

(Obviamente) - Ellos si saben como hacerlo.

Por favor, alguien "develeme" ese misterio de que 000 es = a 0, por que si le colocamos:

echo gettype($var);

Me dice que es string.

!............... Estoy casi loco!. Php me esta dando muy duro... : (




-----------------------------------------------------

Como siempre:

Les pido una encimita:

Puedo hacer esto con alguna funcion?:

<?php

echo "como me piden la pagina con GET o POST"

?>

Gracias!.
  #2 (permalink)  
Antiguo 29/12/2003, 12:09
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
lo mas probable es que te este tomando esos ceros como uno solo, se me ocurre que podrias usar la siguiente funcion

strval($nombre_usuario);

esta funcion toma la variable como string explicitamente

http://cl.php.net/manual/es/function.strval.php

saludos
__________________
=PoWeReD By MySeLf!=
  #3 (permalink)  
Antiguo 29/12/2003, 12:34
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Pero puedes ver que esas variables son STRING.

No comprendo bien la respuesta, disulpame.
  #4 (permalink)  
Antiguo 29/12/2003, 13:08
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
es que las variables se evaluan segun el contexto en ke uses la variable, las variables en php no tiene un tipo definido hasta que se evaluan o se opera con ellas. esto significa que si asignas "1" a una var, el tipo de la var se decidira en base a la operacion que intentas hacer.

El strval permite tomar una variable numerica y evaluarla u operar con ella explicitamente como una cadena y no como su valor numerico.

prueba si te resulta utilizando esta funcion

saludos
__________________
=PoWeReD By MySeLf!=

Última edición por e-miliox; 29/12/2003 a las 13:10
  #5 (permalink)  
Antiguo 29/12/2003, 13:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En PHP tienes el operador === (si, 3 iguales) que indica que las comparaciones se van hacer bajo el mismo valor y el mismo tipo:

if ($nose === "000"){
}

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 30/12/2003, 16:53
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Muchas gracias.

Con su ayuda intentare dar otro paso.

De veras que estoy algo "cansado" de tener que molestar pa tantas cosas a uetdes.

Son muy amables.

"Me evadieron la pregunta 2":

<?php

echo "como me piden la pagina con GET o POST"

?>


Les agradezco si me responden si eso es posible.

Algo como...

echo "Con que protocolo me piden la info";


Muy gentiles.

Algun dìa dejare de molestarles.
  #7 (permalink)  
Antiguo 30/12/2003, 19:08
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
podrias ser un poco mas explicativo? es que no queda claro que es lo que estas preguntando, de hecho pense que eso era parte de tu firm
__________________
=PoWeReD By MySeLf!=
  #8 (permalink)  
Antiguo 30/12/2003, 19:19
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias.

No se nada de "seguridad".

Asi que hice un formulario del calsico:

if($pass == dsafsqwqw)


...

Asi que se me ocurre que si le coloo otra opcion como:

AND "mepidenlainfoporGET"

Tonces si lo dejo pasar.

por que

if("PETICION DE LA PAGINA" == "post")

sale

Es decir, php sabe que browser se usa, que hora es, desde que pagina solicitan.... ETC...

Hay una forma de que el nos diga si accden a la pagina por POST o po r GET?

Gracias.
  #9 (permalink)  
Antiguo 31/12/2003, 07:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El método que han empleado para llegar a tu script lo tienes en la variable de servidor:

REQUEST_METHOD

Así puedes acceder por el array superglobal $_SERVER:

Código PHP:
if ($_SERVER['REQUEST_METHOD'] == "GET"){  // GET, POST,etc
// Entraron por GET

Màs info:
http://www.php.net/manual/en/reserved.variables.php

Pero, .. lo normal es que accedas directamente al array superglobal que esperas las variables para hacer tus condicionales ..

Ejemplo .. si usas un formulario y envias los datos por POST (method de tu formulario = POST), harías:

Código PHP:
if ($_POST['variable'] == "valor"){
// La variable "variable" entrò por post y tiene el "valor" esperado.

o bien

Código PHP:
if (isset($_POST['variable'])){
// la "variable" está definida .. osease, entró por POST (con o sin valor)

e incluso

Código PHP:
if (!empty($_POST['variable'])){
// la "variable" está definida y tiene valor distinto (!) a NULL o "" (cadena vacia) y entró por POST

Lo mismo harías con otros métodos como GET .. o incluso para discriminar si tu variable es de una cookie o una sessión ($_COOKIE , $_SESSION ) .. o es de un archivo que subes por Upload HTTP ($_FILES) .. etc.

De esto se habla un poco en esta FAQ:
http://www.forosdelweb.com/showthrea...989#post238989

(tienes unos links abajo de la misma faq que te llevan a tutoriales más completos .. echales un vistazo).

Todo esto lo detalla el manual oficial de PHP en sus priméros capìtulos .. Date el tiempo de leerlo aunque sea a la rápida para que cuando tengas dudas te "suene" la cosa y saber por donde mirar más información.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:54.