Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: jeanbkn en 14 Octubre 2011, 02:51 am



Título: Un register.php que no registra! HELP
Publicado por: jeanbkn en 14 Octubre 2011, 02:51 am
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
Código:
<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
Código:
<?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();
?>
y el mysqlconect.php
Código:
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","jean_xd","MD5CHECKSUM")))
{echo "Error en el nombre de usuario y contrase単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


Título: Re: Un register.php que no registra! HELP
Publicado por: 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:
Código:
<?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.


Título: Re: Un register.php que no registra! HELP
Publicado por: jeanbkn en 14 Octubre 2011, 16:59 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:
Código:
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:
Código:
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:


Título: Re: Un register.php que no registra! HELP
Publicado por: cassiani en 14 Octubre 2011, 18:24 pm
Código:
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
  1. <?php
  2.  
  3. //
  4. include("MYSQLCONECT.php");
  5.  
  6. //
  7. if(!empty($_POST['nick']) && !empty($_POST['password'])){
  8.  
  9.  $sql = 'SELECT id FROM usuarios WHERE nick="'.mysql_real_escape_string($_POST['nick']).'"';
  10.  $result = mysql_query($sql);
  11.  
  12.  if (mysql_num_rows($result)) > 0)
  13.    echo 'Error, nick escogido por otro usuario';
  14.  
  15.  }else{
  16.    $sql = 'INSERT INTO usuarios (nick,password,nombre,email) VALUES (';
  17.    $sql .= '"'.  mysql_real_escape_string($_POST['nick']) .'"';
  18.    $sql .= ',"'. mysql_real_escape_string($_POST["password"]) .'"';
  19.    $sql .= ',"'. mysql_real_escape_string($_POST["nombre"]) .'"';
  20.    $sql .= ',"'. mysql_real_escape_string($_POST["email"]) .'"';
  21.    $sql .= ')';
  22.    mysql_query($sql);
  23.    echo "Registro exitoso!";
  24.  }
  25.  mysql_free_result($result);
  26.  
  27. }else{
  28.  echo "Debe llenar como minimo los campos de email y password";
  29. }
  30.  
  31. //
  32.  
  33. ?>


Título: Re: Un register.php que no registra! HELP
Publicado por: jeanbkn en 14 Octubre 2011, 20:02 pm
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?


Título: Re: Un register.php que no registra! HELP
Publicado por: cassiani en 15 Octubre 2011, 13:42 pm
se me escapo un paréntesis, cambialo por:

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

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