elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Crear link con dato de un registro de una bd
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Crear link con dato de un registro de una bd  (Leído 8,948 veces)
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Crear link con dato de un registro de una bd
« en: 24 Julio 2013, 22:53 pm »

Hola a todos bueno sere breve ya estoy desde un movil y pues cansa escribir, bien mi problem es que no se como hacer para que un codigo php me haga un link la cual me lleve a una pagina con el dato de un registro de una bd?

ejemplo:

Click para ver tus puntos

cuando clicke se haga un link ejemplo:

http://miweb.com/ver_mis_puntos?id=1

este seria un ejemplo basico de lo que quiero
al poner este link en el buscador al entrar me mande a una pag html con los puntos del Id 1..

espero que me puedan ayudar , gracias y un buen saludo!


En línea



Creador de BrainMind
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #1 en: 25 Julio 2013, 11:08 am »

El link en sí mismo no te va a mostrar nada. Un enlace no es más que una referencia que pones en una página web para que al activarlo puedas desplazarte a otra página web.

Tienes que hacer que la página ver_mis_puntos lea el parámetro id enviado por GET y se comunique de forma conveniente con la base de datos para recabar la información que necesitas. Después de eso la muestras por pantalla.

Si necesitas más información para lanzar la consulta a la base de datos tendrás que ver la forma de proporcionársela a la página ( más parámetros GET, por POST, variables de sesión, cookies, ... )


En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #2 en: 25 Julio 2013, 13:08 pm »

Hola qué tal.
En primer lugar, no te conviene usar el GET porque tu página web sería vulnerable a las Inyecciones SQL, con lo cual te recomiendo usar "session_start()", "session_destroy()" y "$_SESSION".

Te dejo un ejemplo base para que puedas examinarlo bien y modificarlo a tu gusto.

Index.php
Código
  1. <?php
  2. ?>
  3.  
  4. <form method="post">
  5. Leer dato nº
  6. <input type="text" name="dato"><br>
  7. <input type="submit" name="leer">
  8. </form>
  9.  
  10. <?php
  11. if(isset($_POST['leer'])){
  12. $_SESSION['modo'] = 1;
  13. $_SESSION['dato'] = $_POST['dato'];
  14. header("Location: Leer.php");
  15. }
  16. ?>
  17.  

Leer.php
Código
  1. <?php
  2. if($_SESSION['modo']!=1){
  3. header("Location: Index.php");
  4. } else {
  5.  
  6. echo 'Dato n&#38;#186; '.$_SESSION['dato'];
  7.  
  8. }
  9. ?>

PD:

Si estás totalmente seguro en querer usar el GET, no hay problema.
Directamente cambiá el method POST del form por method GET.
Eliminá la verificación de $_SESSION['modo'] (salvo que quieras dejarle cierta seguridad). Y Cambia $_SESSION y $_POST por $_GET.

Te tendría que quedar algo así...

Index.php
Código
  1. <form method="get">
  2. Leer dato nº
  3. <input type="text" name="dato"><br>
  4. <input type="submit" name="leer">
  5. </form>
  6.  
  7. <?php
  8. if(isset($_GET['leer'])){
  9. $dato = $_GET['dato'];
  10. header("Location: Leer.php?dato=".$dato);
  11. }
  12. ?>

Leer.php
Código
  1. <?php
  2. echo 'Dato nº '.$_GET['dato'];
  3. ?>

Reitero, no recomiendo usar el GET.
« Última modificación: 25 Julio 2013, 14:17 pm por zikotik » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #3 en: 25 Julio 2013, 13:24 pm »

Eso de vulnerable a inyecciones SQL será si no validas lo que recibes, no??
En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #4 en: 25 Julio 2013, 13:47 pm »

Eso de vulnerable a inyecciones SQL será si no validas lo que recibes, no??

No, el hecho de validar algo, implica una búsqueda y una respuesta.
Justamente lo que hace la inyección SQL es buscar una respuesta alterna (en términos básicos).

Ahora... si usaras el session_start, la inyección SQL no funcionaría, ya que la variable $_SESSION, básicamente lee las variables globales internas, no externas.
En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #5 en: 25 Julio 2013, 14:00 pm »

-
« Última modificación: 25 Julio 2013, 14:17 pm por zikotik » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #6 en: 25 Julio 2013, 14:35 pm »

creo que no me he explicado.

si yo tengo, por ejemplo,

pagina.php?id=1

evitar inyección es tan simple como verificar que id es numérico y mostrar un error en caso contrario.

En el caso de strings puedes optar bien por buscar los caracteres peligrosos y si se encuentra alguno abortar la operación, bien por eliminar dichos caracteres, bien por usar funciones de decodificacion de urls seguras, que sustituyen estos caracteres por representaciones que no causan problemas.

Es una mala práctica de cualquier programador no validar todas y cada una de las entradas del usuario.
En línea

Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: Crear link con dato de un registro de una bd
« Respuesta #7 en: 25 Julio 2013, 14:47 pm »

Bueno gracias a todos por contestar de verdad muchas gracias , ahora les voy a mostrar lo que tengo :

este codigo es el info.php :

Código
  1.  
  2.  
  3. <?php
  4. include('funciones.php');
  5. require_once('funciones.php');
  6. $id = $_GET['user'];
  7. $sql = mysql_query("SELECT * FROM puntos WHERE user='".$id."'"); //Seleccionamos la parte de la base de datos donde el usuario es el usuario agarrado en la url, re***** si es perfil.php?user=admin, se selecionara la parte donde en la fila el usuario es admin.
  8. $row = mysql_fetch_array($sql); // seleccionamos la fila y le damos una variable
  9. echo "Tus Puntos son :  ".$row['puntos'].""; // mostramos el campo que deseamos de la fila, en este caso los puntos
  10. ?>
  11.  
  12. aqui cada uno tiene su explicacion! :D
  13.  
  14. y este es el link que me genera el www.paginaweb.com/info.php?id=***
  15.  
  16.  

Código
  1.  
  2. echo'<a href="http://quelok.netne.net/info.php?id='.$_SESSION['user'].'">  Ver Puntos   </a>';
  3.  
  4.  

pero no se porque estas 2 cosas ninguna funcionan :(
En línea



Creador de BrainMind
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #8 en: 25 Julio 2013, 14:55 pm »

una de las dos te sobra.

Código
  1. include('funciones.php');
  2. require_once('funciones.php');

Y aparte de eso no veo nada raro.

Eso si, con que no te funcionan... qué es exactamente lo que no funciona ??

El enlace sale bien ?? si es así céntrate en info.php... si el enlace sale mal... ya sabes.

En el caso de que te falle info.php:

* Verifica que te estás conectando a la base de datos.
* Verifica la sql que sea la correcta.
* Verifica que funciones.php no tiene algún código que te pueda fastidiar.
En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Crear link con dato de un registro de una bd
« Respuesta #9 en: 25 Julio 2013, 15:04 pm »

Bueno gracias a todos por contestar de verdad muchas gracias , ahora les voy a mostrar lo que tengo :

este codigo es el info.php

...

Antes que nada, no te recomiendo nombrar a la tabla con el nombre de una de las columnas porque podrías generar errores. Y además estás repitiendo un include (aunque con distintas funciones).
Fijate si esto te funciona...

Código
  1. <?php
  2. include('funciones.php');
  3. $sql = "SELECT * FROM puntos WHERE user='".$id."'");
  4. $rs = mysql_query($sql);
  5. $row = mysql_fetch_assoc($rs)
  6. echo "Tus Puntos son: ".$row['puntos'];
  7. ?>
  8.  

Código
  1. echo'<a href="http://quelok.netne.net/info.php?id='.$_SESSION['user'].'">  Ver Puntos   </a>';
En línea

Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
CREAR UNA ENTRADA EN EL REGISTRO
Programación Visual Basic
hierosgammos 4 2,224 Último mensaje 19 Julio 2005, 01:01 am
por Slasher-K
[Solucionadoo] Crear registro
Programación Visual Basic
PeSollo! 4 1,520 Último mensaje 20 Diciembre 2007, 21:38 pm
por PeSollo!
Sacar un unico dato de un registro en una tabla. « 1 2 ... 5 6 »
PHP
XXXXXX 52 20,157 Último mensaje 26 Junio 2010, 00:17 am
por ~ Yoya ~
Crear varios txt a partir de 1 dependiendo del valor de un dato en el registro
Programación Visual Basic
agmen 8 5,023 Último mensaje 26 Septiembre 2010, 22:33 pm
por seba123neo
¿Una variable es un dato o contiene un dato?
Programación General
theluigy13etv 6 4,592 Último mensaje 19 Agosto 2011, 23:01 pm
por theluigy13etv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines