Foros del Web » Programando para Internet » PHP »

Problema con if

Estas en el tema de Problema con if en el foro de PHP en Foros del Web. Hola a todo, estoy haciendo un login simple pero con usuarios ya determinados... Es decir, le asigno un numero a cada uno (solo un numero) ...
  #1 (permalink)  
Antiguo 09/01/2013, 01:06
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta Problema con if

Hola a todo, estoy haciendo un login simple pero con usuarios ya determinados... Es decir, le asigno un numero a cada uno (solo un numero) y hago que se logue con eso.
Los datos los guardo en un array (que aprendi hace poco), pero en la condicion tengo problemas...

Código PHP:
$usuario = array(879456123,321654987,123789456,546879224);
    
     
    if(
$_POST['login']!=$usuario){
        
header("location:index.php?error=1");
    }
    else{
        
header("location:home.php");
    } 
no importa los ponga en el input, todo me ?error=1. Probe haciento esto...

Código PHP:
if($_POST['login']!=$usuario[]){... 
Pero metira error y pongo cero solo me deja ingresar ya saben quien, 879456123.

Que hago mal?

Gracias
__________________
Zreep
  #2 (permalink)  
Antiguo 09/01/2013, 01:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con if

Me imagino que lo que intentas es comprobar si lo que recibes existe en el array ¿verdad?

Porque la comparación que haces es booleana, y jamás va a ser igual el string que recibes del formulario con el array.

Pienso que necesitas usar in_array(), consulta el manual.
http://php.net/in_array
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/01/2013, 01:37
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Problema con if

Gracias Pateketrueke... lei el manual e hice esto;

Código PHP:
if(!in_array($_POST['login'],$usuario)){ 
y funciona bien... por ahora. Este es el script completo...

Código PHP:
$usuario = array(879456123,321654987,123789456,546879224);
    
    
//echo $usuario[3];  
    
if(!in_array($_POST['login'],$usuario)){
        
header("location:index.php?error=1");
    }
    else{
        
header("location:home.php");
    } 

Gracias...
__________________
Zreep
  #4 (permalink)  
Antiguo 09/01/2013, 02:20
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Problema con if

Una pregunta mas... se supone que $_POST envia los datos pasados que estan asignados en el arrays. Entonces en otro script los asocio;

home.php

Código PHP:
$usuarios = array(
    
879456123 => "Nico",
    
321654987 => "Mack",
    
456789123 => "Tuni",
    
147852963 => "Seva",
    );

echo 
"hola".$usuario[879456123]; 
osea, tomo los mismos valores del array anterior y les asino nombre...

pero como hago para tomar los datos pasados por POST y que el array lo identifique?

me explico?
__________________
Zreep
  #5 (permalink)  
Antiguo 09/01/2013, 03:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con if

Recuerda que $_POST también es una variable, y como variable puedes usarla donde la necesites.

Igualmente podría asignar su valor a otra variable, no es nada del otro mundo.

Solo debes intercambiar el valor que usas directamente por la variable.

Pero eso ya lo sabes hacer así que no entiendo tu duda.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 09/01/2013, 11:21
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Problema con if

Pero no logro traer los datos desde index...

Código PHP:

var_dump
($_POST['login']);

$usuarios = array(
    
879456123 => "Nico",
    
321654987 => "Mack",
    
456789123 => "Tuni",
    
147852963 => "Seva",
    );

echo 
"Hola ".$_POST['login']; 

estoy tratando de usar var_drump me quede estancado y me da estos errores...

Notice: Undefined index: login
NULL
Notice: Undefined index: login
__________________
Zreep
  #7 (permalink)  
Antiguo 09/01/2013, 11:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con if

Las variables POST no se transmiten a todas las paginas, solamente están "vivas" al momento de hacer un submit de un formulario.

Lo que debes de hacer es usar una sesión para mantener el valor de esas variables.

Saludos.
  #8 (permalink)  
Antiguo 09/01/2013, 11:36
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Problema con if

GatorV Gracias... no queria trabajar con sesiones, pero no me va a quedar otra! Je!... Con las sesiones ya lo tenia resuelto...


Gracias
__________________
Zreep
  #9 (permalink)  
Antiguo 09/01/2013, 13:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con if

Pues no te queda de otra, la otra forma es transmitir por todos lados la variable $_GET, o navegar por formularios ocultos, así cada vez que hagan click a algo hacen un POST realmente, aunque eso hace que no puedas usar las flechas de navegación ya que el browser no hace cache de los POST.

Saludos.
  #10 (permalink)  
Antiguo 12/01/2013, 17:02
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Problema con if

GatorV, entiendo lo que me decis y gracias! Deje de lado los arrays y los hice con sessiones... Lo bueno es que trabaje con arrays un rato y aprendi algo... Gracias
__________________
Zreep

Etiquetas: usuarios
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 15:56.