Comunidad de diseño web y desarrollo en internet online

Ocultar formulario de login

Citar            
MensajeEscrito el 06 Oct 2011 03:26 pm
Hola amigos soy nuevo por aki a ver que tal!

Miren tengo un problema y es el siguiente., Intento oculta un formulario de login cuando el usuario se ha logueado y mostrarle en mensaje de bienvenida. y le e hecho así pero no funciona.

Código PHP :

<?php require_once('conexion.php'); ?>
<?php
mysql_select_db($database_mhh, $mhh);
// username and password sent from form
$myusername=$_POST['usuario'];
$mypassword=$_POST['pass'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM mitabla WHERE apodo='$myusername' and pass='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
$_SESSION['is_log']=true;



header("location:zona.php");
}
else {
header("location:login_error.php");  
}
?>


<html>
<body>

<?php

session_start();
if($_SESSION['is_log']){
echo '<table width="95%" border="0" cellpadding="0" cellspacing="0" align="center">
        <tr>
          <td width="8%" align="center">'.date("d-m-Y").'</td>
          <td width="4%" align="right">&nbsp;</td>
          <td width="79%" align="right">Holaxxx, '.$_SESSION['MM_Username'] .' . Gracias por volver de nuevo</td>
          <td width="9%" align="center"><a href="logout.php" class="a_cabecera">Desconectar</a></td>
        </tr>
      </table>'; 
   }else{
      echo '<form id="login" name="login" method="post" action="login.php">
  <table width="95%" border="0" cellpadding="0" cellspacing="0" align="center">
    <tr>
      <td width="8%" align="center">'.date("d-m-Y").'</td>
      <td width="2%" align="right">&nbsp;</td>
      <td width="53%" align="right">Bienvenido . Inicia tú sesión o <a href="../alta.php" class="a_cabecera">registrate</a></td>
      <td width="7%" align="right"><strong>Usuario:</strong></td>
      <td width="11%" align="right"><input name="usuario" type="text" class="input_login" id="usuario" onkeypress="return validarn(event)" /></td>
      <td width="8%" align="right"><strong>Contraseña:</strong></td>
      <td width="11%" align="right"><label for="pass"></label>
        <input name="pass" type="password" class="input_login" id="pass" onkeypress="return validarn(event)" /></td>
      <td width="6%" align="right"><input name="send" type="submit" class="bt_login" id="send" value="Entrar" /></td>
    </tr>
  </table>
</form>';
   }
   
   ?>

</body>
</html>


Podrian ayudarme por favor. Muchas gracias de antemano!

Por hachedocho2

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 03:43 pm
Debes colocar session_start() al inicio del codigo , o al menos antes de esta linea
$_SESSION['is_log']=true;


ya que si no has iniciado la sesion la variable is_log no se crea


ademas las funciones session_register() han entrado en desuso desde php 5.3 eso no quiere decir que no puedas usarlas pero si que es mas conveniente no hacerlo. para crear variables de sesión hazlo como mismo haces con is_log


un saludo.

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 03:56 pm
Ok hice lo que me dijiste

Código PHP :

session_start();
$_SESSION['myusername'];
$_SESSION['mypassword'];
$_SESSION['is_log']=true;


pero solo me muestra el mensaje de bienvenida

Por hachedocho2

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:03 pm
mientras no elimines las variables de sesion, te mostrara siempre el mensaje de bienvenida, cierra la sesion y compruebalo

las variables myusername y mypassword deben recibir datos una vez compruebes que los datos son validos es cuando debes hacer

$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
$_SESSION['is_log']=true;

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:09 pm
que va no funciona hago logout y sigue saliendo el mensaje.

Por hachedocho2

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:16 pm
pero al hacer logout haces session_destroy() ? o por lo menos $_SESSION['is_log']= false?

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:21 pm
Si lo he corregido hago esto y me sale el form. Pero al loguearme no sale el mensaje

Código PHP :

<?php

session_start();
session_destroy();

?>
<?php
header("location:index.php");
?>

Por hachedocho2

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:26 pm
al loguearte si los datos son correctos el mensaje debe salir es un if sencillo, con lo cual no hay demasiada complicacion salvo que no estes creando la variable $_SESSION['is_log']

si esa variable se crea, el mensaje debe salir y cuando se destruya debe salir el formulario. cuando te logeas correctamente estar redireccionando a zona.php comprueba que no modificas la variable alli en ningun momento.

haz un echo tras loguearte con los datos a ver si son correctos e imprime la variable is_log a ver si se crea correctamente .

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2011 04:32 pm
perfecto amigo no pasaba bien la variable a zona.php. Muchisimas gracias por tu ayuda :)

Por hachedocho2

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.