Autor Tema: Duda PHP Foreign Key  (Leído 655 veces)

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Duda PHP Foreign Key
« en: 19 de Febrero de 2012, 15:26:44 pm »
Buenas, tengo una duda que me corroe bastante.
Tengo hecho un registro de usuarios y ahora estoy con el sistema de noticias.
El caso es que en el sistema de noticias, la tabla SQL tengo hecha una Foreign Key de la ID del usuario, de forma que en cada registro de noticia, tenga la ID del usuario que la ha enviado.
Mi problema es que principalmente creo que no estoy recogiendo bien la ID del usuario (lo hago mediante cookie) y mi duda es si a la hora de registrar la noticia en la base de datos, tengo que mandar la ID del usuario mediante el formulario, o ya te lo hace solo.

Aqui el codigo del envio de la noticia.

Código: [Seleccionar]
<?php

include("conectar.php");

//si las cookies del usuario son correctas..
if($_COOKIE[&#39;user&#39;] and $_COOKIE[&#39;pass&#39;]) {


$titulo $_POST[&#39;titulo&#39;];

$noticia $_POST[&#39;noticia&#39;];

//recogemos la ID del usuario mediante su cookie
$idUser mysql_query("SELECT id_user FROM usuarios WHERE user=".$_COOKIE[&#39;user&#39;]."");

echo "<br>$idUser";

//Insertamos en la Base de Datos los datos de la Noticia
$query "INSERT INTO noticias (titulo, noticia, idUser) VALUES (&#39;$titulo&#39;,&#39;$noticia&#39;,&#39;$idUser&#39;)";

if (mysql_query($query)) {

echo "Se ha enviado la noticia con exito!";

} else {

echo "No se ha podido enviar la noticia.";
}

} else {
echo &#39;<a href="entrar.php">Logueate!</a>&#39;;
}
?>
Todo en esta vida, es practicar.

Comunidad PHPeros

Duda PHP Foreign Key
« en: 19 de Febrero de 2012, 15:26:44 pm »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Duda PHP Foreign Key
« Respuesta #1 en: 19 de Febrero de 2012, 17:26:22 pm »
Yo hubiera almacenado el ID del usuario en una cookie, ya que es algo que siempre voy a usar cuando se realizan diversas acciones.
Sí debes enviar el ID del usuario cuando vas a registrar una noticia, MySQL y PHP son dos cosas distintas y MySQL jamás reconocerá quién fue el que publicó la noticia.

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #2 en: 19 de Febrero de 2012, 18:03:29 pm »
Entonces me recomiendas tener una COOKIE de ID, Usuario y Contraseña?
Aunque para entrar a las diversas paginas tan solo necesito las COOKIES de Usuario y Contraseña no?
Era bueno mi metodo de recoger la ID del usuario? Creo que no me la recogia del todo bien.
Todo en esta vida, es practicar.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Duda PHP Foreign Key
« Respuesta #3 en: 19 de Febrero de 2012, 18:10:12 pm »
No se si sea yo, pero, ¿no es preferible solamente almacenar el ID de usuario en una session al momento de validar el ingreso en el log in?
Twitter: @JoakoM010



Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #4 en: 19 de Febrero de 2012, 18:32:21 pm »
Eso es lo que os estoy preguntando.
Ando un poco perdido en el tema, quiero tener una web segura, pero eficaz.
NO pido codigo, solo la forma de hacerlo o de hacermelo ver, si me pudierais decir que es lo mejor y como hacerlo, lo haré.
Gracias!
Todo en esta vida, es practicar.

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #5 en: 20 de Febrero de 2012, 17:14:31 pm »
Ayudas?
Todo en esta vida, es practicar.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Duda PHP Foreign Key
« Respuesta #6 en: 20 de Febrero de 2012, 18:52:59 pm »
No se si sea yo, pero, ¿no es preferible solamente almacenar el ID de usuario en una session al momento de validar el ingreso en el log in?
Damn, no me había dado cuenta de la barbaridad que él está cometiendo...
Nunca, pero nunca almacenes una contraseña en una cookie. Y sí, tal como dice SoyJoaquin, para tu caso lo mejor es almacenar solo el ID de usuario para validar la sesión.

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #7 en: 20 de Febrero de 2012, 19:28:45 pm »
Los datos que necesites almacenalos en sesiones.

Los datos que pasan por cookies pueden editarse fácilmente, los de sesión no tanto ;) Tenlo en cuenta.

Con que guardes la id del usuario en una sesión es suficiente, pero si quieres saber cual era tu error, el problema es que hiciste la query pero no la recogiste en un array.

Tu haces esto:
$idUser = mysql_query("SELECT id_user FROM usuarios WHERE user=".$_COOKIE['user']."");

Lo correcto sería esto:
$query = mysql_query("SELECT id_user FROM usuarios WHERE user=".$_COOKIE['user']."");
$fetch = mysql_fetch_array($query);
$idUser = $fetch['id_user']

Cuidado! Cambiando el contenido de la cookie cualquier usuario puede crear una noticia como cualquier otro de forma muy fácil!

Un saludo!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Duda PHP Foreign Key
« Respuesta #8 en: 20 de Febrero de 2012, 19:33:43 pm »
Los datos que necesites almacenalos en sesiones.

Los datos que pasan por cookies pueden editarse fácilmente, los de sesión no tanto ;) Tenlo en cuenta.

Con que guardes la id del usuario en una sesión es suficiente, pero si quieres saber cual era tu error, el problema es que hiciste la query pero no la recogiste en un array.

Tu haces esto:
$idUser = mysql_query("SELECT id_user FROM usuarios WHERE user=".$_COOKIE['user']."");

Lo correcto sería esto:
$query = mysql_query("SELECT id_user FROM usuarios WHERE user=".$_COOKIE['user']."");
$fetch = mysql_fetch_array($query);
$idUser = $fetch['id_user']

Cuidado! Cambiando el contenido de la cookie cualquier usuario puede crear una noticia como cualquier otro de forma muy fácil!

Un saludo!

No solo eso, por lo visto también me podría conectar a ese usuario muy fácilmente...
Saludos.
Twitter: @JoakoM010



Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #9 en: 20 de Febrero de 2012, 19:44:01 pm »
No solo eso, por lo visto también me podría conectar a ese usuario muy fácilmente...
Saludos.

Entonces, que me recomiendas que haga para evitar eso?
Todo en esta vida, es practicar.

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #10 en: 20 de Febrero de 2012, 23:15:43 pm »
COOKIES, Sesiones..?
Todo en esta vida, es practicar.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Duda PHP Foreign Key
« Respuesta #11 en: 21 de Febrero de 2012, 03:05:05 am »
Entonces, que me recomiendas que haga para evitar eso?

Te puedo recomendar 2 cosas para evitar esto:
-No hagas doble post
-No uses cookies

Saludos.
Twitter: @JoakoM010



Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Duda PHP Foreign Key
« Respuesta #12 en: 22 de Febrero de 2012, 13:10:23 pm »
Entonces que uso?
Todo en esta vida, es practicar.