Foros del Web » Programando para Internet » PHP »

Login PHP

Estas en el tema de Login PHP en el foro de PHP en Foros del Web. Código PHP: <?php // Se hace la conecion a la base de datos $host  =  "localhost" ;  // nombre del Host $user  =  "root" ;  // Usuario $psw   =  "" ;  // Contraseña $db    =  "usuarios" ;  // Nombre de la base de datos function  ...
  #1 (permalink)  
Antiguo 29/04/2012, 22:42
 
Fecha de Ingreso: enero-2011
Ubicación: Del otro lado del monitor
Mensajes: 43
Antigüedad: 13 años, 3 meses
Puntos: 0
Login PHP

Código PHP:
<?php
// Se hace la conecion a la base de datos
$host "localhost"// nombre del Host
$user "root"// Usuario
$psw  ""// Contraseña
$db   "usuarios"// Nombre de la base de datos
function Conectarse() 

global 
$host$user$psw$db;
   if (!(
$link=mysql_connect("$host","$user","$psw"))) 
   { 
      echo 
"Error conectando a la base de datos."
      exit(); 
   } 
   if (!
mysql_select_db("$db",$link))
   { 
      echo 
"Error seleccionando la base de datos."
      exit(); 
   } 
   return 
$link


$link Conectarse();
// Recuperacion y creacion de variables
$a$_POST['a'];
$nombrehtmlspecialchars ($_POST['nombre']) ;
$passwordmd5 (htmlspecialchars($_POST['password']));

function 
form(){ 
echo 
"<body scroll=\"auto\">
<SCRIPT LANGUAGE=\"JavaScript\">
function llenar() {
   if (form.nombre.value == \"\") {
   alert ('Debes llenar el campo de Nombre');
   return false;
   }
   if (form.password.value == \"\") {
   alert ('Debes de ingresar tu contraseña');
   return false;
   }
   return true;
}
</SCRIPT>
<form action=\"$PHP_SELF\" method=\"POST\" name=\"form\" onSubmit=\"return llenar()\"><input type=\"hidden\" name=\"a\" value=\"1\">
  <table width=\"70%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"windowbg2\">
    <tr> 
      <td><div align=\"center\"> 
          <table width=\"65%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
            <tr> 
              <td colspan=\"2\">Bienvenido al sistema por favor llena 
                los siguientes campos... </td>
            </tr>
            <tr> 
              <td>Nombre</td>
              <td><input name=\"nombre\" type=\"text\" class=\"colour1\"></td>
            </tr>
            <tr> 
              <td>Contrase&ntilde;a</td>
              <td><input name=\"password\" type=\"password\" class=\"colour1\"></td>
            </tr>
            <tr> 
              <td><input name=\"enviar\" type=\"submit\" value=\"Enviar datos\" class=\"button\"></td>
              <td><input name=\"borrar\" type=\"reset\" value=\"Borrar formulario\" class=\"button\"></td>
            </tr>
          </table>
        </div></td>
    </tr>
  </table>
  <br>
</form>
<SCRIPT language=\"JavaScript\">
<!--
document.forms[0].nombre.focus();
//-->
</SCRIPT>
</table>"

}
switch (
$a) {
   case 
1:
         
         
//Sentencia SQL para buscar un usuario con esos datos 
         
$c_usuario "SELECT * FROM usuarios WHERE usuario='$nombre' and password='$password'"
         
//Ejecuto la sentencia 
         
$r_usuario mysql_query("$c_usuario",$link) or die(mysql_error()); 
         
$r_ok mysql_fetch_array($r_usuario);
         
////////////////////////////////////////////////////////
      
if($r_ok['usuario'] != $nombre && $r_ok['password'] != $password){
         
$acceso "no";
         echo 
"<center>Nombre de usuario o contraseña incorrecta<br>
              por favor <b>intena de nuevo</b></a></center>"
;
         
form();
         }
      else{
         
$user_dat mysql_query("SELECT * FROM usuarios WHERE ID='$user_ID'") or die(mysql_error());
         
$datos mysql_fetch_array($user_dat);
         
$user_ID $r_ok['ID'];
         
$user $r_ok['usuario'];
         
$acceso "ok";
         
setcookie("nombre",$user_ID,time()+3600);
         
setcookie("password",$password,time()+3600);
         
header("LOCATION: acceso.php"); // Aqui en lugar de "acceso.php" pones el archivo que quieras que salga despues de que se ingesen bien los datos
         
}
         
   break;
   default:
   
$acceso "no";
      
form ();
   break;
}
mysql_close($link); //cierra la conexion 
?>
Me marca estos errores pero no entiendo por que me podrian ayudar:


Notice: Undefined index: a in C:\Program Files\EasyPHP-5.3.8.1\www\login.php on line 25
Que seria:"$a= $_POST['a'];"

Notice: Undefined index: nombre in C:\Program Files\EasyPHP-5.3.8.1\www\login.php on line 26
Que seria: "$nombre= htmlspecialchars ($_POST['nombre']) ;"

Notice: Undefined index: password in C:\Program Files\EasyPHP-5.3.8.1\www\login.php on line 27
Que seria:"$password= md5 (htmlspecialchars($_POST['password']));"

Notice: Undefined variable: PHP_SELF in C:\Program Files\EasyPHP-5.3.8.1\www\login.php on line 76
Que seria:"</table>""
  #2 (permalink)  
Antiguo 29/04/2012, 23:19
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Login PHP

Los primeros 3 mensajes te dicen que le array $_POST no tiene esos subíndices que le indicas ("a", "nombre", "password"); lo más probable es que eso ocurra porque llegas a la página sin haber enviado antes un formulario (o en técnicamente, una petición) POST. Veo que tu idea es que el formulario esté en la misma página... bueno, la primera vez que entras a la página (nates de enviar el formulario), estás disparando esos errores (tratar de obtener un valor que no existe de un array).

Sobre el error de la línea 76... en realidad, es la línea en la que inicias el formulario, y el error está en tratar de utilizar la variable $PHP_SELF. Lee este hilo para más información. Saludos.
  #3 (permalink)  
Antiguo 29/04/2012, 23:35
 
Fecha de Ingreso: enero-2011
Ubicación: Del otro lado del monitor
Mensajes: 43
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Login PHP

Que tal. Primero Gracias por responder...en lo que respondías... descubrí las 3 primeras lineas cual era el error...justo lo que dices...aunque aun no se como resolverlo no afecta al final.
Cambie el $PHP_SELF por <form action=\$HTTP_SERVER_VARS['PHP_SELF']\ y también por: $_SERVER['PHP_SELF'] y ya no me marca el error PERO Cuando ya envió el formulario me sale este mensaje...

Acceso prohibido!

Usted no tiene permiso de accesar al objeto solicitado. El objeto está protegido contra lectura, o no puede ser leido por el servidor.

Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.

Error 403

127.0.0.1
04/30/12 00:28:08
Apache/2.2.21 (Win32) PHP/5.3.8
  #4 (permalink)  
Antiguo 30/04/2012, 04:12
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Login PHP

Esto... no he leído bien tu problema, pero eso de no poder leerlo, ¿no puede ser porque no le hayas dado los permisos de lectura a ese archivo en el servidor?

Etiquetas: errores, login
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 10:39.