Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2009, 08:25
haga41
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Problemas llamando a una función

Hola a todos,

Estoy pasando algunas páginas de ASP a PHP y aunque en general no estoy teniendo muchos problemas, creo que no entiendo bien la forma de llamar funciones que estan en un archivo externo en PHP.

El problema que tengo es el siguiente, tengo panel de acceso para los usuarios que cambia en función de si el usuario acaba de entrar, se ha conectado correctamente o ha introducido mal los datos de acceso. Las 3 versiones de este panel son funciones que llamo en función del contenido de la variable $_SESSION['estado']. El caso es que haga lo que haga siempre me llama a la misma función y las otras 2 las ignora a pesar de que por el valor de la variable de sesión debería llamarlas, la validación del usuario y la contraseñ la hace bien ya que he probado a hacer un echo del $_SESSION['estado'] y en cada caso pone lo que corresponde pero siempre llama a la función formulario. Os dejo el código de las 3 páginas por si podéis darme algun consejo.

index.php
Código PHP:
<?php
    session_start
();
    include (
"includes/panel.php");
    
?>
/*Aquí va todo el código de html, excepto el final de body y de html*/
<? if (isset($SESSION['estado'])) {
        if (
$SESSION['estado'] == "ok") {
            
conectado();
            }
        elseif (
$SESSION['estado'] == "ko") {
            
fallo();
        }
    }
    else {
    
formulario();
    }
    echo 
$_SESSION['estado'];
      
 
?>

panel.php
Código PHP:
<?php
session_start
();
include (
"funciones.php");



function 
conectado() {
echo 
'<div class="normal">Bienvenid@ '.$_SESSION["usuario"].'</div><div class="normal2">';
echo 
'<a href="desconectar.php" >Finalizar sesión</a></div>'
}
    
function 
fallo() {
echo 
'<div class="normal2">Nombre de usuario o contraseña incorrecta. <br/>Por favor, vuelva';
echo 
' a intentarlo</a></div>';
echo 
'<form class="formulario" action="validar.php" method="post" >';
echo 
'<label for="usuario">Usuario<br/></label><input name="usuario" type="text" id="usuario"';
echo 
' value="Usuario" size="13" /><label for="pwd">Contraseña<br/></label><input name="pwd"';
echo 
' type="text" id="pwd" value="Contraseña" size="13" style="margin-bottom:5px;" />';
echo 
'<input type="submit"  name="button4" id="button4" value="Acceder" /></form>';
    }
function 
formulario(){

echo 
'<form class="formulario" action="validar.php" method="post" >';
echo 
'<label for="usuario">Usuario<br/></label><input name="usuario" type="text" id="usuario"'; echo 'value="Usuario" size="13" /><label for="pwd">Contraseña<br/></label><input name="pass"';
echo 
' type="text" id="pass" value="Contraseña" size="13" style="margin-bottom:5px;" />';
echo 
'<input  type="submit"  name="button4" id="button4" value="Entrar" /></form>';
    }    
?>
validar.php
Código PHP:
<?php
session_start
();
include (
"includes/funciones.php"); 
$idcnx conectar();

$usu $_REQUEST['usuario'];
$pass $_REQUEST['pass'];

$sql "SELECT * FROM usuarios WHERE usuario='$usu' and pass='$pass'";
$res mysql_query($sql,$idcnx);


if (
mysql_num_rows($res)!=0){
    
$_SESSION['usuario'] = $usu;
    
$_SESSION['estado'] = "ok";
    
header ("Location: foro.php");
}else {
    
$_SESSION['estado'] = "ko";
    
header("Location: index.php");
}
mysql_free_result($res);
mysql_close($idcnx); 
?>