Foros del Web » Programando para Internet » PHP »

Ayuda de este codigo!

Estas en el tema de Ayuda de este codigo! en el foro de PHP en Foros del Web. Me sale el siguiente error: Parse error: parse error in C:\apache\htdocs\appserv\huevox\huevox\huevox\huev ox\diseño\una\index.php on line 58 Código PHP: <html> <head> <title>Registro</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php $dbhost ...
  #1 (permalink)  
Antiguo 01/02/2003, 10:19
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
Exclamación Ayuda de este codigo!

Me sale el siguiente error:
Parse error: parse error in C:\apache\htdocs\appserv\huevox\huevox\huevox\huev ox\diseño\una\index.php on line 58

Código PHP:
<html>
<head>
<title>Registro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$dbhost
="localhost";
$dbusuario="root";

$dbpassword="";

$db="gamesok_mundolared";
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

function 
notags($mensaje)
{
   
$mensaje str_replace("<","&lt;",$mensaje);
   
$mensaje str_replace(">","&gt;",$mensaje);
   
$mensaje str_replace("'","'",$mensaje);
   
$mensaje str_replace('\"',"&quot;",$mensaje);
   
$mensaje str_replace("\\","\",$mensaje);
   return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags($HTTP_POST_VARS["login"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nombre"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["apellidos"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }
      }


   
mysql_free_result($result);

if (
$HTTP_POST_VARS["nick"]== "") && ($HTTP_POST_VARS["password"]== "") || ($HTTP_POST_VARS["email"]== "") {
   echo 
"Debe llenar como minimo los campos de Nick, email y password";
}

mysql_close();
?>
<FORM enctype=multipart/form-data ACTION=registro.php METHOD=post>

         <p align=center>
             <table border=0 class=tabla>
                     <tr>
                          <td><font color=white>Login: </td><td><input type=text name=login></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nick: </td><td><input type=text name=nick></td>
                     </tr>
                     <tr>
                          <td><font color=white>Password: </td><td><input type=password name=password></td>
                     </tr>
                     <tr>
                          <td><font color=white>Pais: </td><td><select name=pais size=1>
    <option value=alemania>alemania</option>
    <option value=argentina>argentina</option>
    <option value=australia>australia</option>
    <option value=austria>austria</option>
    <option value=bahamas>bahamas</option>
    <option value=barbados>barbados</option>
    <option value=belgica>belgica</option>
    <option value=bolivia>bolivia</option>
    <option value=brasil>brasil</option>
    <option value=canada>canada</option>
    <option value=chile>chile</option>
    <option value=colombia>colombia</option>
    <option value=costa_rica>costa_rica</option>
    <option value=cuba>cuba</option>
    <option value=ecuador>ecuador</option>
    <option value=espana>espana</option>
    <option value=estadosunidos>estadosunidos</option>
    <option value=francia>francia</option>
    <option value=granada>granada</option>
    <option value=guatemala>guatemala</option>
    <option value=guyana>guyana</option>
    <option value=haiti>haiti</option>
    <option value=holanda>holanda</option>
    <option value=honduras>honduras</option>
    <option value=italia>italia</option>
    <option value=mexico>mexico</option>
    <option value=peru>peru</option>
    <option value=salvador>salvador</option>
    <option value=union_europea>union_europea</option>
    <option value=venezuela>venezuela</option>
    </select></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nombre: </td><td><input type=text name=nombre></td>
                     </tr>
                     <tr>
                          <td><font color=white>Apellidos: </td><td><input type=text name=apellidos></td>
                     </tr>
                     <tr>
                          <td><font color=white>email: </td><td><input type=text name=email></td>
                     </tr>
                          <td colspan=2 align=center><input type=submit value=Registrar style=background-color: silver; color:black></td>
                     </tr>
             </table>
         </p>

</FORM>

</body>
</html>
  #2 (permalink)  
Antiguo 01/02/2003, 12:29
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
alguien que me ayude??
  #3 (permalink)  
Antiguo 01/02/2003, 15:34
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
bueno pues creo que el problema esta en esta linea de codigo.. que es obviamente la 58

Código PHP:
if ((($HTTP_POST_VARS["nick"]== "") && ($HTTP_POST_VARS["password"]== "")) || ($HTTP_POST_VARS["email"]== "")) 

toda la instrucción del if debe ir encerrada en parentesis ()

(($HTTP_POST_VARS["nick"]== "") && ($HTTP_POST_VARS["password"]== "")) --------> esta debe ir tambien ambas opciones ir tambien con un parentesis.....

entonces te quedaria asi

if ((($HTTP_POST_VARS["nick"]== "") && ($HTTP_POST_VARS["password"]== "")) || ($HTTP_POST_VARS["email"]== ""))

Espero no estar equivocada... y que te haya podido ayudar en algo...
  #4 (permalink)  
Antiguo 01/02/2003, 16:18
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
ya lo hize pero me sale:

Parse error: parse error in /home/gamesok/public_html/1/1.php on line 25

Código PHP:
<html>
<head>
<title>Registro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$dbhost
="localhost";
$dbusuario="root";

$dbpassword="";

$db="gamesok_mundolared";
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

function 
notags($mensaje)
{
   
$mensaje str_replace("<","&lt;",$mensaje);
   
$mensaje str_replace(">","&gt;",$mensaje);
   
$mensaje str_replace("'","'",$mensaje);
   
$mensaje str_replace('\"',"&quot;",$mensaje);
   
$mensaje str_replace("\","&#92;",$mensaje);
   
return $mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags($HTTP_POST_VARS["login"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nombre"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["apellidos"])."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }
      }


   
mysql_free_result($result);

if (((
$HTTP_POST_VARS["nick"]== "") && ($HTTP_POST_VARS["password"]== "")) || ($HTTP_POST_VARS["email"]== "")) 
{
   echo 
"Debe llenar como minimo los campos de Nick, email y password";
}

mysql_close();
?>
<FORM enctype=multipart/form-data ACTION=<? $PHP_SELF ?> METHOD=post>

         <p align=center>
             <table border=0 class=tabla>
                     <tr>
                          <td><font color=white>Login: </td><td><input type=text name=login></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nick: </td><td><input type=text name=nick></td>
                     </tr>
                     <tr>
                          <td><font color=white>Password: </td><td><input type=password name=password></td>
                     </tr>
                     <tr>
                          <td><font color=white>Pais: </td><td><select name=pais size=1>
    <option value=alemania>alemania</option>
    <option value=argentina>argentina</option>
    <option value=australia>australia</option>
    <option value=austria>austria</option>
    <option value=bahamas>bahamas</option>
    <option value=barbados>barbados</option>
    <option value=belgica>belgica</option>
    <option value=bolivia>bolivia</option>
    <option value=brasil>brasil</option>
    <option value=canada>canada</option>
    <option value=chile>chile</option>
    <option value=colombia>colombia</option>
    <option value=costa_rica>costa_rica</option>
    <option value=cuba>cuba</option>
    <option value=ecuador>ecuador</option>
    <option value=espana>espana</option>
    <option value=estadosunidos>estadosunidos</option>
    <option value=francia>francia</option>
    <option value=granada>granada</option>
    <option value=guatemala>guatemala</option>
    <option value=guyana>guyana</option>
    <option value=haiti>haiti</option>
    <option value=holanda>holanda</option>
    <option value=honduras>honduras</option>
    <option value=italia>italia</option>
    <option value=mexico>mexico</option>
    <option value=peru>peru</option>
    <option value=salvador>salvador</option>
    <option value=union_europea>union_europea</option>
    <option value=venezuela>venezuela</option>
    </select></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nombre: </td><td><input type=text name=nombre></td>
                     </tr>
                     <tr>
                          <td><font color=white>Apellidos: </td><td><input type=text name=apellidos></td>
                     </tr>
                     <tr>
                          <td><font color=white>email: </td><td><input type=text name=email></td>
                     </tr>
                          <td colspan=2 align=center><input type=submit value=Registrar style=background-color: silver; color:black></td>
                     </tr>
             </table>
         </p>

</FORM>

</body>
</html>
  #5 (permalink)  
Antiguo 01/02/2003, 16:25
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si no seria mucha molestia, ¿podrias indicar cual es la linea 25? Es que no tengo ganas de ponerme a contar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 01/02/2003, 18:01
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
es :

return $mensaje;
  #7 (permalink)  
Antiguo 01/02/2003, 22:13
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
comilla simple (')

Parece ser un simple problema de sintaxis

Si no me equivoco en la linea 24 te falta la comilla simple (')
Código PHP:
$mensaje str_replace("\","&#92;",$mensaje);

   
return $mensaje
debiera ser asi
Código PHP:
$mensaje str_replace('\"',"\",$mensaje);
   return 
$mensaje
Espero no equivocarme

saludos
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563

Última edición por Chaudx; 01/02/2003 a las 22:16
  #8 (permalink)  
Antiguo 02/02/2003, 14:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si el error esta en la linea 24. ¿Que caracter quieres cambiar? Si es \ tienes que escaparlo:

$mensaje = str_replace("\\","\",$mensaje);

Espero haber sido de ayuda.

ATENCION: voy a poner la linea anterior TAL CUAL LA TENGO dentro de codigo PHP
Código PHP:
$mensaje str_replace("\\","\",$mensaje); 
ATENCION 2: voy a ponerla dentro de CODE
Código:
$mensaje = str_replace("\\","\",$mensaje);
Vaya creo que hemos encontrado un pequeño bug a la etiqueta PHP.
Voy a poner la explicacion en texto: el primer parametro de str_replace es "\\" y el segundo "\". Para que se vea correctamente con la etiqueta PHP tengo que poner como primer parametro "\\\\":
Código PHP:
$mensaje str_replace("\\\\","\",$mensaje); 
Voy a avisar del "bug"
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 02/02/2003 a las 15:04
  #9 (permalink)  
Antiguo 04/02/2003, 15:40
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
ya sirve pero aparece esto:

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\appserv\www\1.php on line 56
Debe llenar como minimo los campos de Nick, email y password


este es el codigo

Código PHP:
<html>
<head>
<title>Registro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$dbhost
="localhost";
$dbusuario="root";

$dbpassword="";

$db="gamesok_mundolared";
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

function 
notags($mensaje)
{
   
$mensaje str_replace("<","&lt;",$mensaje);
   
$mensaje str_replace(">","&gt;",$mensaje);
   
$mensaje str_replace("'","'",$mensaje);
   
$mensaje str_replace('\"',"&quot;",$mensaje);
   
$mensaje str_replace("\\","\",$mensaje);
   return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags(strtolower($HTTP_POST_VARS["login"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["nombre"]))."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["apellidos"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }
      }


   
mysql_free_result($result);

if (
$HTTP_POST_VARS["nick"]== "")  
{
   echo 
"Debe llenar como minimo los campos de Nick, email y password";
}

mysql_close();
?>
<FORM enctype=multipart/form-data ACTION=<? $PHP_SELF ?> METHOD=post>

         <p align=center>
             <table border=0 class=tabla>
                     <tr>
                          <td><font color=white>Login: </td><td><input type=text name=login></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nick: </td><td><input type=text name=nick></td>
                     </tr>
                     <tr>
                          <td><font color=white>Password: </td><td><input type=password name=password></td>
                     </tr>
                     <tr>
                          <td><font color=white>Pais: </td><td><select name=pais size=1>
    <option value=alemania>alemania</option>
    <option value=argentina>argentina</option>
    <option value=australia>australia</option>
    <option value=austria>austria</option>
    <option value=bahamas>bahamas</option>
    <option value=barbados>barbados</option>
    <option value=belgica>belgica</option>
    <option value=bolivia>bolivia</option>
    <option value=brasil>brasil</option>
    <option value=canada>canada</option>
    <option value=chile>chile</option>
    <option value=colombia>colombia</option>
    <option value=costa_rica>costa_rica</option>
    <option value=cuba>cuba</option>
    <option value=ecuador>ecuador</option>
    <option value=espana>espana</option>
    <option value=estadosunidos>estadosunidos</option>
    <option value=francia>francia</option>
    <option value=granada>granada</option>
    <option value=guatemala>guatemala</option>
    <option value=guyana>guyana</option>
    <option value=haiti>haiti</option>
    <option value=holanda>holanda</option>
    <option value=honduras>honduras</option>
    <option value=italia>italia</option>
    <option value=mexico>mexico</option>
    <option value=peru>peru</option>
    <option value=salvador>salvador</option>
    <option value=union_europea>union_europea</option>
    <option value=venezuela>venezuela</option>
    </select></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nombre: </td><td><input type=text name=nombre></td>
                     </tr>
                     <tr>
                          <td><font color=white>Apellidos: </td><td><input type=text name=apellidos></td>
                     </tr>
                     <tr>
                          <td><font color=white>email: </td><td><input type=text name=email></td>
                     </tr>
                          <td colspan=2 align=center><input type=submit value=Registrar style=background-color: silver; color:black></td>
                     </tr>
             </table>
         </p>

</FORM>

</body>
</html>
y aparte no se ejecuta la instruccion sql por favor ayudenme
  #10 (permalink)  
Antiguo 04/02/2003, 15:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Despues de todos tus $result=mysql_query(); pon este codigo:
Código PHP:
if (!$result) {
  echo 
"Error MySQL: ".mysql_error();
  exit;

Esto te dara el mensaje del error de la consulta.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 04/02/2003, 15:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate bien en los condicionales que usas .. Si no se cumple la condicion en la que haces la consulta ... igual pretendias liberar la memoria usada por la "consulta" que nunca se hizo ...

Otro detalle de "seguridad" .. usa el Password en tu consulta SQL .. y en tu IF q decides si hacer la consulta o no ..

Código PHP:
if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "" ) { // Te faltaria usar la variabel password ... && ..
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'"// te faltaria AND passwor=$HTTP_POST_VARS['password'];
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags(strtolower($HTTP_POST_VARS["login"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["nombre"]))."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["apellidos"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }

      
mysql_free_result($result); // Ha de estar dentro del "IF" (condicion) que decida q se ha de ejecutar la consulta ...
     
mysql_close(); // lo mismo para cerrra la BD .. 

} else {
   echo 
"Debe llenar como minimo los campos de Nick, email";
}
?> 
Un saludo,

pd: .. la propia conexión a la BD tambien deberias hacerla bajo tu IF principal .. o sacar el mysql_close() al lugar q estaba (o ni eso .. pues se cierran las conexiones al terminar el script).

Última edición por Cluster; 04/02/2003 a las 16:06
  #12 (permalink)  
Antiguo 04/02/2003, 16:36
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
Me sale MYSQL ERROR AYUDA POR FAVOR

Código PHP:
<html>
<head>
<title>Registro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$dbhost
="localhost";
$dbusuario="root";

$dbpassword="";

$db="gamesok_mundolared";
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

function 
notags($mensaje)
{
   
$mensaje str_replace("<","&lt;",$mensaje);
   
$mensaje str_replace(">","&gt;",$mensaje);
   
$mensaje str_replace("'","'",$mensaje);
   
$mensaje str_replace('\"',"&quot;",$mensaje);
   
$mensaje str_replace("\\","\",$mensaje);
   return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "" && trim($HTTP_POST_VARS["password"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags(strtolower($HTTP_POST_VARS["login"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["nombre"]))."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["apellidos"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }
      }

if (!
$result) {
  echo 
"Error MySQL: ".mysql_error();
  exit;
}

if (
$HTTP_POST_VARS["nick"]== "")  
{
   echo 
"Debe llenar como minimo los campos de Nick, email y password";
}

mysql_close();
?>
<form action=<? $PHP_SELF ?> >

         <p align=center>
             <table border=0 class=tabla>
                     <tr>
                          <td><font color=white>Login: </td><td><input type=text name=login></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nick: </td><td><input type=text name=nick></td>
                     </tr>
                     <tr>
                          <td><font color=white>Password: </td><td><input type=password name=password></td>
                     </tr>
                     <tr>
                          <td><font color=white>Pais: </td><td><select name=pais size=1>
    <option value=alemania>alemania</option>
    <option value=argentina>argentina</option>
    <option value=australia>australia</option>
    <option value=austria>austria</option>
    <option value=bahamas>bahamas</option>
    <option value=barbados>barbados</option>
    <option value=belgica>belgica</option>
    <option value=bolivia>bolivia</option>
    <option value=brasil>brasil</option>
    <option value=canada>canada</option>
    <option value=chile>chile</option>
    <option value=colombia>colombia</option>
    <option value=costa_rica>costa_rica</option>
    <option value=cuba>cuba</option>
    <option value=ecuador>ecuador</option>
    <option value=espana>espana</option>
    <option value=estadosunidos>estadosunidos</option>
    <option value=francia>francia</option>
    <option value=granada>granada</option>
    <option value=guatemala>guatemala</option>
    <option value=guyana>guyana</option>
    <option value=haiti>haiti</option>
    <option value=holanda>holanda</option>
    <option value=honduras>honduras</option>
    <option value=italia>italia</option>
    <option value=mexico>mexico</option>
    <option value=peru>peru</option>
    <option value=salvador>salvador</option>
    <option value=union_europea>union_europea</option>
    <option value=venezuela>venezuela</option>
    </select></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nombre: </td><td><input type=text name=nombre></td>
                     </tr>
                     <tr>
                          <td><font color=white>Apellidos: </td><td><input type=text name=apellidos></td>
                     </tr>
                     <tr>
                          <td><font color=white>email: </td><td><input type=text name=email></td>
                     </tr>
                          <td colspan=2 align=center><input type=submit value=Registrar style=background-color: silver; color:black></td>
                     </tr>
             </table>
         </p>

</FORM>

</body>
</html>
  #13 (permalink)  
Antiguo 04/02/2003, 17:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Veo q vas parcheando el código y no haces caso a lo que se te dice .. (has quitado la linea de mysql_free_result() .. en vez de prestar atención a lo que te dije ..)

Bueno, si quieres hacerlo:

Código PHP:
$conexion mysql_connect($dbhost$dbusuario$dbpassword) or die(mysql_error());
mysql_select_db($db$conexion) or die(mysql_error()); 
usa el or die(mysql_error()); ahí y sobre todo .. si Mysql da un error .. DI Q ERROR ES!!! ....

Un saludo,
  #14 (permalink)  
Antiguo 04/02/2003, 17:57
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
Ok perdon pero es que uds 2 contestaron al mismo tiempo y asi lo arregle pero no sale error ni nada muestra:Debe llenar como minimo los campos de Nick, email y abajo el formulario y no se ejecuta la sentencia sql ayuda! por fa

Código PHP:
<html>
<head>
<title>Registro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$dbhost
="localhost";
$dbusuario="root";

$dbpassword="";

$db="huevox_es_db";
$conexion mysql_connect($dbhost$dbusuario$dbpassword) or die(mysql_error());
mysql_select_db($db$conexion) or die(mysql_error());

function 
notags($mensaje)
{
   
$mensaje str_replace("<","&lt;",$mensaje);
   
$mensaje str_replace(">","&gt;",$mensaje);
   
$mensaje str_replace("'","'",$mensaje);
   
$mensaje str_replace('\"',"&quot;",$mensaje);
   
$mensaje str_replace("\\","\",$mensaje);
   return 
$mensaje;
}

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "" && trim($HTTP_POST_VARS["password"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags(strtolower($HTTP_POST_VARS["login"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["nombre"]))."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["apellidos"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }
         if (
$HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         }

      
mysql_free_result($result); // Ha de estar dentro del "IF" (condicion) que decida q se ha de ejecutar la consulta ...
     
mysql_close(); // lo mismo para cerrra la BD .. 

} else {
   echo 
"Debe llenar como minimo los campos de Nick, email";
}
?>
<form action=<? $PHP_SELF ?> >

         <p align=center>
             <table border=0 class=tabla>
                     <tr>
                          <td><font color=white>Login: </td><td><input type=text name=login></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nick: </td><td><input type=text name=nick></td>
                     </tr>
                     <tr>
                          <td><font color=white>Password: </td><td><input type=password name=password></td>
                     </tr>
                     <tr>
                          <td><font color=white>Pais: </td><td><select name=pais size=1>
    <option value=alemania>alemania</option>
    <option value=argentina>argentina</option>
    <option value=australia>australia</option>
    <option value=austria>austria</option>
    <option value=bahamas>bahamas</option>
    <option value=barbados>barbados</option>
    <option value=belgica>belgica</option>
    <option value=bolivia>bolivia</option>
    <option value=brasil>brasil</option>
    <option value=canada>canada</option>
    <option value=chile>chile</option>
    <option value=colombia>colombia</option>
    <option value=costa_rica>costa_rica</option>
    <option value=cuba>cuba</option>
    <option value=ecuador>ecuador</option>
    <option value=espana>espana</option>
    <option value=estadosunidos>estadosunidos</option>
    <option value=francia>francia</option>
    <option value=granada>granada</option>
    <option value=guatemala>guatemala</option>
    <option value=guyana>guyana</option>
    <option value=haiti>haiti</option>
    <option value=holanda>holanda</option>
    <option value=honduras>honduras</option>
    <option value=italia>italia</option>
    <option value=mexico>mexico</option>
    <option value=peru>peru</option>
    <option value=salvador>salvador</option>
    <option value=union_europea>union_europea</option>
    <option value=venezuela>venezuela</option>
    </select></td>
                     </tr>
                     <tr>
                          <td><font color=white>Nombre: </td><td><input type=text name=nombre></td>
                     </tr>
                     <tr>
                          <td><font color=white>Apellidos: </td><td><input type=text name=apellidos></td>
                     </tr>
                     <tr>
                          <td><font color=white>email: </td><td><input type=text name=email></td>
                     </tr>
                          <td colspan=2 align=center><input type=submit value=Registrar style=background-color: silver; color:black></td>
                     </tr>
             </table>
         </p>

</FORM>

</body>
</html>
  #15 (permalink)  
Antiguo 04/02/2003, 18:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
<form action=<? $PHP_SELF ?> >

Hay q indicar el method que use tu formulario para enviar los datos .. Si no lo usas se toma por defecto GET .. y tu en tus variables siempre revisas q los datos lleguen por POST .. Por lo tanto es normal q ese IF haga lo q debe hacer .. evitar que alguien ponga tuscript.php?nick=algo&password=nose .. etc ..

<form action=<? $PHP_SELF ?> method="POST">

Por cierto:

Código PHP:
         if ($HTTP_POST_VARS["login"]== "") {
            echo 
"ERROR en Registro, login vacio";
         } 
Eso en el sitio q está no tiene sentido .. Se ejecutaria el INSERT (consulta) .. con datos erroneos y luego daria el mensaje de error

buff .. cuanto mas miro el código mas "detallitos" salen .. Debes de pensar bien q hacen los condicionales q pones .. esos IF .. porque . la mayoría no tenian mucho sentido...


Un saludo,

Última edición por Cluster; 04/02/2003 a las 18:25
  #16 (permalink)  
Antiguo 04/02/2003, 18:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Mas detalles ...

Código PHP:
if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "" && trim($HTTP_POST_VARS["password"]) != "") {
   
$sql "SELECT id FROM usuarios WHERE nick='".notags($HTTP_POST_VARS["nick"])."'";
   
$result mysql_query($sql);

   if(
mysql_num_rows($result)) {
      echo 
"Error, nick escogido por otro usuario";
      exit;
   }

      
mysql_free_result($result); // Se libera memoria de la 1ª consulta ...

         
$sql "INSERT INTO usuarios (login,nick,password,pais,nombre,apellidos,email) VALUES (";
         
$sql .= "'".notags(strtolower($HTTP_POST_VARS["login"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["nick"])."'";
         
$sql .= ",'".notags(md5($HTTP_POST_VARS["password"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["pais"])."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["nombre"]))."'";
         
$sql .= ",'".notags(ucwords($HTTP_POST_VARS["apellidos"]))."'";
         
$sql .= ",'".notags($HTTP_POST_VARS["email"])."'";
         
$sql .= ")";

         if(
$result=mysql_query($sql)) {
            echo 
"Registro exitoso!";
         }

     
mysql_free_result($result); // se libera memoria de la 2ª consulta.
     
mysql_close(); // lo mismo para cerrra la BD .. 

} else {
   echo 
"Debe llenar como minimo los campos de Nick, email";
}
?> 
Otro detalle mas .. sobre como usas el "exit;" para terminar el script la ejecución .. y como incrustas PHP en HTML:

Si pongo un nick que ya está en uso .. OK .. tu condicional me dirá:
Error, nick escogido por otro usuario

Pero me va a generar esta página HTML:

Código PHP:
<html>
<
head>
<
title>Registro</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</
head>

<
body>
Errornick escogido por otro usuario 
Así .. sin mas .. sin las etiquetas HTML del "pié" de HTML:

</body>
</html>

Esto se lo traga casi todo navegador de hoy en dia (el que no cierres etiquetas HTML) .. pero deberias pensar en que código generas HTML cuando usas PHP .. y olvidarte de estrucutras HTML con PHP .. y pensar en PHP 100% controlando el HTML q das al navegador componiendo la página q necesites ...

En tu caso vuelve a ser otro simple "condicional" .. otro IF para determinar si se muestra el formulario o no .. pero inprimiendo las cabeceras HTML y los "Pié" HTML cuando corresponda mostrar un mensaje de salida o el propio formulario .. PHP no usa para nada las cabeceras HTML cuando haces la operación de checkeo/validación de datos y los ingresas en tu BD ..

Un saludo,
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 21:29.