Foros del Web » Programando para Internet » PHP »

Problema al modificar Script

Estas en el tema de Problema al modificar Script en el foro de PHP en Foros del Web. Saludos a tods, Mirar estoy modificando un script de registro de usuarios a mi gusto, la cuestión es que todo funciona perfecto, pero cuando el ...
  #1 (permalink)  
Antiguo 12/11/2007, 04:57
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 74
Problema al modificar Script

Saludos a tods,

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:
CREATE 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;
Config.php
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();
?>
reg.php
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
registrar.php
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();
?>
log.php
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
ingresar.php
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();
?>
login.php
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);
}
?>
restringida.php (Aqui es donde me falla ya uqe muestra informacion pero de todos los usuarios)
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&oacute;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&oacute;: ' mysql_error($enlace));

/* Impresion de resultados en HTML */
echo "<table>\n";
while (
$fila mysql_fetch_array($resultadoMYSQL_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";
}
?>
Bueno eso es todo. A ver si se consigue solucionar.

Muchas gracias,
  #2 (permalink)  
Antiguo 12/11/2007, 05:15
Avatar de Yranac  
Fecha de Ingreso: junio-2007
Mensajes: 125
Antigüedad: 12 años, 6 meses
Puntos: 1
Re: Problema al modificar Script

Te falta poner la condición de que sea el usuario que se logueó, por eso le muestras todo

Yo haría
Código PHP:
<?php
/* Realizar una consulta SQL */
$consulta 'SELECT * FROM usuarios where id=' $id;
?>
Donde $id sería el id del usuario que se ha logueado, pero como no veo que tengas esa información a mano (en la sesión o lo que sea) tambíen podría ser
Código PHP:
<?php
/* Realizar una consulta SQL */
$consulta 'SELECT * FROM usuarios where nick=' $HTTP_COOKIE_VARS["usNick"];
?>
Y mucha atención a la seguridad....
__________________
mais só os ignorantes e féridos e duros, imbéciles e escuros non nos entenden, non.
Visita Mi web
  #3 (permalink)  
Antiguo 12/11/2007, 05:36
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 74
Re: Problema al modificar Script

Buenas,

He modificado el archivo restringida.php añadiendo lo que me has dicho
Cita:
$consulta = 'SELECT * FROM usuarios where nick=' . $HTTP_COOKIE_VARS["usNick"];
Y se loguea, pero no muestra datos ni nada me puestra lo siguiente:
Cita:
esta es tu area cabron LogutLa consulta falló: Unknown column 'pepe' in 'where clause'
¿Que se hace mal?

Muchas gracias,
  #4 (permalink)  
Antiguo 12/11/2007, 06:16
Avatar de Yranac  
Fecha de Ingreso: junio-2007
Mensajes: 125
Antigüedad: 12 años, 6 meses
Puntos: 1
Re: Problema al modificar Script

Cierto, culpa mía, al ser texto va entre comillas
Código PHP:
<?php
/* Realizar una consulta SQL */
$consulta 'SELECT * FROM usuarios where nick="' $HTTP_COOKIE_VARS["usNick"] . '"';
?>
Prueba así...
__________________
mais só os ignorantes e féridos e duros, imbéciles e escuros non nos entenden, non.
Visita Mi web
  #5 (permalink)  
Antiguo 12/11/2007, 08:03
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 74
Re: Problema al modificar Script

Muchas gracias Yranac ya me funciona a la perfección.

Pero ahora hago otra consulta. Viendo el código que he puesto, como podria hacer para que a partir de la fecha de registro cuente por ejemplo 15 o 30 dias, para que se muestre una fecha de renovación.

Y otra cosa... la fecha en realidad no me sale, me sale asi: 0000-00-00 00:00:00

Saludos y muchas gracias de nuevo,
  #6 (permalink)  
Antiguo 14/11/2007, 14:34
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 74
Re: Problema al modificar Script

Saludos de nuevo,
Me gustaria que alguien me dijera como podria hacerse para que según un resultado, éste se mostrara de un color.

Me gustaria que en el ultimo archivo (restringida.php) en donde pone "Tu plan es: Resultado" pues si por ejemplo el plan fuera A, se mostrara en verde y si fuera B se mostrara por ejemplo en amarillo.

Hacer que un resultado se muestre en color es muy fácil de hacerlo y se hacerlo.
Pero hacer como he dicho que se mueste un color dependiendo el resultado, no tengo ni la menor idea.

Muchas gracias,
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:35.