Foros del Web » Programando para Internet » PHP »

Mensaje de error Undefined index

Estas en el tema de Mensaje de error Undefined index en el foro de PHP en Foros del Web. Hola amigos estoy tratando de hacer una pagina web que me permitan registrar unos usuarios de manera segura y necesito de sus ayuda, tengo unos ...
  #1 (permalink)  
Antiguo 11/07/2010, 11:25
 
Fecha de Ingreso: julio-2010
Mensajes: 37
Antigüedad: 13 años, 9 meses
Puntos: 2
Mensaje de error Undefined index

Hola amigos estoy tratando de hacer una pagina web que me permitan registrar unos usuarios de manera segura y necesito de sus ayuda, tengo unos codigos que me esta presentando los siguientes errores al introducir los datos:

Notice: Undefined index: login in C:\wamp\www\1\crea_usuarios.php on line 8

Notice: Undefined index: pass1 in C:\wamp\www\1\crea_usuarios.php on line 10

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\wamp\www\1\crea_usuarios.php on line 32

estes es el codigo PHP que estoy usando y en el include config.php es donde tengo las variables que le estoy asignando el nombre de la base de datos, el servidor, el usuario y la clave:

<?php
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net

include("config.php"); /*Traemos el archivo config*/

/*Recibimos las variables por el metodo POST*/

$login = htmlspecialchars(trim($_POST['login']));

$pass1 = trim($_POST['pass1']);

$pass2 = trim($_POST['pass2']);

$nombre= htmlspecialchars(trim($_POST['nombre']));

$apaterno= htmlspecialchars(trim($_POST['apaterno']));

$amaterno= htmlspecialchars(trim($_POST['amaterno']));

$email = htmlspecialchars(trim($_POST['email']));

/*Hacemos la consulta */

// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES

$link=mysql_connect($server,$dbuser,$dbpass);

$query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'", // Ahora
mysql_real_escape_string($login));


$result=mysql_db_query($database,$query,$link);

if(mysql_num_rows($result)){

echo ("El usuario ya existe en la BD");

} else {

mysql_free_result($result);

/* Ahora comprovamos que los dos pass coinciden */

if($pass1!=$pass2) {

echo ("Los passwords deben coincidir");

echo ('Click &lt;a href="form.html"&gt;aquí&lt;/a&gt; para volver al formulario');

} else {

/* Encriptamos "Ciframos" el password

// $pass1=crypt($pass2, "semilla"); // ANTES */

$pass1=sha1(md5($pass1)); // Ahora

/* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */ // Antes

$query = sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')", // Ahora
mysql_real_escape_string($login), mysql_real_escape_string($nombre),
mysql_real_escape_string($apaterno),mysql_real_esc ape_string($amaterno),
mysql_real_escape_string($pass1), mysql_real_escape_string($email));


$result=mysql_db_query($database,$query,$link);

if(mysql_affected_rows()){

echo ("Usuario introducido correctamente");

} else {

echo ("Error introduciendo el usuario");

} /* Cierre del else */

} /* Cierre del else que corresponde a if(mysql_affected_rows.....) */

} /* Cierre del else que corresponde a if(mysql_num_rows...) */

?>
  #2 (permalink)  
Antiguo 11/07/2010, 11:31
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Mensaje de error Undefined index

Las dos primeras notificaciones se dan porque estás consultando variables que no están definidas previamente.

Deberías solucionarlo de esta manera:

Código PHP:
if (isset($_POST['login']))
     
$login htmlspecialchars(trim($_POST['login']));
else
     
$login ''
Lo mismo debes hacer con la otra variable.

En cuanto al último error te dice que la función está en desuso, deberías usar mysql_query en vez de mysql_db_query.
__________________
Saludos.

Gustavo
  #3 (permalink)  
Antiguo 11/07/2010, 11:59
 
Fecha de Ingreso: julio-2010
Mensajes: 37
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Mensaje de error Undefined index

Gracias amigo gracias por ayudarme, tenia 4 dias en eso, es que me estoy iniciando en php, ahora mismo se presentaron los siguientes warning despues de los cambios.

Warning: mysql_query() expects parameter 2 to be resource, string given in C:\wamp\www\1\crea_usuarios.php on line 37

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\1\crea_usuarios.php on line 39

Warning: mysql_free_result() expects parameter 1 to be resource, null given in C:\wamp\www\1\crea_usuarios.php on line 45
  #4 (permalink)  
Antiguo 11/07/2010, 12:05
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Mensaje de error Undefined index

Deberías usar mysql_select_db($database, $link); después de mysql_connect y luego mysql_query no necesita el parametro $database, solo: mysql_query($query, $link);

Los otros dos errores deberían solucionarse con esto. Aunque puede ser que aparezcan nuevos.
__________________
Saludos.

Gustavo
  #5 (permalink)  
Antiguo 11/07/2010, 23:56
 
Fecha de Ingreso: julio-2010
Mensajes: 37
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Mensaje de error Undefined index

Realmente estoy agradecido gustavo, gracias a ti logre terminar esta parte de la pagina.

Etiquetas: index, mensaje, undefined
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 11:42.