Un register.php que no registra! HELP

Iniciado por jeanbkn, 14 Octubre 2011, 02:51 AM

0 Miembros y 1 Visitante están viendo este tema.

jeanbkn

Buenas, Seré breve para que no se aburran: Compré un hosting basico... busque un codigo en php que sirve de register, lo encontre, ese register va a registrar.php, y ese registrar.php tiene un include  "conexion...", los datos estan bien puestos(70% de que esten bien) y el error que me da es /*Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/jean/public_html/METHOD.php on line 12 *\

register.php
<body>
<body style="background:#64BDD8">
<p class="margtitule"><biglined>Undefined site</biglined></p>
<p class="marg">    <FORM ACTION="METHOD.php" METHOD="post">
   Nick: <INPUT TYPE="text" NAME="nick" SIZE="20" MAXLENGTH="20">
   <BR>
   Email: <INPUT TYPE="text" NAME="email" SIZE="28" MAXLENGTH="100">
   <BR>
   Password: <INPUT TYPE="password" NAME="password" SIZE="28" MAXLENGTH="20">
   <BR>
   Nombre: <INPUT TYPE="text" NAME="nombre" SIZE="28" MAXLENGTH="100">
   <BR>
   <INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
   </FORM> </p>
</body>


METHOD.PHP
<?php //
{
include(
"MYSQLCONECT.php");
{
$mensaje str_replace("<","<",$mensaje);
$mensaje str_replace(">",">",$mensaje);
$mensaje str_replace("'","'",$mensaje);
$mensaje str_replace("'","'",$mensaje);
$mensaje str_replace("\\","\",$mensaje);
return 
$mensaje;
}
if(trim(
$HTTP_POST_VARS["nick"]) != trim($HTTP_POST_VARS["password"]) !=)
{
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result = mysql_query($sql);
if(
$row = mysql_fetch_array($result))
{
echo "
Errornick escogido por otro usuario";
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,emailVALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query(
$sql);
echo "
Registro exitoso!";
}
mysql_free_result(
$result);
}
else
{
echo "
Debe llenar como minimo los campos de email y password";
}
mysql_close();
?>

y el mysqlconect.php
<?php
function Conectarse()
{
if (!(
$link=mysql_connect("localhost","jean_xd","MD5CHECKSUM")))
{echo 
"Error en el nombre de usuario y contrase&#21336;a,revisa el archivo conex.php";
exit();
}
if (!
mysql_select_db("jean_db",$link))
{echo 
"Error en el nombre de la base de datos,revisa el archivo conex.php";
exit();
}
return 
$link;
}
?>
   


PD: por cierto quiero hacer el registro vulnerable para practicar un poco las vulnerabilidades.
Porque me da problema con la linea 12 = gracias :D

diego_lp

Hola, la sintaxis de METHOD.php esta mal, modifiqué algunas partes a ver si ahora no te da error, prueba reemplazar el código de ese archivo por ésto:
<?php //
{
include(
"MYSQLCONECT.php");
{
$mensaje str_replace("<","<",$mensaje);
$mensaje str_replace(">",">",$mensaje);
$mensaje str_replace("'","'",$mensaje);
$mensaje str_replace("'","'",$mensaje);
$mensaje str_replace("\\",'\"',$mensaje);
return 
$mensaje;
}
if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
$sql "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result mysql_query($sql);
if(
$row mysql_fetch_array($result))
{
echo 
"Error, nick escogido por otro usuario";
}
else
{
$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo 
"Registro exitoso!";
}
mysql_free_result($result);
}
else
{
echo 
"Debe llenar como minimo los campos de email y password";
}
mysql_close();
}
?>

Primero respalda el archivo original por si éste código no te funciona.
Suerte.
Saludos.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

jeanbkn

Cita de: diego_lp en 14 Octubre 2011, 15:19 PM
Hola, la sintaxis de METHOD.php esta mal, modifiqué algunas partes a ver si ahora no te da error, prueba reemplazar el código de ese archivo por ésto:

Primero respalda el archivo original por si éste código no te funciona.
Suerte.
Saludos.

Bueno con el codigo que me diste, ahora queda en blanco la pagina xD, en verdad ya no se que hacer he buscado 50codigos y ni uno funciona, con el method.php antiguo me sale:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/jean/public_html/METHOD.php on line 12
y la linea 12 es esta:
if(trim($HTTP_POST_VARS["nick"]) != trim($HTTP_POST_VARS["password"]) !=)
Ya no se que hacer :S y por cierto si lo hago con ASP seria mejor, peor o igual ? D:

cassiani

Ya no se que hacer :S

lo que debes hacer es dejar de copiar código a lo loco y estudiar lo que estas haciendo, si no lo entiendes y no te propones entenderlo, conseguirás nada.

prueba este y avisa como te va:
Código (php) [Seleccionar]
<?php 

//
include("MYSQLCONECT.php");

//
if(!empty($_POST['nick']) && !empty($_POST['password'])){

  
$sql 'SELECT id FROM usuarios WHERE nick="'.mysql_real_escape_string($_POST['nick']).'"';
  
$result mysql_query($sql);

  if (
mysql_num_rows($result)) > 0)
    echo 
'Error, nick escogido por otro usuario';

  }else{
    
$sql 'INSERT INTO usuarios (nick,password,nombre,email) VALUES (';
    
$sql .= '"'.  mysql_real_escape_string($_POST['nick']) .'"';
    
$sql .= ',"'mysql_real_escape_string($_POST["password"]) .'"';
    
$sql .= ',"'mysql_real_escape_string($_POST["nombre"]) .'"';
    
$sql .= ',"'mysql_real_escape_string($_POST["email"]) .'"';
    
$sql .= ')';
    
mysql_query($sql);
    echo 
"Registro exitoso!";
  }
  
mysql_free_result($result);

}else{
  echo 
"Debe llenar como minimo los campos de email y password";
}

//
mysql_close();

?>

jeanbkn

Con tu codigo me sigue dando error la linea 12 aver si mañana tengo tiempo tratare de aprender un poco mas de SQL , y con respecto al mysql_real_escape... supongo que es como las magic quotes no? si lo quiero hacer vulnerable le saco eso? y el ASP que tan bueno es para registro?

cassiani

#5
se me escapo un paréntesis, cambialo por:

linea 12:
if (mysql_num_rows($result) > 0){

http://php.net/manual/es/function.mysql-real-escape-string.php