Foros del Web » Programando para Internet » PHP »

formulario de inicio de sesion

Estas en el tema de formulario de inicio de sesion en el foro de PHP en Foros del Web. Hola amigos, tengo un problema en un inisio de sesion (php) les dejo el codigo para que me puedan ayudar en que me equivoque y ...
  #1 (permalink)  
Antiguo 24/12/2012, 23:07
 
Fecha de Ingreso: octubre-2012
Ubicación: Talca
Mensajes: 13
Antigüedad: 11 años, 6 meses
Puntos: 0
Información formulario de inicio de sesion

Hola amigos, tengo un problema en un inisio de sesion (php)


les dejo el codigo para que me puedan ayudar en que me equivoque y como puedo solucionarlo



ingresar1.php
Código PHP:
<?php
session_start
();   

  
  require 
'conectar.php';
  

  if (
$_POST['usuario']) {
//Comprobacion del envio del nombre de usuario y password
$user=$_POST['usuario'];
$pass=$_POST['clave'];

if(
$user==NULL|$pass==NULL) {
echo 
"<font color='red'><b>Hay uno o mas campos vacios</b>.</font>";
echo 
'<script type="text/javascript">close()</script>';
}else{
$query mysql_query("SELECT usuario,clave FROM Admin WHERE usuario = '$user'") or die(mysql_error());
$dato mysql_fetch_array($query);
if(
$dato['clave'] != $pass) {
echo 
"<font color='red'><b>Los datos ingresados no son validos</b>.</font>";
echo 
'<script type="text/javascript">close()</script>';
}else{
$query mysql_query("SELECT usuario,clave FROM Admin WHERE usuario = '$user'") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_usuario"] = $row['usuario'];
echo 
"Bienvenido <b>".$_SESSION['s_usuario']." |</b> <a href=\"index.php\">Inicio</a> <b>|</b> <a href=\"salir.php\">Cerrar Sesion</a>";
echo 
'<script type="text/javascript">open()</script>';
}
}
}  
?>
<?php 
require 'info.php'?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XXXXXX</title>
<link href="XX.css" rel="stylesheet" type="text/css" />
<link href="XXXX.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="principal">

  <div id="cabecera"> 
    <div id="titulo"> 
      <center>
      <h1>XXXXXXXXXXXXXXXX</h1>
 </center><br>
    </div>
  </div>
  

  </div>
  

</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<center>
<?php
echo "Por favor inicia sesi贸n para acceder al Sistema.";
echo 
'<br />';
echo 
'<br />';
    
// formulario para iniciar sesion
    
echo "<form method='post' action=\"ingresar2.php\">";
    echo 
"<table>";
    echo 
"<tr><td><b>Usuario:</b></td>";
    echo 
"<td><input type=text name=usuario></td></tr>";
    echo 
"<tr><td><b>Clave:</b></td>";
    echo 
"<td><input type=password name=clave></td></tr>";
    echo 
"<tr><td colspan=2 align=center><br>";
    echo 
"<input type=submit value=\"Acceder\"></td></tr>";
    echo 
"</table></form>";
  
?>
</center>
</body>
</html>

ingresar2.php

Código PHP:
<?php
session_start
();
require 
'conectar.php';
  
{
//Comprobacion del envio del nombre de usuario y password
$user=$_POST['usuario'];
$pass=$_POST['clave'];

//validacion del usuario y la clave
if(empty($_POST['usuario'])){ //Validar Campos
$error['usuario']= 'El Campo Usuario No Se Puede Dejar Vacio';
}
if(empty(
$_POST['clave'])){
$error['clave']= 'El Campo de Contraseña No Se Puede Dejar Vacio';
}
if(!
$error){
$query mysql_query("SELECT usuario,clave FROM Admin WHERE usuario = '$user' and estado = 1") or die(mysql_error());
$dato mysql_fetch_array($query);
if(
$dato['clave'] != $pass) {
echo 
"<font color='red'><b>Los datos ingresados no son validos</b>.</font>";
echo 
'<script type="text/javascript">close()</script>';
}else{
$query mysql_query("SELECT usuario,clave FROM Admin WHERE usuario = '$user' and estado = 1") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_usuario"] = $row['usuario'];
echo 
"Bienvenido <b>".$_SESSION['s_usuario']."</b> <a href=\"salir.php\">Cerrar Sesion</a>";
echo 
'<script type="text/javascript">open()</script>';
}
}
}  
?>
<?php 
require 'info.php'?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XXXXXXXXXXXX</title>

<link href="XXXXX" rel="stylesheet" type="text/css" />
<link href="XXX" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="principal">

  <div id="cabecera"> 
    <div id="titulo"> 
      <center>
      <h1>XXXXXXX</h1>
      </center>
    </div>
  </div>
  
<div id="menu">
<br>
<ul>
   <li><a href="index.php">Continuar</a> 
    </li>
    </ul>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<center>
<?php
echo "<b><font size=4>Haga clic en Continuar, ubicado en la parte superior izquierda.</font></b>.";

  echo 
'<br />';
echo 
'<br />';
echo 
'<br />';
echo 
'<br />';
 
    echo 
"FPM";
?>
</center>
</body>
</html>
La idea es que cuando alla algun dato erroneo tire en pantalla un mensaje y luego vuelva al formulario de inicio de sesion, intente con if(empty($_POST['clave'])){ entonces error pero no se como poner una alerta emergente no se si me entienden ha y validar si un campo esta vacio el cual reclame
  #2 (permalink)  
Antiguo 25/12/2012, 06:31
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: formulario de inicio de sesion

Esto es una pequeña sugerencia, en vista de que quieres controlarlo "rapido", simplemente sabiendo si esta vacio o no alguno de los datos.

- Crea una funcion en JavaScript que te tome los datos y compruebe si estan vacios o no, devolviendo true en caso de estar todo bien y false y un alert() avisando.
- Despues en la parte del envio del Form antes de meter el action haces la llamada a esa funcion que creaste. Asi cuando detecte que es True se enviara y si es false, te dejara en ese mismo sitio.

También puedes en el mismo Script controlar el campo que esta vacio poniendo un <div id="Usuario" style="display: none"></div> debajo del campo usuario, lo mismo con la contraseña. Y en el script le pones el Style visible y un InnerHTML con el texto que quieras y listo.

A ver si te puedo preparar un ejemplo de lo que te digo.

Una recomendación procura usar isset en vez de $user==NULL ya que algunos servidores te pueden tirar error al hacer una comprobación de una variable sin "rellenar". Esto te lo pondre en el ejemplo también.

Código de ejemplo:
- Funcion que controlara los campos.....
Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. function Comprobacion(){
  3.     // Declaro las variables a usar
  4.     var CampoUsuario = document.getElementById('Usuario').value;
  5.     var CampoPassword = document.getElementById('Pass').value;
  6.     var Control = true;
  7.    
  8.     // Limpio los mensajes por si acaso ya estaban llenos
  9.     document.getElementById("AviUsuario").style.display = "none"
  10.     document.getElementById("AviUsuario").innerHTML = null;
  11.     document.getElementById("AviContrasena").style.display = "none"
  12.     document.getElementById("AviContrasena").innerHTML = null;
  13.    
  14.     // Hago las comprobaciones
  15.     if (CampoUsuario == "") {
  16.         Control = false;
  17.         document.getElementById("AviUsuario").style.display = "block"
  18.         document.getElementById("AviUsuario").innerHTML = "El nombre de usuario esta vacio";
  19.     }
  20.     if (CampoPassword == "") {
  21.         Control = false;
  22.         document.getElementById("AviContrasena").style.display = "block"
  23.         document.getElementById("AviContrasena").innerHTML = "La contraeña esta vacia";
  24.     }
  25.     // Devuelvo el resultado
  26.     if (Control){
  27.         return true;
  28.     } else {
  29.         alert('Se an encontrado errores');
  30.         return false;
  31.     }
  32.  
  33. }
  34. </script>

- La parte del formulario
Código HTML:
Ver original
  1. <form name="Logeo" id="Logeo" method="post" onSubmit="return Comprobacion();" action="javascript: location.href='http://www.forosdelweb.com'" >
  2. Usuario: <input type="Text" id="Usuario" name="Usuario" value="" /><div id="AviUsuario" style="display: none;"></div><br/>
  3. Contraseña: <input type="password" id="Pass" name="Pass" value="" /><div id="AviContrasena" style="display: none;"></div><br/>
  4. <input type="submit" name="BotEnviar" value="Logear"/>
  5. </form>
En el action le metes la página que tu quieras.

OJO: en el onSubmit no te olvides de poner el return delante del nombre de la funcion, ya que sin eso te mandara el formulario, independientemente de lo que realices en la funcion.

Este es el ejemplo funcionando: Ejemplo
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Última edición por bookmaster; 25/12/2012 a las 07:33 Razón: Adjuntar código de ejemplo

Etiquetas: logeo, sesión
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 13:05.