Foros del Web » Programando para Internet » PHP »

me ignora un isset

Estas en el tema de me ignora un isset en el foro de PHP en Foros del Web. Hola a todos. Mi problema esta en que al principio de una pagina tengo esto: Código PHP: <?php session_start ();  require( "../requis/requi.php" );   if(!isset( $_SESSION ...
  #1 (permalink)  
Antiguo 18/07/2009, 10:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
me ignora un isset

Hola a todos.

Mi problema esta en que al principio de una pagina tengo esto:

Código PHP:
<?php
session_start
();
 require(
"../requis/requi.php"); 
 if(!isset(
$_SESSION["nk_usu"]) and !isset($_SESSION["nk_pass"]))
    {
    
$usuariologin="noexiste";
    if(isset(
$_POST["usuario"]) and isset($_POST["password"]))
        {
        
$nick=$_POST["usuario"];
        
$pass=$_POST["password"];
        
$pass=md5($pass);
        
$sql="Select * from usuarios where nick='$nick' and pass='$pass'";
        
$resul=mysql_query($sql);
        
$temamysql_fetch_array($resul);
            
$varilog="siexiste";
    
        if (
$tema["nick"]==$nick and $tema["pass"]==$pass )
            {
            
$_SESSION["nk_usu"]=$nick;
            
$_SESSION["nk_pass"]=$pass;
            
header ("location: ./panel.php");
            
$usuexist="siexiste";
            }
        else
            {
            
$usuexist="noexiste";
            }
        }
    else
        {
        
$varilog="noexiste";
        }
    
    }
else
    {
    
$usuariologin="siexiste";
    }

?>
Después de un poco de código html tengo esto siguiente:

Código PHP:
        <?php
        
        
if ( $usuariologin == "noexiste" )
            {
            if ( 
$varilog == "noexiste" )
                {
                echo 
"<td valign=\"top\"><b>Tienes que iniciar sesi&oacute;n</b></td>";
                }
            else
                {
                if( 
$usuexist == "noexiste" )
                    {
                    echo 
"<td>El usuario o contrase&ntilde;a es incorrecta </td>";
            
                    }
                }
            }
        else
            {
        
?>    

                <td>
                    <a href=""><img src="http://www.forosdelweb.com/f18/iconos/sobre.gif" border="0" width="60" height="50"></a>
                </td>
                <td>
                    <a href=""><img src="http://www.forosdelweb.com/f18/iconos/mdat.png" border="0" width="60" height="50"></a>
                </td>
                <td>
                    <a href=""><img src="http://www.forosdelweb.com/f18/iconos/adfo.png" border="0" width="50" height="50"></a>
                </td>
            <tr align="center" bgcolor="#0000FF">
                <td>
                    <a href="">Buz&oacute;n</a>
                </td>
                <td>
                    <a href="">Cambiar Clave</a>
                </td>
                <td>
                    <a href="">Ver Suscripciones</a>
                </td>
               </tr>
                <?php
                  
}
              
?>
El problema que tengo es que parece que se salta esta linea:

if(isset($_POST["usuario"]) and isset($_POST["password"]))
{
  #2 (permalink)  
Antiguo 18/07/2009, 10:13
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: me ignora un isset

De la unica manera que te puede ignorar esa linea
es si los post usuarios y password estan indefinidos.

Te sugiero que imprimas despues del require las variables
Para ver su contenido.

Código PHP:
echo $_POST["usuario"];
echo 
$_POST["password"]; 
  #3 (permalink)  
Antiguo 18/07/2009, 10:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

Cada vez entiendo menos lo que esta pasando, el caso es que hago eso y me muestra los contenidos de las variables, pero me dice que el usuario o contraseña no son correctos.

El caso e que estaba en un alojamiento anteriormente que esto funcionaba perfectamente, pero ahora nos hemos mudado y no funciona...
  #4 (permalink)  
Antiguo 18/07/2009, 10:44
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: me ignora un isset

Muestra el formulario que alimenta los datos del post.
Y que tienes en el require ?
  #5 (permalink)  
Antiguo 18/07/2009, 10:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

En el require solo tengo los datos de conexion de la base de datos.

el formulario es el siguiente:

Código PHP:
 if(!isset($_SESSION["nk_usu"]) and !isset($_SESSION["nk_pass"]))
        {
    ?>
    <form name="form1" class="login" method="POST" onSubmit="javascript:logea(); return false">
    
    <input value="usuario" name="usuario" onClick="javascript:cambio()">
    <input type="password" name="password" value="contrase&ntilde;a" onClick="javascript: cambio()">
    <input type="submit" name="Submit" value="Enviar">
    </form>

 
<?php
        
}
?>
Los datos llegan bien porque los he comprobado
  #6 (permalink)  
Antiguo 18/07/2009, 10:54
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

que hace la funcion de javascript: onSubmit="javascript:logea(); return false" ?

Y la "javascript: cambio()" ?

Otra cosa... el script php ese, esta en la misma pagina que el formulario, o esta en otro archivo diferente?
  #7 (permalink)  
Antiguo 18/07/2009, 11:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

el onsubmit comprueba k los valores del campo no estan en blanco.

el cambio() pone los inputs en campos en blanco ya que cuando cargas la pagina sale en el las palabras usuario o contraseña, el script php esta en otra aparte, es decir, este formulario es el de logearse, cuando una persona pone su usuario o contraseña, este manda a la pagina que esta ese Script para crear las variables de sesion.
  #8 (permalink)  
Antiguo 18/07/2009, 11:05
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: me ignora un isset

Veo que tu problema es otro
Aqui te posteo la posible solucion.

Código PHP:

session_start
();
 require(
"../requis/requi.php"); 
 if(!isset(
$_SESSION["nk_usu"]) and !isset($_SESSION["nk_pass"]))
    {
    
$usuariologin="noexiste";
    if(isset(
$_POST["usuario"]) and isset($_POST["password"]))
        {
        
$nick=$_POST["usuario"];
        
$pass=$_POST["password"];
        
$pass=md5($pass);
        
$sql="Select * from usuarios where nick='$nick' and pass='$pass'";
        
$resul=mysql_query($sql);
       
       if ( 
mysql_num_rows($resul)){
       
             
$temamysql_fetch_array($resul);
            
$varilog="siexiste";
    
        if (
$tema["nick"]==$nick and $tema["pass"]==$pass )
            {
            
$_SESSION["nk_usu"]=$nick;
            
$_SESSION["nk_pass"]=$pass;
            
header ("location: ./panel.php");
            
$usuexist="siexiste";
            }
          
        else
            {
            
$usuexist="noexiste";
            }
        }
           
        else{
    
            
$varilog="noexiste";
        }
       
       }
       
       } 
  #9 (permalink)  
Antiguo 18/07/2009, 11:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

Siento decirte que me sigue diciendo que el usuario o contraseña no existe.

El caso es que creo que no llega a hacer la consulta, porque cuando pongo que muestre el mysql_num_rows($resul), este no muestra nada, ni 0 ni 1 ni nada....
  #10 (permalink)  
Antiguo 18/07/2009, 11:41
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

umm... tal vez tengas un error en la coneccion a la db y te queda oculto por alguna parte del html... pone esto en alguna parte del codigo:

Código PHP:
$db_error mysql_error($conn);
if(!empty(
$db_error)) {
            echo 
"Ha habido un error al conectar a la base de datos.<br> $db_error";
            } 

la variable $conn seria la que tenes en el archivo 'requi.php'

$conn = mysql_connect(localhost,user,pass) or die();
  #11 (permalink)  
Antiguo 18/07/2009, 11:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

no uso variable para conectar a la base de datos mi forma de conectar es la siguiente:
mysql_connect("host","user","pass");
mysql_select_db("nombre_bd");
  #12 (permalink)  
Antiguo 18/07/2009, 12:00
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

Ah... mira, no soy un experto pero del modo que yo lo eh aprendido... la sintaxis de una query es esta...

mysql_query(consulta,coneccion);

te recomendaria usar una variable para hacer la conexion a la db y modificar la linea:

$resul=mysql_query($sql);

por algo como...

$resul=mysql_query($sql,$conn);

Asi lo haria yo...
  #13 (permalink)  
Antiguo 18/07/2009, 12:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

vale acabo de probar y la forma de conectar la base de datos no es, porque no me a salido ningún error...
  #14 (permalink)  
Antiguo 18/07/2009, 12:07
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

Fuaa, me rindo... se me acabaron las ideas....

estas seguro de que estas seleccionando la base de datos correcta? que esa base de datos tiene los campos que estas pidiendo, y que mas importante.... que el usuario que estas pidiendo este registrado en la db...
  #15 (permalink)  
Antiguo 18/07/2009, 12:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

si si, es mas todas las demas consultas funcionan y ese usuario es el mio asi que esta todo bien...
  #16 (permalink)  
Antiguo 18/07/2009, 12:29
Avatar de cesarpi80  
Fecha de Ingreso: mayo-2009
Mensajes: 159
Antigüedad: 14 años, 11 meses
Puntos: 10
Respuesta: me ignora un isset

Hola no te entendi muy bien tu problema pero te resalto estas lineas qeu tienes en tu código ya que nunca se va a cumplir lo que tienes ahi.

Código PHP:
header ("location: ./panel.php");
            
$usuexist="siexiste"
El header abandona la pagina, y la variable $usuexist no recibe ningún valor. No se si ese sea uno de tus problemas ...

Salu2
__________________
Tratando de aprender lo mas que se pueda !!!
  #17 (permalink)  
Antiguo 18/07/2009, 12:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

el caso es que no llega a hacer el header tampoco... el problema esta en que en en esta linea

Código PHP:
if(isset($_POST["usuario"]) and isset($_POST["password"])) 
        { 
        
$nick=$_POST["usuario"]; 
        
$pass=$_POST["password"]; 
        
$pass=md5($pass); 
parece que es como si los POST no existiesen.
  #18 (permalink)  
Antiguo 18/07/2009, 13:47
Avatar de cesarpi80  
Fecha de Ingreso: mayo-2009
Mensajes: 159
Antigüedad: 14 años, 11 meses
Puntos: 10
Respuesta: me ignora un isset

Cita:
Iniciado por frins89 Ver Mensaje
el caso es que no llega a hacer el header tampoco... el problema esta en que en en esta linea

Código PHP:
if(isset($_POST["usuario"]) and isset($_POST["password"])) 
        { 
        
$nick=$_POST["usuario"]; 
        
$pass=$_POST["password"]; 
        
$pass=md5($pass); 
parece que es como si los POST no existiesen.
Conclusion, el problema esta en tus datos que estan pasando, consejo sano, pone echos para imprimir los valores de usuario y password, a ver que valor contienen antes de entrar a esta comparacion con el isset.

Código PHP:
echo $_POST["usuario"];
        echo 
$_POST["password"]; 
Por lo demas te puedo decir que tu código esta bien, salvo el error con el header que te mencione anteriormente.
__________________
Tratando de aprender lo mas que se pueda !!!
  #19 (permalink)  
Antiguo 18/07/2009, 13:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

el caso es que ya lo he hecho.

Lo mas curioso, es que antes tenia la web alojada en otro lugar y funcionaba pero desde que la he cambiado esto da error.
  #20 (permalink)  
Antiguo 18/07/2009, 13:56
Avatar de cesarpi80  
Fecha de Ingreso: mayo-2009
Mensajes: 159
Antigüedad: 14 años, 11 meses
Puntos: 10
Respuesta: me ignora un isset

Yo lo probe en mi servidor tu codigo, identicamente, y me da bien ... Eso si me cerciore que todas las variables estuviesen con contenido.

Y lo del Header revisalo, esa bandera despues de este, no te va a funcionar.
__________________
Tratando de aprender lo mas que se pueda !!!
  #21 (permalink)  
Antiguo 18/07/2009, 16:17
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

no tengo idea de verciones de php y que diferencias hay entre unas y otras...

Pero si decis que en otro host andaba, y cesarpi80 dice que a el le funciona, lo mas probable, o lógico es que el problema este en la configuracion de php.ini o bien, en la vercion de php...

Fijate si son diferentes las verciones de php de los dos host, el que usas ahora y el que usabas antes...
  #22 (permalink)  
Antiguo 18/07/2009, 17:01
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: me ignora un isset

proba imprimir con print_r($_POST); y fijate si te muestra 'Array()' o el array que contiene las variables del post; si este muestra esto ultimo deberias usar empty o ambas en tu if.

otra solucion seria que pruebes con las variables globales.
$HTTP_POST_VARS ya que $_POST no este activado en todas las vesiones de php por default o quizar fueron desactivado por el administrador.

Espero que te sirva.
  #23 (permalink)  
Antiguo 18/07/2009, 17:11
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: me ignora un isset

Buenas:
He visto que como conclusión sacais el php.ini. No creo que sea ese el problema, pues las variables POST se envian sin problema, y la conexión a la base de datos no creo que varíe mucho entre una versión y otra. El problema que veo es que alomejor tu base de datos está diseñada de otra manera: Puede ser que en vez de pass sea Pass, cuida las mayúsculas y minusculas, eso nos quita siempre problemas. Cuida tu conexión a la base de datos: aveces el php.ini está configurado para no mostrar ciertos errores, o simplemente, la conexión está hecha bien, pero no conecta con la base de datos.

Comprueba cada paso de tu script: desde que envias el formulario hasta la base de datos. Piensa que los datos están en md5, y si tu pruebas con poner una pass cualquiera, te dará error. Sé que son cosas obias, pero alomejor un fallo tonto nos desmonta todo un script. Pues eso, vigila .las mayúsculas, la base de datos, vigila la versión de mysql, y intenta siempre ir en busca del error: a veces si te sale error, lo encuentras y lo arreglas.

Ah, se me olvidaba: si quieres ver si hay un error en el mysql, al hacer un query, pon un mysql_error():
Código PHP:
  $resul=mysql_query($sql) or die (mysql_error()); 

Última edición por hebo; 18/07/2009 a las 17:17 Razón: Añadir
  #24 (permalink)  
Antiguo 19/07/2009, 03:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

Hola a tod@s,

En primer lugar hebo, la base de datos es la misma que tenia en el anterior host, y en este funciona, pagina no tiene ninguna modificación en las consultas ni nada, así que cosa de mayúsculas o minúsculas no puede ser.

Por otro lado he hecho lo de :
Código PHP:
$resul=mysql_query($sql) or die (mysql_error()); 
y me dice lo siguiente:

Access denied for user 'apache'@'localhost' (using password: NO)

No entiendo esto....
  #25 (permalink)  
Antiguo 19/07/2009, 07:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: me ignora un isset

Cita:
Iniciado por frins89 Ver Mensaje

y me dice lo siguiente:

Access denied for user 'apache'@'localhost' (using password: NO)

No entiendo esto....
Hola
lo de Access denied es que te esta diciendo que el acceso a sido negado al usuaria que intenta conectarse a mysql. porque no esta usando contraseño o es Incorrecta.
Revisa bien ese detalle porque ahí esta tu problema.
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #26 (permalink)  
Antiguo 19/07/2009, 07:22
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: me ignora un isset

El problema es
O estas poniendo la clave mal puesta
O el usuario esta mal puesto .

O ninguno de los dos han sido creados.
  #27 (permalink)  
Antiguo 19/07/2009, 07:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: me ignora un isset

Vaya tela!!! Pues no era ni el usuario ni contraseña chicos, en vez de poner en el nombre del servidor "localhost" tenia puesto otro alternativo que me dijeron en un mail. El caso es que he cambiado eso por "localhost" y ya funciona...!!!

Gracias a todos por la ayuda!!
  #28 (permalink)  
Antiguo 19/07/2009, 11:35
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: me ignora un isset

¬¬ hiciste tremendo quilombo y al final el error estaba en algo que nisiquiera nos habias mostrado...

Menos mal que te dije que revisaras la conexion 8-)
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 00:11.