Foros del Web » Programando para Internet » PHP »

Loggeo en PHP

Estas en el tema de Loggeo en PHP en el foro de PHP en Foros del Web. Hola estoy haciendo un sistema de autentificacion por loggin. Soy nuevo o novato en php! Aqui el codigo! Codigo para el PHP registrarse ------------------------------------------------------------------------------------------------------- <?php ...
  #1 (permalink)  
Antiguo 09/12/2010, 09:30
Avatar de valentikary  
Fecha de Ingreso: febrero-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 0
Loggeo en PHP

Hola estoy haciendo un sistema de autentificacion por loggin.
Soy nuevo o novato en php!

Aqui el codigo!

Codigo para el PHP registrarse
-------------------------------------------------------------------------------------------------------

<?php
session_start();

if(isset($_SESSION["conectado"])){
header("Location: index.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></title>

<script type="text/javascript">
function validar(){
var user = document.registrarse-form.user.value;
var pass1 = document.registrarse-form.pass1.value;
var pass2 = document.registrarse-form.pass2.value;
var nombre = document.registrarse-form.nombre.value;
var apellido = document.registrarse-form.apellido.value;
var mail = document.registrarse-form.mail.value;

if(user == '' || pass1 == '' || pass2 == '' || nombre == '' || apellido == '' || mail == ''){
alert('Debes completar todos los campos !');
return false;
}else{

if(pass1 != pass2){
alert('Las contraseñas ingresadas son distintas !');
return false;
}else{
return true;

}

}

}
</script>

</head>


<body>

<p><a href="index.php">Home</a></p>
<br />


<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["pass1"]);
$nombre = mysql_real_escape_string($_POST["nombre"]);
$apellido = mysql_real_escape_string($_POST["apellido"]);
$mail = mysql_real_escape_string($_POST["mail"]);

mysql_connect("localhost","root","" );
mysql_select_db("iskalti");

mysql_query("INSERT INTO login(usuario,password,nombre,apellido,mail) VALUES ('$user','$pass','$nombre','$apellido','$mail')");

mysql_close();

}else{ ?>

<form name="registrarse-form" action="" method="post" onSubmit="return validar();" >
<label for="user">Usuario: </label><input type="text" id="user" name="user" size="30" maxlength="20" /><br />
<label for="pass1">Password: </label><input type="password" id="pass1" name="pass1" size="30" maxlength="30" /><br />
<label for="pass2">Repetir Password: </label><input type="password" id="pass2" name="pass2" size="30" maxlength="30" /><br />
<label for="nombre">Nombre: </label><input type="text" id="nombre" name="nombre" size="30" maxlength="15" /><br />
<label for="apellido">Apellido: </label><input type="text" id="apellido" name="apellido" size="30" maxlength="30" /><br />
<label for="mail">Mail: </label><input type="text" id="mail" name="mail" size="50" maxlength="50" /><br /><br />
<input type="submit" value="Registrarse" /><input type="reset" value="Resetear" />
</form>

<?php } ?>


</body>
</html>

-------------------------------------------------------------------------------------------------------

Me aparece el iguiente error al al momento de agregar y/o registrarme en la base de datos:

-------------------------------------------------------------------------------------------------------

<code>
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\formularios\registrarse.php on line 52

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\formularios\registrarse.php on line 52

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\formularios\registrarse.php on line 53

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\formularios\registrarse.php on line 53

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\formularios\registrarse.php on line 54

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\formularios\registrarse.php on line 54

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\formularios\registrarse.php on line 55

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\formularios\registrarse.php on line 55

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\formularios\registrarse.php on line 56

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\formularios\registrarse.php on line 56
</code>
-------------------------------------------------------------------------------------------------------
  #2 (permalink)  
Antiguo 09/12/2010, 09:35
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Loggeo en PHP

Haces el "mysql_real_escape_string" antes de conectar con el servidor.

Prueba a poner
Código PHP:
mysql_connect("localhost","root","" ); 
antes que "mysql_real_escape_string"

O si no usa addslashes
  #3 (permalink)  
Antiguo 09/12/2010, 09:47
Avatar de valentikary  
Fecha de Ingreso: febrero-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Loggeo en PHP

Buen punto, ya quedo, ahora que es adslashes! Perdon
  #4 (permalink)  
Antiguo 09/12/2010, 09:48
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Loggeo en PHP

Te había puesto el link a la explicación pero te la pego:

Devuelve una cadena con barras invertidas delante de los carácteres que necesitan escaparse en situaciones como consultas de bases de datos, etc. Los carácteres que se escapan son la comilla simple ('), comilla doble ("), barra invertida (\) y NUL (el byte NULL).

Un ejemplo de uso de la función addslashes() es cuando se introduce información en una base de datos. Por ejemplo, para insertar el nombre O'reilly en una base de datos, debe escaparse previamente. Es muy recomendado usar la función de escape de la misma Bade de Datos (DBMS) (por ejemplo mysqli_real_escape_string() para MySQL o pg_escape_string() para PostgreSQL), pero si la Base de Datos (DBMS) que se está usando no tiene una función de escape y usa la barra invertida \ para escapar caracteres especiales, puede utilizar esta función. Esto sólo será para obtener los datos en la base de datos, La barra invertida \ extra no será insertada. Si la directiva PHP magic_quotes_sybase tiene el valor on entonces las comillas simples de tipo 'se escapan añadiendo otra comilla simple adelante. '.

La directiva de PHP magic_quotes_gpc está on activada por defecto, y básicamente ejecuta la función addslashes() en todos los datos GET, POST, y COOKIE. No utilice addslashes() en las cadenas que ya se han escapado con magic_quotes_gpc ya que se hará un doble escape. La función get_magic_quotes_gpc() puede ser práctico para comprobar esto.
  #5 (permalink)  
Antiguo 09/12/2010, 09:53
Avatar de valentikary  
Fecha de Ingreso: febrero-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Loggeo en PHP

Okey perdon muchas gracias, lo unico que me saca de onda es que ahora mi sistema de loggeo hace cosas extranas, no se desconecta, no se levanta correctamente crees que se deba por que cambie el acceso de la base?
  #6 (permalink)  
Antiguo 09/12/2010, 10:12
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Loggeo en PHP

Deberías repasar le código porque veo varias cosas extrañas:

Código PHP:
if(isset($_SESSION["conectado"])){
header("Location: index.php");

Esto qué es? Si estás conectado te llevo a index.php?

La validación de datos la haces con JavaScript, pero además deberías también validarlos en PHP. Por seguridad.

Este código sólo es de registro, luego debería haber otro de loging.

Hay mil tutoriales de cómo hacer esto. Cuesta un poco entenderlo pero luego es sencillo.

Suerte.
  #7 (permalink)  
Antiguo 09/12/2010, 10:22
Avatar de valentikary  
Fecha de Ingreso: febrero-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Loggeo en PHP

Buen punto soy novato y estoy empesando por esto, lo baje de un tutorial, y el isset es para solo mostrar las partes correctas si esta conectado, segun comenta el tuto, seguire viendo diferentes tutos aver cual se adecua yes mas seguro
- Muchas Gracias -

Etiquetas: loggeo, loggin, 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 05:14.