Foros del Web » Programando para Internet » PHP »

consulta sobre un codigo please!!!!!!!!

Estas en el tema de consulta sobre un codigo please!!!!!!!! en el foro de PHP en Foros del Web. holas a todos, necesito pedir una gra ayuda, este codigo es parte de registro y reconocimiento de usuarios, pero me arroja un error referente a ...
  #1 (permalink)  
Antiguo 23/03/2006, 08:17
 
Fecha de Ingreso: marzo-2006
Mensajes: 78
Antigüedad: 18 años, 1 mes
Puntos: 0
consulta sobre un codigo please!!!!!!!!

holas a todos, necesito pedir una gra ayuda, este codigo es parte de registro y reconocimiento de usuarios, pero me arroja un error referente a una sintaxis lo he tratado de arreglar pero queda peor, si alguien puede probar el codigo y corregirme el error se lo agradeceria enormemente. Desde ya gracias.....

Aqui va el codigo:

<?php
$link=mysql_connect("localhots","root");
mysql_select-db("reg_usuarios",$link);

function quitar ($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_var["password"]!="")
{
$sql="select id from usuarios from usuarios where nick=' ".quitar ($http_post_vars["nick"]." ' ";
$result=mysql_query($sql);
if ($row=mysql_fetch_array($result))
{
echo "error,nick escogido es de otro usuario";
}
else
{
$sql="insert into usuarios(nick,password,nombre,email) values(";
$sql .=" ' ".quitar($http_post_var["nick"])." ' ";
$sql .=" ' ".quitar($http_post_var["password"])." ' ";
$sql .=" ' ".quitar($http_post_var["nombre"]." ' ";
$sql .=" ' ".quitar($http_post_var["email"]." ' ";
$sql .=")";
mysql_query($sql);
echo "registro exitoso";
}
else
{
echo "debe llenar como minimo los campos de nick y passward";
}
mysql-close();
?>

Bueno ese seria el codigo tomando en cuanta que se necesita una bases de datos que yo la llame reg_usuarios con una tabla llamada USUARIOS cuyos campos son id(q es autonumerico), nick, password, nombre y email.

ademas de un formulario que va a recoger este informacion que seria:

<form action="registrar.php" method="post">
nick:<input type="text" name="nick" size=20 maxlength=20><br>
password:<input type="password" name ="password" size=28 maxlength=100><br>
nombre:<input type="text" name="nombre" size=28 maxlength=255><br>
email:<input type="text" name="email" size=28 maxlength=100><br>
<input type="submit" value="registrar">
</form>
  #2 (permalink)  
Antiguo 23/03/2006, 08:48
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Ese script, tal como lo publicaste tiene una infinidad de errores de sintaxis, indicartelos a todos tendria que escribir todo el dia. Mejor te dejo el codigo corregido (espero que funcione). Otra cosa: en ves de utilizar la función "quitar()" que esta definida en el script, podrías usar dos funciones que provee php:
htmlentities()
addslashes()

Aca te dejo es script:

Código PHP:
<?
$link
mysql_connect("localhost","root");
mysql_select_db("reg_usuarios",$link);

function 
quitar ($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_var["password"]!="")) {
    
$sql="select id from usuarios from usuarios where nick=' ".quitar($http_post_vars["nick"])." ' ";
    
$result=mysql_query($sql);
    if (
$row=mysql_fetch_array($result)) {
        echo 
"error,nick escogido es de otro usuario";
        }
        else {
        
$sql="insert into usuarios(nick,password,nombre,email) values(";
        
$sql .=" ' ".quitar($http_post_var["nick"])." ' ";
        
$sql .=" ' ".quitar($http_post_var["password"])." ' ";
        
$sql .=" ' ".quitar($http_post_var["nombre"])." ' ";
        
$sql .=" ' ".quitar($http_post_var["email"])." ' ";
        
$sql .=")";
        
mysql_query($sql);
        echo 
"registro exitoso";
        }
    }
else
    {
    echo 
"debe llenar como minimo los campos de nick y passward";
    }
mysql_close();
?>
Saludos.
__________________
¿Se me entiende la letra?
  #3 (permalink)  
Antiguo 23/03/2006, 11:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esa función "quitar()" realmente el método que usa es obsoleto.

Mejor usa:

htmlentities() para todo el tema de sustituir caracteres especiales por sus respectivas entidades (los < por &lt; etc).

Y

stripslasesh() para quitar los caracteres de escape que se producen si se usa "magic_quote_gpc" a ON (como suele ser por defecto en la configuración de PHP) para caracteres especiales como comillas ..

Tampoco deberías usar el acceso por $HTTP_xxx_VARS a tus variables .. usa los arrays superglobales correspondientes: $_GET, $_POST .. etc.

Por otro lado cuando menciones un "error" no puedes dejar ahí el tema .. DEBES! indicar el error textual que obtengas y donde se produce ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 23/03/2006, 13:45
 
Fecha de Ingreso: marzo-2006
Mensajes: 78
Antigüedad: 18 años, 1 mes
Puntos: 0
gracias por su ayuda de fue de gran utilidad.......
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.