Foros del Web » Programando para Internet » PHP »

como se que mensaje puso el usuario

Estas en el tema de como se que mensaje puso el usuario en el foro de PHP en Foros del Web. hola gente mi problema es el siguiente tengos dos tablas uno dice usuarios y otro mensaje bueno en usuarios es donde me llega los datos ...

  #1 (permalink)  
Antiguo 28/09/2005, 11:11
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
Pregunta como se que mensaje puso el usuario

hola gente mi problema es el siguiente tengos dos tablas uno dice usuarios y otro mensaje bueno en usuarios es donde me llega los datos de inscripccion de cada usuario y en la tabla mensaje los mensaje ......

yo lo que quiero hacer es como se el mensaje que pone cada usaurio
creo que seria haciendo un select a dos tablas

$result = mysql_query("SELECT mensaje.id, titulo, precioventas, mensaje, sector, nombre, DATE_FORMAT(fecha, '%d-%M-%Y') as fecha
FROM mensaje, usuarios WHERE mensaje.identificador = usuarios.id ORDER BY fecha DESC ", $link);

bueno la consulta no me sale me gustaria si me pueden ayudar o si hay otro metodo gracias desde ahora

  #2 (permalink)  
Antiguo 28/09/2005, 11:28
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
La consulta parece estar bien... porqué dices que no funciona? Qué guardas en mensaje.id y en mensaje.identificador? Supongo que en mensaje.identificador guardas el id del usuario que dejó el mensaje, no? Si es así debería funcionar.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 28/09/2005, 12:24
Avatar de ProWebDeveloper  
Fecha de Ingreso: julio-2005
Ubicación: Maracay - Edo. Aragua
Mensajes: 117
Antigüedad: 18 años, 8 meses
Puntos: 1
Explica bien que contiene cada campo en ambas tablas... y en particular creo que la mejor via para obtener datos relacionados de dos tablas es mediante el uso de un INNER JOIN...

Cualquier cosa me avisas..

Saludos...
  #4 (permalink)  
Antiguo 28/09/2005, 20:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
gracias muchachos por responderme de verda que ahora mas que nunca necesito de sus ayudas como me pregunta DJnerson son dos tablas uno usuarios y otro mensaje en la consulta mensaje.id me referiria al id del mensaje y en mensaje.identificador seria el identificador del mensaje que puso el usuario osea..

el usuario se logea con su pass y nick cuando el usuario va a mandar un mensaje que entra en un tipo formulario con los campos de titulo precio de ventas y mensaje hay uno oculto que seria identificador osea

colocar.php

<form action=agregar.php method=post><B>Categoria de su Anuncio</b>
<select name="categorias">
<option value="0" >Elija una Categoria</option>
<option value="0101"
>Servicios Varios</option>
<option value="0201"
>Articulos del Hogar</option>
<option value="0301"
>Bienes Raices - Apartamentos</option>
<option value="0302"
>Bienes Raices - Casas</option>
<option value="0303"
>Bienes Raices - Habitaciones</option>
<option value="0304"
>Bienes Raices - Locales Comerciales</option>
<option value="0305"
>Bienes Raices - Terrenos</option>
<option value="0307"
>Bienes Raices - Fincas/campos</option>
<option value="0401"
>Equipos Electronicos - Equipos de Musica/Sonido</option>
<option value="0402"
>Equipos Electronicos - Celulares & Comunicacion</option>
<option value="0403"
>Equipos Electronicos - Otros</option>
<option value="0501"
>Computadoras</option>
<option value="0601"
>Vehiculos - Automoviles</option>
<option value="0602"
>Vehiculos - Camiones</option>
<option value="0603"
>Vehiculos - Camionetas</option>
<option value="0604"
>Vehiculos - Jeepetas</option>
<option value="0605"
>Vehiculos - Motocicletas</option>
<option value="0701"
>Ofertas de empleo</option>
<option value="0702"
>Solicitud de empleo</option>
<option value="0801"
>Ventas Diversas</option>
</select>
<table width="90%" border="0" cellspacing="2" cellpadding="2">
<input type="hidden" name="identificador" value="<?=$id?>">
<tr>
<td width="30%" align="right">Titulo </td>
<td><input type="text" name="titulo"></td>
</tr>
<tr>
<td width="30%" align="right">Precio de venta</td>
<td><input type="text" name="precioventas"></td>
</tr>
<tr>
<td width="30%" align="right">Mensaje</td>
<td><textarea name="mensaje" cols="50" rows="5"></textarea></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="Enviar Mensaje"></td>
</tr>
</form>
</table>
</td></tr>
</table>

en el campo <input type="hidden" name="identificador" value="<?=$id?>">
deberia de mandarme el id del usuario con que se inscribio pues este me llega valor 0
y ahi es donde tengo el error mientra me llega valor 0 no me identifica el mensaje y la consulta no se hace si desean le envio el codigo completo para que puedan entender mejor y gracias desde ahora es de urgencia si existe otro metodo me tipean el codigo ,,,
  #5 (permalink)  
Antiguo 28/09/2005, 20:49
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
ah en las tablas tengo lo siguiente

CREATE TABLE `usuarios` (
`id` bigint(7) NOT NULL auto_increment,
`apellido` varchar(50) NOT NULL default '',
`nombre` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`direccion` varchar(100) NOT NULL default '',
`sector` varchar(60) NOT NULL default '',
`provincia` varchar(50) NOT NULL default '',
`telefono1` varchar(30) NOT NULL default '',
`telefono2` varchar(30) NOT NULL default '',
`fechanac` Date,
`ingresos` varchar(15) NOT NULL default '',
`nick` varchar(30) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`rep_password` varchar(32) NOT NULL default '',
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`ultima_visita` timestamp(14) NOT NULL,
UNIQUE KEY `id_2` (`id`),
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;


---------------------

CREATE TABLE `mensaje` (
`id` bigint(7) NOT NULL auto_increment,
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`categorias` varchar(32) NOT NULL default '',
`titulo` varchar(30) NOT NULL default '',
`precioventas` varchar(15) NOT NULL default '',
`mensaje` varchar(140) NOT NULL default '',
`fecha` datetime NOT NULL default '0000-00-00 00:00:00',
`respuestas` int(30) NOT NULL default '0',
`ult_respuesta` datetime default NULL,
UNIQUE KEY `id_2` (`id`),
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;
  #6 (permalink)  
Antiguo 28/09/2005, 22:06
Avatar de Heros  
Fecha de Ingreso: abril-2005
Mensajes: 69
Antigüedad: 19 años
Puntos: 1
bueno..... mira te voy a dar un ejemplo, y tu ya lo acomodas a lo que estas haciendo.
Primero con tus tablas...
tabla usuario
id_usuario (clave primaria)
nombre
apellido
.....
.....

tabla mensaje
id_mensaje (clave primaria)
mensaje
fecha
...
...
id_usuario (clave foranea)

el campo id_usuario de la tabla mensaje es la que va hacer lo que se llama foregin key y es la que te va a ayudar a unir los datos de las dos tablas... revisa un poco de diseño de base de datos. ahhh y trata de estandarizar el nombre que pones a los campos... no te compliques poniendolos porque aveces es alli donde se falla por errores de sintaxis.

ahora con respecto a vizualizar la informacion de las dos tablas alli te va un ejemplo

Código PHP:
mysql_select_db($database_ejemplo$connBDejemplo);
$consulta "SELECT * FROM usuarios,mensaje WHERE usuarios.id_usuarios=mensaje.id_usuarios"
$rsConsultamysql_query($consulta$connBDejemplo) or die(mysql_error()); 
bueno espero haberte ayudado.... bytes...
  #7 (permalink)  
Antiguo 28/09/2005, 22:15
Avatar de Heros  
Fecha de Ingreso: abril-2005
Mensajes: 69
Antigüedad: 19 años
Puntos: 1
bueno..... mira te voy a dar un ejemplo, y tu ya lo acomodas a lo que estas haciendo.
Primero con tus tablas...
tabla usuario
id_usuario (clave primaria)
nombre
apellido
.....
.....

tabla mensaje
id_mensaje (clave primaria)
mensaje
fecha
...
...
id_usuario (clave foranea)

el campo id_usuario de la tabla mensaje es la que va hacer lo que se llama foregin key y es la que te va a ayudar a unir los datos de las dos tablas... revisa un poco de diseño de base de datos. ahhh y trata de estandarizar el nombre que pones a los campos... no te compliques poniendolos porque aveces es alli donde se falla por errores de sintaxis.

ahora con respecto a vizualizar la informacion de las dos tablas alli te va un ejemplo

Código PHP:
mysql_select_db($database_ejemplo$connBDejemplo);
$consulta "SELECT * FROM usuarios,mensaje WHERE usuarios.id_usuarios=mensaje.id_usuarios"
$rsConsultamysql_query($consulta$connBDejemplo) or die(mysql_error()); 
bueno espero haberte ayudado.... bytes...
  #8 (permalink)  
Antiguo 29/09/2005, 10:51
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
ok ya voy a probar como me dices se ve muy bueno hacer la clave foranea id_usuario ponerlo en el campo de mensaje me imagino que el id_usuario de la tabla usuario se pasa a la tabla de mensaje con el mismo nombre id_usuario

una cosa que valor le doy a este campo id_usuario en la tabla mensaje porque supongo que en la tabla usuario el id_usuario sera autoincrementado

ya voy a probar y despues te digo chau
  #9 (permalink)  
Antiguo 30/09/2005, 09:37
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
Hola Heros una pregunta como podria poner el id_usuario en la tabla de mensaje para recojer los datos de id_usuarios en la tabla de usuario yo lo puse de esta forma

CREATE TABLE `usuarios` (
`id_usuario` bigint(7) NOT NULL auto_increment,
`apellido` varchar(50) NOT NULL default '',
`nombre` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`direccion` varchar(100) NOT NULL default '',
`sector` varchar(60) NOT NULL default '',
UNIQUE KEY `id_2` (`id_usuario`),
KEY `id_usuario` (`id_usuario`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;


CREATE TABLE `mensaje` (
`id_mensaje` bigint(7) NOT NULL auto_increment,
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`categorias` varchar(32) NOT NULL default '',
`id_usuario` varchar(32) NOT NULL default '',
UNIQUE KEY `id_2` (`id_mensaje`),
KEY `id_mensaje` (`id_mensaje`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

osea no se si es asi `id_usuario` varchar(32) NOT NULL default '',

bueno ya me diras
  #10 (permalink)  
Antiguo 01/10/2005, 08:28
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
ayudaa como hago una tabla foreana pues no se como hacerlo para cojer los datos bueno ya me diran....
  #11 (permalink)  
Antiguo 01/10/2005, 21:02
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
no nesecitas darle un fonringkey.. solamente ponle on codigo primario a la tabla usuarios iduser y en la tabla mensajes pone iduser y ponle como indice...

Llisto.. al guardar los mensajes en la tabla "mensajes" le pones en iuser el id del usuario..
Y para consultar solamente has esto

"Select * from mensajes where iduser=$codigodeusuario"

Saludos.
  #12 (permalink)  
Antiguo 03/10/2005, 10:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
Hola ya puse en la tabla usuario el id_usuarios como clave primaria y en la tabla mensaje id_mensaje puse otra tabla con el mismo nombre id_usuario con los valores
`id_usuario` varchar(32) NOT NULL default '', creo que seria asi,,,
y ahora que sigue supongo que automaticamente al mandar el mensaje este campo me llega con el mismo id del usuario ???? va eso creo alguien que de alguna mano con esto,, saludos a todos esta bueno el foro
  #13 (permalink)  
Antiguo 03/10/2005, 20:00
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
mmmm.. por siacaso.. sabes modelar base de datos?
  #14 (permalink)  
Antiguo 03/10/2005, 21:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
a que le llamas modelar pues no sere un esperto en php pero entiendo perfectamente como funciona las BD el problema que tengo es por un campo que no me llega el dato a el para poder trabajar este campo deberia de llegar de un formulario identificador donde llega valor 0 este campo deberia de registrarme el ID del usuario para poder hacer la consulta y ver que mensaje puso el usuario despues de eso solo necesito seleccionar los rubros dependiendo el tipo de mensaje y listo mi trabajo queda terminado si alguien puede tipiarme algun codigo de identificador de mensaje o algo por el estilo se lo agradeseria o algun metodo mejor de hacerlo gracias desde ahora
  #15 (permalink)  
Antiguo 04/10/2005, 09:09
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Haber, tu problema es facil... si deseas apoyo en concreto debes colocar la FOtO de tus tablas (el diagrama) o bien lo describes.. y luego el codigo para guardar y consultar que usas....

Solo asi podremos entender que tratas de decir....
  #16 (permalink)  
Antiguo 05/10/2005, 11:17
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
ok richardinj te tipeo las tablas en la tabla usuario tengo lo siguiente

CREATE TABLE `usuarios` (
`id_usuario` bigint(7) NOT NULL auto_increment,
`apellido` varchar(50) NOT NULL default '',
`nombre` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`direccion` varchar(100) NOT NULL default '',
`sector` varchar(60) NOT NULL default '',
`provincia` varchar(50) NOT NULL default '',
`telefono1` varchar(30) NOT NULL default '',
`telefono2` varchar(30) NOT NULL default '',
`fechanac` Date,
`ingresos` varchar(15) NOT NULL default '',
`nick` varchar(30) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`rep_password` varchar(32) NOT NULL default '',
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`ultima_visita` timestamp(14) NOT NULL,
UNIQUE KEY `id_2` (`id_usuario`),
KEY `id` (`id_usuario`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

y en la tabla mensaje tengo lo siguiente

CREATE TABLE `mensaje` (
`id_mensaje` bigint(7) NOT NULL auto_increment,
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`categorias` varchar(32) NOT NULL default '',
`titulo` varchar(30) NOT NULL default '',
`precioventas` varchar(15) NOT NULL default '',
`mensaje` varchar(140) NOT NULL default '',
`fecha` datetime NOT NULL default '0000-00-00 00:00:00',
`respuestas` int(30) NOT NULL default '0',
`ult_respuesta` datetime default NULL,
`id_usuario` text NOT NULL,
UNIQUE KEY `id_2` (`id_mensaje`),
KEY `id_mensaje` (`id_mensaje`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

despues que el usuario se logea pasa a un formulario donde ponen y escriben los anuncios que seria este

colocar.html

<form action=agregar.php method=post><B>Categoria de su Anuncio</b>
<select name="categorias">
<option value="0" >Elija una Categoria</option>
<option value="0101"
>Servicios Varios</option>
<option value="0201"
>Articulos del Hogar</option>
<option value="0301"
>Bienes Raices - Apartamentos</option>
<option value="0302"
>Ventas Diversas</option>
</select>
<table width="90%" border="0" cellspacing="2" cellpadding="2">
<input type="hidden" name="identificador" value="<?=$id?>">
<tr>
<td width="30%" align="right">Titulo </td>
<td><input type="text" name="titulo"></td>
</tr>
<tr>
<td width="30%" align="right">Precio de venta</td>
<td><input type="text" name="precioventas"></td>
</tr>
<tr>
<td width="30%" align="right">Mensaje</td>
<td><textarea name="mensaje" cols="50" rows="5"></textarea></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="Enviar Mensaje"></td>
</tr>
</form>
</table>
</td></tr>
</table>

¿fijate en el campo identificador!!!!?

luego introducimo el mensaje en la BD

agregar.php


<?php
require('configuracionn.php');
$categorias = $_POST["categorias"];
$titulo = $_POST["titulo"];
$precioventas = $_POST["precioventas"];
$mensaje = $_POST["mensaje"];
$identificador = $_POST["identificador"];

//Hacemos algunas validaciones
if(empty($precioventas)) $precioventas = "Anónimo";
if(empty($titulo)) $titulo = "Sin título";
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities($mensaje);

// Grabamos el mensaje en la base.
$sql = "INSERT INTO mensaje (categorias, titulo, precioventas, mensaje, identificador, fecha, ult_respuesta) ";
$sql.= "VALUES ('$categorias','$titulo','$precioventas','$mensaje ','$identificador',NOW(),NOW())";
$rs = mysql_query($sql, $con) or die("Error al grabar un mensaje: ".mysql_error);
$ult_id = mysql_insert_id($con);
echo 'Registro exitoso. Su mensaje ah sido enviado!
<br>
<a href="computadoras.php?">anuncios</a>';

?>


y en la consulta

<?php
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);
$result = mysql_query("SELECT id_mensaje, titulo, precioventas, mensaje, sector, nombre, DATE_FORMAT(fecha, '%d-%M-%Y') as fecha
FROM mensaje, usuarios WHERE mensaje.id_usuario = usuarios.id_usuario ORDER BY fecha DESC ", $link);
echo "<table width='100%'> \n";
echo "<a href=index.php align=left><font size='2'>HOME</font> ";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Descripción<b></font></td> \n";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Ubicacion<b></font></td> \n";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Fecha<b></font></td> \n ";
echo "</tr> \n";
while($row=mysql_fetch_array($result)){
echo"<table width=650 border=0>";
//echo "<tr align=left valign=top bgcolor=#cccccc>";
echo "<table width=650 bgcolor=#cccccc>";
echo "<th width=200 align=left scope=col><span class=Estilo7>&nbsp;<span class=Estilo1>:.</span>&nbsp;</span></th>";
echo"<tr align=left valign=top bgcolor=#38A3C6>";
echo"<td bordercolor='#ffffff'><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='4'>".$row["titulo"]."</td></td>";
echo"<td bordercolor='#ffffff' table width='40%' align=center><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='3'>".$row["sector"]."</td></td>";
echo"<td bordercolor='#ffffff' align=center><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='3'>".$row["fecha"]."</td></td>";
}
?>

bueno eso es todo la consulta no se realiza porque el campo identificador llega vacio cuando deberia de registrarme el id del usuario y probando con el campo id_usuario tambien me llega vacio esta es la manera que creo que podria ver que mensaje puso el usuario si existe otra forma mejor provamos si me escriben el codigo para mi es mas facil entenderlo asi bueno espero que me ayudes si te hace falta algo mas avisame asi te doy detalles y gracias desde ahora espero que me ayuden es lo ultimo que me quedaria para terminar mi web chau
  #17 (permalink)  
Antiguo 05/10/2005, 14:15
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Ok.. vamos por pasos..

-primero colocar.html debe ser colocar.php ya que harás una consulta (basicamente ahi esta tu error).

En colocar.php pon algo asi:

<?
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);


//recibimos las variables del formulario de acceso.
$nick=$_POST['nick'];
$password=$_POST['password'];

//Validamos en acceso
$result = mysql_query("SELECT * from usuarios usaurios where nick=$nick and password=$password") or die("error en consulta");
if ($f=mysql_fetch_array($result))
{
$id=$id_usuario;
}
else
{ echo "Contraseña Incorrecta";}

?>


Como puedes apreciar $id=$id_usuario; capturas el $id que usas en<input type="hidden" name="identificador" value="<?=$id?>"> y ahi si sale...

agregar.php esta bien...

Para tu consulta te pongo un ejemplo.. tu ya ves que haces o deseas hacer...solo trabajas con la tabla mensaje

Digamos que quiero buscar los mensajes de un usuario cuyo id_usuario=52

<?
$id=52;
$result = mysql_query("SELECT * from mensajes where identificador=$id") or die("error en consulta");
while ($f=mysql_fetch_array($result))
{
echo .$f[fecha]." - ".$f['mensaje'];
}
else
{ echo "No hay mensajes";}
?>

Para que le des mas orden a todo.. en ves de usar identificador usa id_usuario en tu tabla mensajes y borra el campo identificador..,. si deseas claro...


Conforme señor notario?


Saludos y suerte.
  #18 (permalink)  
Antiguo 09/10/2005, 11:39
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
Hola richardinj gracias por ayudarme en esto te lo agradesco unos detallles

ya puse el colocar.htm a colocar.php

hice algunas correciones fijate bien si son asi en la linea

$result = mysql_query("SELECT * from usuarios usaurios where nick=$nick and password=$password") or die("error en consulta");

pusiste fron usuario dos veces bueno yo le saque uno y deje from usuarios .... en esa misma linea el $result = deberia te optener la consulta de la BD que hace el link asi que lo cambie a
$result = mysql_query("SELECT * from usuarios where nick=$nick and password=$password", $link);

en la linea if ($f=mysql_fetch_array($result)) ese $f= que seria yo lo cambie por $row= no se si estarn bien asi tu me diras haciendo esas correciones me da el siguiente error

Notice: Undefined index: nick in d:\inetpub\wwwroot\bell ville\bell ville web\TMP4b3h7o3td1.php on line 81

Notice: Undefined index: password in d:\inetpub\wwwroot\bell ville\bell ville web\TMP4b3h7o3td1.php on line 82

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\inetpub\wwwroot\bell ville\bell ville web\TMP4b3h7o3td1.php on line 86
Contraseña Incorrecta

por el momento vere si lo corrijo si es asi :)
  #19 (permalink)  
Antiguo 09/10/2005, 15:31
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 1 mes
Puntos: 0
Cita:
Iniciado por coyote20
Hola Heros una pregunta como podria poner el id_usuario en la tabla de mensaje para recojer los datos de id_usuarios en la tabla de usuario yo lo puse de esta forma

CREATE TABLE `usuarios` (
`id_usuario` bigint(7) NOT NULL auto_increment,
`apellido` varchar(50) NOT NULL default '',
`nombre` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`direccion` varchar(100) NOT NULL default '',
`sector` varchar(60) NOT NULL default '',
UNIQUE KEY `id_2` (`id_usuario`),
KEY `id_usuario` (`id_usuario`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;


CREATE TABLE `mensaje` (
`id_mensaje` bigint(7) NOT NULL auto_increment,
`sid` varchar(32) NOT NULL default '',
`identificador` varchar(32) NOT NULL default '',
`categorias` varchar(32) NOT NULL default '',
`id_usuario` varchar(32) NOT NULL default '',
UNIQUE KEY `id_2` (`id_mensaje`),
KEY `id_mensaje` (`id_mensaje`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

osea no se si es asi `id_usuario` varchar(32) NOT NULL default '',

bueno ya me diras
y pq no Innodb.. y se hacen relacionales.... por el campo ID_usuario?
  #20 (permalink)  
Antiguo 10/10/2005, 10:13
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Usaste ????

$nick=$_POST['nick'];
$password=$_POST['password'];


porque ese error dice que no recibe ese valor,q ue no hay... tb supongo que te logeaste desde otra web, para entrar en ella...

El otro error dice que no estas conectado a la BD. o error en la sintaxis SQL .. cheka bien eso..

corrige...
  #21 (permalink)  
Antiguo 10/10/2005, 21:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
si lo use encima hice unas modificacion porque si si en $nick recoge el nick del usuario en el logeo y ingreso lo tengo como $nickN y $passN

<?
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);

//recibimos las variables del formulario de acceso.
//$nick=$_POST['nick'];
//$password=$_POST['password'];

$nickN = $_POST["nick"];
$passN = $_POST["password"];

//Validamos en acceso
$result = mysql_query("SELECT * from usuarios where nick=$nickN and password=$passN", $link); //) or die("error en consulta");
if ($f=mysql_fetch_array($result))
{
$id=$id_usuario;
}
else
{
echo "Contraseña Incorrecta";
}
?>

por otro lado no me loe desde otra web porque lo estoy haciendo la coencciones localmente con el IIS lo que si me logeo desde la pagina inicial que seria el index.php y de alli voy al rubro computadora donde tiene que hacer la consulta para ver los mensajes y desde computadora le doy a un botos para que me muestre el formulario donde el usuario pone el textarea etc..

si necesitas el ingreo y el login.php me dices y te pongo el codigo igual voy a chequiar si es que se pierden los datos desde que se logea hasta que muestra otra pagina cuarquier cosa me dices ......
  #22 (permalink)  
Antiguo 11/10/2005, 08:54
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
bien enviame el codigo...
Una pequeña observacion, quisas escribiste mal.. pero veo en el codigo anterior esto "and password=$passN", $link); //) or die......"

No debe ir //.. quita eso
  #23 (permalink)  
Antiguo 12/10/2005, 11:36
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
bueno revisando no encuentro el porque de este mensaje

<?
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);

//recibimos las variables del formulario de acceso.
$nick=$_POST['nick'];
$password=$_POST['password'];

//Validamos en acceso
$result = mysql_query("SELECT * from usuarios usaurios where nick=$nick and password=$password") or die("error en consulta");
if ($f=mysql_fetch_array($result))
{
$id=$id_usuario;
}
else
{ echo "Contraseña Incorrecta";}

?>

mensaje de error

Notice: Undefined index: nick in d:\inetpub\wwwroot\bell ville\bell ville web\colocar.php on line 81

Notice: Undefined index: password in d:\inetpub\wwwroot\bell ville\bell ville web\colocar.php on line 82
error en consulta

fijate en la conection $link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link); ese $link es el que me recoje la consulta no deberia de ir en algun lado ?????


por otro lado te envio el login

cuando el usuario pone su nick y pass este se va a
ingresar.php

<?php
// Inicio de sessión
session_start();

// Servidor de la Base de Datos
$servidorBD="localhost";
// Usuario de la Base de Datos
$usuarioBD="dominicana";
// Contraseña de la Base de Datos
$passBD="clave";
// Nombre de la Base de Datos
$nombreBD="formulario";
// Conecto con la base de datos
$conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die ("Imposible conectar con la base de datos");
// Selecciono la BBDD
mysql_select_db($nombreBD,$conectar) or die (mysql_error());

include('identificar.inc.php');

//Inicializamos la variable sid para utilizarla más tarde
$sid = md5(SID);

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("\\\\","&#92",$mensaje);
return $mensaje;
}

if(trim($_POST["nick"]) != "" && trim($_POST["password"]) != "")
{
$nickN = quitar($_POST["nick"]);
$passN = quitar($_POST["password"]);

$result = mysql_query("SELECT id_usuario, password FROM usuarios WHERE nick='$nickN'");
if($row = mysql_fetch_array($result))
{
if($row["password"] == md5($passN))
{
//Introduce en la BD los datos encriptados de IP,Host,y navegador
$identificador = md5(get_full_ip() .'-'. browser_detection());
$sql = "Update usuarios Set sid = '".$sid."', identificador = '".$identificador."',
ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());
//90 dias dura la cookie
// setcookie("usNick",$nickN,time()+7776000);
// setcookie("usPass",$sid,time()+7776000);
setcookie("usNick",$nickN,time()+7776000,"/","localhost");
setcookie("usPass",$passN,time()+7776000,"/","localhost");


//También las de sesión
$_SESSION['usNick'] = $nickN;
$_SESSION['usPass'] = $sid;
$_SESSION['id_usuario'] = $row['id_usuario'];
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php?<? echo SID ?>";
</SCRIPT>
<?
}
else
{
echo 'Password incorrecto
<br>
<a href="formulario_login.php?">Login</a>
';
}
}
else
{
echo 'Usuario no existente en la base de datos
<br>
<a href="formulario_login.php?'. SID .'">Login</a>
';
}
mysql_free_result($result);
}
else
{
echo 'Debe especificar un nick y password
<br>
<a href="formulario_login.php?">Login</a> ';
}
mysql_close();
?>

//-----------------------------------------------

en la parte
<SCRIPT LANGUAGE="javascript">
location.href = "index.php?<? echo SID ?>";
</SCRIPT> le puse esto para despues que se loge vuelva a la pagina principal index.php dandole la Bienvenida al usuario con su nombre

<?php
if($loginCorrecto)
{

echo 'BIENVENIDO - '.$nombreUsuarioL.'
<br>
<a href="logout.php?'. SID .'">logout</a>';

}
?>

y poniendole un include include("login.php");



//--------------------------------------------------

login.php

<?php
// Inicializamos las variables
$loginCorrecto = false;
unset($_SESSION['id_usuario']);
$nickUsuarioL="";
$emailUsuarioL="";
$nombreUsuarioL="";
$apellidoUsuarioL="";
//Inicializamos el nº de recargas de la página si no está inicializado
if(!isset($_SESSION['recarga'])){
$_SESSION['recarga'] = 0;}
//Inicializamos la variable sid para utilizarla más tarde
$sid = md5(SID);

//Incluimos el script que detecta el navegador y la IP del usuario
include('identificar.inc.php');
//Hayamos la variable que le corresponde al navegador que se está usando
//para luego compararla con la de la base de datos
$identificador = md5(get_full_ip() .'-'. browser_detection());

if(!isset($_COOKIE["Acepta"]))// Comprueba si acepta cookies
{
echo 'Acepto cookies, que pasa?!!??<br>';

// Comprueba que existan las cookies de nick y password
if(isset($_COOKIE["usNick"]) && isset($_COOKIE["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE nick = '".$_COOKIE["usNick"]."' AND
sid = '".$_COOKIE["usPass"]."' AND identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set sid = '".$sid."', ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe regraba las cookies y registra unas cuantas variables q pueden ser utiles
setcookie("usNick",$_COOKIE["usNick"],time()+7776000);
setcookie("usPass",md5(SID),time()+7776000);

$_SESSION['usNick'] = $_COOKIE["usNick"];
$_SESSION['usPass'] = md5(SID);
$_SESSION['id_usuario'] = $row['id_usuario'];

$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
$apellidoUsuarioL = $row["apellido"];
}
else
{
// Si no existe, destruimos las cookies.
setcookie("usNick","x",time()-3600);
setcookie("usPass","x",time()-3600);
}
mysql_free_result($result);// Libera la consulta
}
}
else // Si es que no acepta cookies
{
// Comprueba si ya ha probado a escribir la cookie y si ya ha probado es que no se aceptan
if (isset($_COOKIE['Acepta']) && $_SESSION['recarga'] > 1)
{
echo 'No acepto cookies, que pasa?!!??<br>';
}

// Comprueba las variables de nick y password pero esta vez en variables de sesión
if(isset($_SESSION["usNick"]) && isset($_SESSION["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE nick = '".$_SESSION["usNick"]."' AND
sid = '".$_SESSION["usPass"]."' AND identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe registra unas cuantas variables q pueden ser utiles
$_SESSION['id_usuario'] = $row['id_usuario'];
$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
$apellidoUsuarioL = $row["apellido"];
}
else
{
// Si no existe destruimos las sesiones.
unset($_SESSION['usNick']);
unset($_SESSION['usPass']);
unset($_SESSION['id_usuario']);
}
mysql_free_result($result);// Libera la consulta
}
}
// Esto indica que la ya se ha probado a escribir la cookie
$_SESSION['recarga'] = $_SESSION['recarga']+1;
?>



//---------------------------------

todo me sale a la perfecion menos el vendito ID del Usuario
espero que esto te pueda ayudar
gracias por tu pasiencia......
  #24 (permalink)  
Antiguo 12/10/2005, 13:42
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Wow... Me confundi con tanto codigo....noto que tienes el acceso del usuario y su sesion activa... no me dijsite eso antes... habra ciertos cambios... bueno.. vamos por pasos... te explico el proceso...

1.- El usuario se Logea por el formulario (por ejemplo: acceso.php)

2.- Se validan los datos del usuario (por ejemplo: logeo.php), si esta en la BD ingresa, sino esta... regresa a acceso.php.

3.- Si el acceso fue correcto se crea la sesion con el ID de usuario y se va a la pagina mensajes.php

4. En mensajes.php debes usar algo así:

Supongo que ya tienes una sesion $_SESSION['id_usuario'] activa...ojo por el id_usuario

coges ese id

$ident=$_SESSION['id_usuario'];

Ahora ese $ident capturado usalo en tu etiqueta.(la que usas para psar la variable y guardar luego)

<input type="hidden" name="identificador" value="<? echo $ident; ?>"> y ahi si sale... y ya envia la variable al otro archivo que guarda en la tabla mensajes el id_usuario o indentificador...

Si hay confucion o problemas.. dame un lnk en donde pueda ver tu pagina y ver los problemas OnLine.. de ese modo entenderé que proceso usas...

Saludos y Suerte.
  #25 (permalink)  
Antiguo 13/10/2005, 05:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
$ident=$_SESSION['id_usuario'];

Ahora ese $ident capturado usalo en tu etiqueta.(la que usas para psar la variable y guardar luego)

<input type="hidden" name="identificador" value="<? echo $ident; ?>"> y ahi si sale... y ya envia la variable al otro archivo que guarda en la tabla mensajes el id_usuario o indentificador...
¿Para que hacer eso? .. es decir, para qué propagar una variable que ya tenemos en una variable de sesión en un campo más (oculto) de un formulario? .. no tiene sentido ..simplemente en el script de proceso de ese formulario (donde se apunta su "action") ahí toma nuevamente el valor de $_SESSION['id_usuario'] simplemente, más seguro, menos datos que propagar por el URL .. etc...


Un saludo,
  #26 (permalink)  
Antiguo 13/10/2005, 19:31
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Parece que mesclamos las cosas... se supone que no puede recibir la variable que usas en
<input type="hidden" name="identificador" value="<? echo $id; ?>"> ...
que al enviar por el metodo post... no llega nada...

Por URL no se va a enviar nada ya que usas el metodo POST. toda transsacion de datos desde un formulario se hace por el metodo POST... solo si quieres que se vea en la URl se usa el metogo gET

Te estoy dando una alternativa de capturar esa id...

si quieres continuar con esto.. vuelve a detallar en procesos tu problema y señala la parte del error.

Saludos.
  #27 (permalink)  
Antiguo 14/10/2005, 12:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
bien no se peelen que estamos todos en familia lo de subir la web a una pagina vere que host esta disponible con php ya que trabajo localmente

por otro lado le detallo todo o mandame una direccion de correo asi te mando la web en zip o rar realmente no se mucho de php no tome curso ni nada lo que se son gracias a los foros y manuales etc.. y por ahi entiendo su comportamiento

las tablas ya son las que estan mas arriba comenzamos con la inscripcion por primera vez del usuario

inscrip.php

<FORM ACTION="registrar.php" METHOD="post">

<table border=0>
<font face="Verdana,Tahomoa">
<Tr>
<td>
<B>Apellidos</b></td><Td> <input type="text" name="apellido" size=40 maxlength=40></td>
</tr>

<Tr>
<td>
<B>Nombres</b></td><Td> <input type="text" name="nombre" size=40 maxlength=40></td>
</tr>

<Tr>
<td>
<B>email</b></td><Td> <input type="text" name="email" size=40 maxlength=60></td>
</tr>

<Tr>
<td>
<B>Direccion</b></td><Td> <input type="text" name="direccion" size=40 maxlength=60></td>
</tr>

<Tr>
<td>
<B>Localidad</b></td><Td> <input type="text" name="sector" size=40 maxlength=40></td>
</tr>

<Tr>
<td>
<B>Provincia</b></td><Td>
<select name="provincia">
<option value='Córdoba' >Córdoba </option>
<option value='Buenos Aires' >Buenos Aires </option>
<option value='Catamarca' >Catamarca </option>
<option value='Corrientes' >Corrientes </option>
<option value='Chaco' >Chaco </option>
</select>
</td>
</tr>

<Tr>
<td>
<B>Telefono 1</b></td><Td> <input type="text" name="telefono1" size=40 maxlength=40></td>
</tr>

<Tr>
<td>
<B>Telefono 2</b></td><Td> <input type="text" name="telefono2" size=40 maxlength=40></td>
</tr>

<Tr>
<td>
<B>Fecha de Nacimiento(aaaa-mm-dd):</b></td><Td> <input type="text" name="fechanac" size=40 maxlength=10></td>
</tr>

<Tr>
<td>
<Tr>
<td>
<B>Sexo</b></td><Td>
<select name="ingresos">
<option value='M' >Masculino </option>
<option value='F' >Femenino </option>
</select>
</tr>

<Tr>
<td>
<B>Nombre de Acceso (login) </b></td><Td> <input type="text" name="nick" size=40 maxlength=40></td>
</tr>
<Tr>
<td>
<B>Password</b></td><Td> <input type="password" name="password" size="40" maxlength="40"></td>
</tr>
<Tr>
<td>
<B>Rep-Password</b></td><Td> <input type="password" name="rep_password" size="40" maxlength="40"></td>
</tr>


</table>
<input type="submit" name="submit" Value="Registrar">
</form>

------------------------------------------------------------

en registrar.php


<?php
// Inicio de sessión
session_start();

// Servidor de la Base de Datos
$servidorBD="localhost";
// Usuario de la Base de Datos
$usuarioBD="dominicana";
// Contraseña de la Base de Datos
$passBD="clave";
// Nombre de la Base de Datos
$nombreBD="formulario";
// Conecto con la base de datos
$conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die ("Imposible conectar con la base de datos");
// Selecciono la BBDD
mysql_select_db($nombreBD,$conectar) or die ("Imposible conectar con la base de datos");


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($_POST["nick"]) != "" && trim($_POST["email"]) != "")
{
$sql = "SELECT id_usuario FROM usuarios WHERE nick='".quitar($_POST["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo 'Error, nick escogido por otro usuario
<br>
<a href="formulario.html?'. SID .'">Registro</a>
';
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,apellido,email,direccion,sec tor,provincia,telefono1,telefono2,fechanac,ingreso s,rep_password) VALUES (";
$sql .= "'".quitar($_POST["nick"])."'";
$sql .= ",md5('".quitar($_POST["password"])."')";
$sql .= ",'".quitar($_POST["nombre"])."'";
$sql .= ",'".quitar($_POST["apellido"])."'";
$sql .= ",'".quitar($_POST["email"])."'";
$sql .= ",'".quitar($_POST["direccion"])."'";
$sql .= ",'".quitar($_POST["sector"])."'";
$sql .= ",'".quitar($_POST["provincia"])."'";
$sql .= ",'".quitar($_POST["telefono1"])."'";
$sql .= ",'".quitar($_POST["telefono2"])."'";
$sql .= ",'".quitar($_POST["fechanac"])."'";
$sql .= ",'".quitar($_POST["ingresos"])."'";
$sql .= ",'".quitar($_POST["rep_password"])."'";
$sql .= ")";
mysql_query($sql);
echo 'Registro exitoso!
<br>
<a href="index.php?'. SID .'">Index</a>';
}
mysql_free_result($result);
}
else
{
echo 'Debe llenar como minimo los campos de email y password
<br>
<a href="formulario.html?'. SID .'">Registro</a>
';
}
mysql_close();
?>

los datos del formulario llegan a la BD con exito hasta aqui ningun problema en todos sus campos

--------------------------------------------------------

luego el usuario se logea aqui comenzamos index.php

index.php

<?php
// Inicio de sessión
session_start();
// Servidor de la Base de Datos
$servidorBD="localhost";
// Usuario de la Base de Datos
$usuarioBD="dominicana";
// Contraseña de la Base de Datos
$passBD="clave";
// Nombre de la Base de Datos
$nombreBD="formulario";
// Conecto con la base de datos
$conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die ("Imposible conectar con la base de datos");
// Selecciono la BBDD
mysql_select_db($nombreBD,$conectar) or die ("Imposible conectar con la base de datos");

// Probamos que acepte cookies y grabamos una
setcookie("Acepta","cookies si",time()+7776000);

// Incluye el script que comprueba si ya estás logueado o si tienes una cookie que te permita
// entrar sin hacer login otra vez.
include("login.php");
?>

<FORM ACTION="ingresar.php?<? echo SID ?>" METHOD="post">
Usuario:<input type="text" name="nick" style="width: 140; border-width: 1; border-color: #6890AA;" size="20"><br>
Password:
<INPUT TYPE="password" NAME="password" style="width: 140; border-width: 1; border-color: #6890AA;" size="20">
<br>
<img src="images/1x1.gif" width="120" height="3" border="0"><br>
<input type="submit" value="Entrar" name="ingresar"
style="width: 50; border-width: 1; background-color: #A1BCCD; border-color: #6890AA;"><br>
<img src="images/1x1.gif" width="120" height="5" border="0"><br>
- <a href="#" onClick="AbrirVentana();">Olvide mi Password</a><br>
- <a href="inscrip.php">Inscribirme</a><br>
<?php
if($loginCorrecto)
{

echo 'BIENVENIDO - '.$nombreUsuarioL.'
<br>
<a href="logout.php?'. SID .'">logout</a>';

}
?>
</form></div>


------------------------------------------------
  #28 (permalink)  
Antiguo 14/10/2005, 12:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
ingresar.php

<?php
// Inicio de sessión
session_start();

// Servidor de la Base de Datos
$servidorBD="localhost";
// Usuario de la Base de Datos
$usuarioBD="dominicana";
// Contraseña de la Base de Datos
$passBD="clave";
// Nombre de la Base de Datos
$nombreBD="formulario";
// Conecto con la base de datos
$conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die ("Imposible conectar con la base de datos");
// Selecciono la BBDD
mysql_select_db($nombreBD,$conectar) or die (mysql_error());

include('identificar.inc.php');

//Inicializamos la variable sid para utilizarla más tarde
$sid = md5(SID);

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("\\\\","&#92",$mensaje);
return $mensaje;
}

if(trim($_POST["nick"]) != "" && trim($_POST["password"]) != "")
{
$nickN = quitar($_POST["nick"]);
$passN = quitar($_POST["password"]);

$result = mysql_query("SELECT id_usuario, password FROM usuarios WHERE nick='$nickN'");
if($row = mysql_fetch_array($result))
{
if($row["password"] == md5($passN))
{
//Introduce en la BD los datos encriptados de IP,Host,y navegador
$identificador = md5(get_full_ip() .'-'. browser_detection());
$sql = "Update usuarios Set sid = '".$sid."', identificador = '".$identificador."',
ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());
//90 dias dura la cookie
// setcookie("usNick",$nickN,time()+7776000);
// setcookie("usPass",$sid,time()+7776000);
setcookie("usNick",$nickN,time()+7776000,"/","localhost");
setcookie("usPass",$passN,time()+7776000,"/","localhost");


//También las de sesión
$_SESSION['usNick'] = $nickN;
$_SESSION['usPass'] = $sid;
$_SESSION['id_usuario'] = $row['id_usuario'];
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php?<? echo SID ?>";
</SCRIPT>
<?
}
else
{
echo 'Password incorrecto
<br>
<a href="formulario_login.php?">Login</a>
';
}
}
else
{
echo 'Usuario no existente en la base de datos
<br>
<a href="formulario_login.php?'. SID .'">Login</a>
';
}
mysql_free_result($result);
}
else
{
echo 'Debe especificar un nick y password
<br>
<a href="formulario_login.php?">Login</a> ';
}
mysql_close();
?>

----------------------------------------------------------

en la parte
include("login.php");
que esta en index.php valida el login despues del ingreso vuelve a la pagina index.php

login.php

<?php
// Inicializamos las variables
$loginCorrecto = false;
unset($_SESSION['id_usuario']);
$nickUsuarioL="";
$emailUsuarioL="";
$nombreUsuarioL="";
$apellidoUsuarioL="";
//Inicializamos el nº de recargas de la página si no está inicializado
if(!isset($_SESSION['recarga'])){
$_SESSION['recarga'] = 0;}
//Inicializamos la variable sid para utilizarla más tarde
$sid = md5(SID);

//Incluimos el script que detecta el navegador y la IP del usuario
include('identificar.inc.php');
//Hayamos la variable que le corresponde al navegador que se está usando
//para luego compararla con la de la base de datos
$identificador = md5(get_full_ip() .'-'. browser_detection());

if(!isset($_COOKIE["Acepta"]))// Comprueba si acepta cookies
{
echo 'Acepto cookies, que pasa?!!??<br>';

// Comprueba que existan las cookies de nick y password
if(isset($_COOKIE["usNick"]) && isset($_COOKIE["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE nick = '".$_COOKIE["usNick"]."' AND
sid = '".$_COOKIE["usPass"]."' AND identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set sid = '".$sid."', ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe regraba las cookies y registra unas cuantas variables q pueden ser utiles
setcookie("usNick",$_COOKIE["usNick"],time()+7776000);
setcookie("usPass",md5(SID),time()+7776000);

$_SESSION['usNick'] = $_COOKIE["usNick"];
$_SESSION['usPass'] = md5(SID);
$_SESSION['id_usuario'] = $row['id_usuario'];

$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
$apellidoUsuarioL = $row["apellido"];
}
else
{
// Si no existe, destruimos las cookies.
setcookie("usNick","x",time()-3600);
setcookie("usPass","x",time()-3600);
}
mysql_free_result($result);// Libera la consulta
}
}
else // Si es que no acepta cookies
{
// Comprueba si ya ha probado a escribir la cookie y si ya ha probado es que no se aceptan
if (isset($_COOKIE['Acepta']) && $_SESSION['recarga'] > 1)
{
echo 'No acepto cookies, que pasa?!!??<br>';
}

// Comprueba las variables de nick y password pero esta vez en variables de sesión
if(isset($_SESSION["usNick"]) && isset($_SESSION["usPass"]))
{
// Comprueba q haya un usuario en la BD con esos datos
$result = mysql_query("SELECT * FROM usuarios WHERE nick = '".$_SESSION["usNick"]."' AND
sid = '".$_SESSION["usPass"]."' AND identificador = '".$identificador."'");
if($row = mysql_fetch_array($result))
{
$sql = "Update usuarios Set ultima_visita = NOW() Where id_usuario = '".$row['id_usuario']."'";
mysql_query($sql) or die (mysql_error());

// Si es que existe registra unas cuantas variables q pueden ser utiles
$_SESSION['id_usuario'] = $row['id_usuario'];
$loginCorrecto = true;
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
$apellidoUsuarioL = $row["apellido"];
}
else
{
// Si no existe destruimos las sesiones.
unset($_SESSION['usNick']);
unset($_SESSION['usPass']);
unset($_SESSION['id_usuario']);
}
mysql_free_result($result);// Libera la consulta
}
}
// Esto indica que la ya se ha probado a escribir la cookie
$_SESSION['recarga'] = $_SESSION['recarga']+1;
?>

despues el sistema me saluda con un Bienvenido y el nombre del usuario ahi se que se logia pefectamente opteniendo todos los permisos

------------------------------------
todo a la perfecion hasta aqui

luego si el usuario quiere poner un anuncio en el rubro de computadora esta lo siguiente
  #29 (permalink)  
Antiguo 14/10/2005, 12:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
computadora.php

<form action="computadoras.php" method="post">
<input type="text" name="busqueda" value="" style="font-size: 12px; border: 1px solid #000000" >
<input type="submit" value="Buscar" name="B1" style="font-size: 10px; border: 1px solid #000000">
</form>
<form action="colocar.php">
<input type="submit" value="Poner Anuncio" style="font-size: 10px; border: 1px solid #000000">
</form>
<table cellpadding="0" cellspacing="0" border="0" width="785" background="D:\Inetpub\wwwroot\bell ville\bell ville web/mainbg.gif" align="center">
<tr>
<td valign="top" align="center" width="650">
<div align="left">
<table cellpadding="0" cellspacing="0" width="650" border="0"></table>
<?php
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);
$result = mysql_query("SELECT id_mensaje, titulo, precioventas, mensaje, sector, nombre, DATE_FORMAT(fecha, '%d-%M-%Y') as fecha
FROM mensaje, usuarios WHERE mensaje.id_usuario = usuarios.id_usuario ORDER BY fecha DESC ", $link);
echo "<table width='100%'> \n";
echo "<a href=index.php align=left><font size='2'>HOME</font> ";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Descripción<b></font></td> \n";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Ubicacion<b></font></td> \n";
echo "<td bgcolor = #ffcc99 align=center><font size='2'><b>Fecha<b></font></td> \n ";
echo "</tr> \n";
while($row=mysql_fetch_array($result)){
echo"<table width=650 border=0>";
//echo "<tr align=left valign=top bgcolor=#cccccc>";
echo "<table width=650 bgcolor=#cccccc>";
echo "<th width=200 align=left scope=col><span class=Estilo7>&nbsp;<span class=Estilo1>:.</span>&nbsp;</span></th>";
echo"<tr align=left valign=top bgcolor=#38A3C6>";
echo"<td bordercolor='#ffffff'><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='4'>".$row["titulo"]."</td></td>";
echo"<td bordercolor='#ffffff' table width='40%' align=center><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='3'>".$row["sector"]."</td></td>";
echo"<td bordercolor='#ffffff' align=center><a href='paginainfo.php?id=" .$row["id_mensaje"]. "'><font size='3'>".$row["fecha"]."</td></td>";
}
?>

aqui es donde hace la consulta para ver las cabeceras de todos los anuncios puesto de computadora esta es la parte donde no me sale porque el id_usuario y el identificador de la tabla mensaje llega en blanco

aqui le pongo esto por siacaso lo necesitan de los mensajes

paginainfo.php
<?php

$Host = "localhost";
$User = "dominicana";
$Password = "clave";
$Base = "formulario";
//$Tabla = "mensaje";

//conecta la base
$Link = mysql_connect ($Host, $User, $Password) or die("Error vp conexion ".mysql_error());
mysql_select_db($Base, $Link) or die("Error select db ".mysql_error());


//realiza la consulta
$Query = "SELECT * FROM mensaje WHERE id_mensaje='".$_GET['id_mensaje']."'";
$Result=mysql_query($Query, $Link) or die("error query $Query ". mysql_error());


while ($registro=mysql_fetch_array($Result))
{
echo "<table> \n";
echo "<tr> \n";
echo "<td>ID:</td> \n";
echo "<td>".$registro['id_mensaje']."</td>";
//echo "<td rowspan='4'><img src=\"./Productos/imagenes/".$registro['imagen']."\"></td>";
echo "</tr> \n";
echo "<td>Descripción:</td> \n";
echo "<td>".$registro['mensaje']."</td>";
echo "</tr> \n";
echo "<td>Precio</td> \n";
echo "<td>".$registro['precioventas']."</td>";
echo "</tr> \n";
echo "<td>Observación:</td> \n";
echo "<td>".$registro['titulo']."</td>";
echo "</tr> \n";
}
echo "</table>";

//cierra la base
mysql_close ($Link);

?>

--------------------------------------------------

aqui es el asunto en computadora.php tengo el boton que es para poner los mensaje

colocar.php

<form action="agregar.php" method="post"><B>Categoria de su Anuncio</b>
<select name="categorias">
<option value="0" >Elija una Categoria</option>
<option value="0101"
>Servicios Varios</option>
<option value="0201"
>Articulos del Hogar</option>
<option value="0301"
</select>
<table width="90%" border="0" cellspacing="2" cellpadding="2">
<input type="hidden" name="identificador" value="<?=$id?>">
<tr>
<td width="30%" align="right">Titulo </td>
<td><input type="text" name="titulo"></td>
</tr>
<tr>
<td width="30%" align="right">Precio de venta</td>
<td><input type="text" name="precioventas"></td>
</tr>
<tr>
<td width="30%" align="right">Mensaje</td>
<td><textarea name="mensaje" cols="50" rows="5"></textarea></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="Enviar Mensaje"></td>
</tr>
</form>
</table>

----------------------------------

agregar.php

<?php
require('configuracionn.php');
$categorias = $_POST["categorias"];
$titulo = $_POST["titulo"];
$precioventas = $_POST["precioventas"];
$mensaje = $_POST["mensaje"];
$identificador = $_POST["identificador"];

//Hacemos algunas validaciones
if(empty($precioventas)) $precioventas = "Anónimo";
if(empty($titulo)) $titulo = "Sin título";
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities($mensaje);

// Grabamos el mensaje en la base.
$sql = "INSERT INTO mensaje (categorias, titulo, precioventas, mensaje, identificador, fecha, ult_respuesta) ";
$sql.= "VALUES ('$categorias','$titulo','$precioventas','$mensaje ','$identificador',NOW(),NOW())";
$rs = mysql_query($sql, $con) or die("Error al grabar un mensaje: ".mysql_error);
$ult_id = mysql_insert_id($con);
echo 'Registro exitoso. Su mensaje ah sido enviado!
<br>
<a href="computadoras.php?">anuncios</a>';

?>

en require('configuracionn.php'); es la conection a la BD

-------------------------------------------------------------------

ERROR
EN COLOCAR.PHP LA LINEA
<input type="hidden" name="identificador" value="<?=$id?>"> EL IDENTIFICADOR A LA BD LLEGA BACIO O EN BLANCO ( UNDEFINE ID) ENTONCES POR ESO ES QUE EN LA CONSULTA QUE HACE EN COMPUTADORA.PHP NO ME LO MUESTRA PORQUE ES CUANDO ME VERIFICA EL MENSAJE QUE PUSO EL USUARIO SI ME LLEGARA EL ID DEL USUARIO LIBREMENTE EN COMPUTADORA.PHP ME MOSTRARIA TODOS LOS ANUNCIOS

creo que algo mas detallado no podria darle ya :( otros medio vere si le subo la web a un hots con php o me envias tu correo y te mando la web en zip gracias de toda manera y su paciensia ........
  #30 (permalink)  
Antiguo 14/10/2005, 12:39
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
aqui le mando una breve consulta basica a la BD

<?php
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);
$result = mysql_query("SELECT id_mensaje, categorias, titulo, precioventas, mensaje, id_usuario, identificador, respuestas FROM mensaje", $link);
echo "<table border = '1'> \n";
echo "<tr><td>id_mensaje</td><td>categorias</td><td>titulo</td><td>precioventas</td><td>mensaje</td><td>id_usuario</td><td>identificador</td><td>respuestas</td></tr> \n";
while ($row = mysql_fetch_row($result)){
echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td></tr> \n";
}
echo "</table> \n";
?>

id_mensaje categorias titulo precioventas mensaje id_usuario identificador respuestas
10 0303 xxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx 0
11 0302 fffffffffffff fffffffff ffffffffffffffffffff 0
12 0701 gggggggggggg ggggggggg gggggggggggggggggggggg 0
13 0602 ggggggggggggggg gggggggg ggggggggggggggggggggggg
Notice: Undefine 0
14 0605 xxxxxxxxxxx xxxxxxxxx xxxxxxxxxxxxxxx
Notice: Undefine 0
15 0601 zzzzz zzzzzzzzzzzzz zzzzzzzzzzzzz
Notice: Undefine 0
16 0603 ddddddddd dddddddd ddddddddddddddddddddddd
Notice: Undefine 0

y en la consulta para ver los usuarios inscripto

<?php
$link = mysql_connect("localhost", "dominicana","clave");
mysql_select_db("formulario", $link);
$result = mysql_query("SELECT id_usuario, apellido, nombre, password, nick, rep_password, ultima_visita,identificador FROM usuarios", $link);
echo "<table border = '1'> \n";
echo "<tr><td>id_usuario</td><td>apellido</td><td>nombre</td><td>password</td><td>nick</td><td>rep_password</td><td>ultima_visita</td><td>identificador</td></tr> \n";
while ($row = mysql_fetch_row($result)){
echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td></tr> \n";
}
echo "</table> \n";

?>

resultado

id_usuario apellido nombre password nick rep_password ultima_visita identificador
10 zzzzzzzzzz zzzzzzzzz 02c425157ecd32f259548b33402ff6d3 zzzz zzzz 2005-10-12 14:25:31 d6c6175c6f44586bbdbf97db1c99ecc3
11 xxxxxxxxx xxxxxxxxxxxxx ea416ed0759d46a8de58f63a59077499 xxxx xxxx 2005-10-14 14:54:19 d6c6175c6f44586bbdbf97db1c99ecc3


bueno solo tengo dos de prueba

xxxxxxx
zzzzzzz
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 19:26.