Mirar estoy modificando un script de registro de usuarios a mi gusto, la cuestión es que todo funciona perfecto, pero cuando el usuario digamos accede a su pagina privada para ver información acerca de su cuenta, no solo le sale la suya sino que le sale la información de todos los demas usuarios también.
Aqui os dejo todos los archivos que utilizo para ver como se podria solucionar este problema:
Este es el archivo SQL para la tabla:
Cita:
Config.phpCREATE TABLE usuarios (
id int(10) NOT NULL auto_increment,
nick varchar(30) NOT NULL default '',
password varchar(30) NOT NULL default '',
email varchar(100) NOT NULL default '',
nombre varchar(35) NOT NULL default '',
plan varchar(50) NOT NULL default '',
estado varchar(50) NOT NULL default '',
regdata datetime NOT NULL default '0000-00-00 00:00:00',
rendata datetime NOT NULL default '0000-00-00 00:00:00',
clicks varchar(100) NOT NULL default '0',
url varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;
id int(10) NOT NULL auto_increment,
nick varchar(30) NOT NULL default '',
password varchar(30) NOT NULL default '',
email varchar(100) NOT NULL default '',
nombre varchar(35) NOT NULL default '',
plan varchar(50) NOT NULL default '',
estado varchar(50) NOT NULL default '',
regdata datetime NOT NULL default '0000-00-00 00:00:00',
rendata datetime NOT NULL default '0000-00-00 00:00:00',
clicks varchar(100) NOT NULL default '0',
url varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;
Código PHP:
<?
$dbhost="localhost"; //Host del mysql
$dbuser="root"; //Usuario del mysql
$dbpass="pass"; //Password del mysql
$db="namebd"; //db donde se creará la tabla users
//conectamos y seleccionamos db
mysql_connect("$dbhost","$dbuser","$dbpass");
mysql_select_db("$db");
//Comenzamos la sesión, esto se explica despues en el Sistema de Login
session_start();
?>
Código PHP:
<FORM ACTION="registrar.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=255>
<BR>
Url: <INPUT TYPE="text" NAME="url" SIZE=28 MAXLENGTH=100>
<BR>
Plan : <INPUT TYPE="text" NAME="plan" SIZE=20 MAXLENGTH=20>
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
</FORM>
Código PHP:
<?php
include("config.php");
function quitar($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["email"]) != "")
{
$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,url,plan) 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 .= ",'".quitar($HTTP_POST_VARS["plan"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["url"])."'";
$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();
?>
Código PHP:
<FORM ACTION="ingresar.php" METHOD="post">
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
<BR>
Password: <INPUT TYPE="password" NAME="password"
SIZE=28 MAXLENGTH=20>
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Ingresar">
</FORM>
Código PHP:
<?php
include("config.php");
function quitar($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"]) != "")
{
$nickN = quitar($HTTP_POST_VARS["nick"]);
$passN = quitar($HTTP_POST_VARS["password"]);
$result = mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");
if($row = mysql_fetch_array($result))
{
if($row["password"] == $passN)
{
//90 dias dura la cookie
setcookie("usNick",$nickN,time()+7776000);
setcookie("usPass",$passN,time()+7776000);
?>
Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript">
location.href = "restringida.php";
</SCRIPT>
<?
}
else
{
echo "Password incorrecto";
}
}
else
{
echo "Usuario no existente en la base de datos";
}
mysql_free_result($result);
}
else
{
echo "Debe especificar un nick y password";
}
mysql_close();
?>
Código PHP:
<?php
$loginCorrecto = false;
$idUsuarioL;
$nickUsuarioL;
$emailUsuarioL;
$nombreUsuarioL;
$regdataUsuarioL;
$rendataUsuarioL;
$estadoUsuarioL;
$planUsuarioL;
if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
{
@$result = mysql_query("SELECT * FROM usuarios WHERE nick='".$HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'");
if($row = mysql_fetch_array($result))
{
setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000);
$loginCorrecto = true;
$idUsuarioL = $row["id"];
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
$regdataUsuarioL = $row["regdata"];
$rendataUsuarioL = $row["rendata"];
$estadoUsuarioL = $row["estado"];
$planUsuarioL = $row["plan"];
}
else
{
//Destruimos las cookies.
echo ("Hasta luego");
setcookie("usNick","x",time()-3600);
setcookie("usPass","x",time()-3600);
}
@mysql_free_result($result);
}
?>
Código PHP:
<?php
include("config.php");
include("login.php");
if($loginCorrecto)
{
echo "esta es tu area cabron <a href='login.php'>Logut</a>";
/* Conexion, seleccion de una base de datos */
$enlace = mysql_connect('localhost', 'root', 'pass')
or die('No pudo crear una conexión: ' . mysql_error($enlace));
mysql_select_db('namebd', $enlace)
or die('No pudo seleccionarse la base de datos');
/* Realizar una consulta SQL */
$consulta = 'SELECT * FROM usuarios';
$resultado = mysql_query($consulta, $enlace) or die('La consulta falló: ' . mysql_error($enlace));
/* Impresion de resultados en HTML */
echo "<table>\n";
while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
echo "<tr><td>Nick:</td><td> $fila[nick]</td></tr>";
echo "<tr><td>Tu contraseña es: </td><td> $fila[email]</td></tr>";
echo "<tr><td>Te registraste el dia</td><td> $fila[regdata]</td></tr>";
echo "<tr><td>Renovacion: </td><td> $fila[rendata]</td></tr>";
echo "<tr><td>Url: </td><td> $fila[url]</td></tr>";
echo "<tr><td>Tu plan es: </td><td> $fila[plan]</td></tr>";
echo "<tr><td>Clicks: </td><td> $fila[clicks]</td></tr>";
echo "\t</tr>\n";
}
echo "</table>\n";
/* Liberar el conjunto de resultados */
mysql_free_result($resultado);
/* Cerrar la conexion */
mysql_close($enlace);
}
else
{
echo "El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
}
?>
Muchas gracias,