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!
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, ... )
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
<?php
session_start();
?>
<form method="post">
Leer dato nº
<input type="text" name="dato"><br>
<input type="submit" name="leer">
</form>
<?php
if(isset($_POST['leer'])){
$_SESSION['modo'] = 1;
$_SESSION['dato'] = $_POST['dato'];
header("Location: Leer.php");
}
?>
Leer.php
<?php
session_start();
if($_SESSION['modo']!=1){
header("Location: Index.php");
} else {
echo 'Dato n&#186; '.$_SESSION['dato'];
session_destroy();
}
?>
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
<form method="get">
Leer dato nº
<input type="text" name="dato"><br>
<input type="submit" name="leer">
</form>
<?php
if(isset($_GET['leer'])){
$dato = $_GET['dato'];
header("Location: Leer.php?dato=".$dato);
}
?>
Leer.php
<?php
echo 'Dato nº '.$_GET['dato'];
?>
Reitero, no recomiendo usar el GET.
Eso de vulnerable a inyecciones SQL será si no validas lo que recibes, no??
Cita de: eferion en 25 Julio 2013, 13:24 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.
-
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.
Bueno gracias a todos por contestar de verdad muchas gracias , ahora les voy a mostrar lo que tengo :
este codigo es el info.php :
<?php
session_start();
include('funciones.php');
require_once('funciones.php');
$id = $_GET['user'];
$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.
$row = mysql_fetch_array($sql); // seleccionamos la fila y le damos una variable
echo "Tus Puntos son : ".$row['puntos'].""; // mostramos el campo que deseamos de la fila, en este caso los puntos
?>
aqui cada uno tiene su explicacion! :D
y este es el link que me genera el www.paginaweb.com/info.php?id=***
echo'<a href="http://quelok.netne.net/info.php?id='.$_SESSION['user'].'"> Ver Puntos </a>';
pero no se porque estas 2 cosas ninguna funcionan :(
una de las dos te sobra.
include('funciones.php');
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.
Cita de: Brian1511 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
...
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...
<?php
session_start();
include('funciones.php');
$sql = "SELECT * FROM puntos WHERE user='".$id."'");
$rs = mysql_query($sql);
$row = mysql_fetch_assoc($rs)
echo "Tus Puntos son: ".$row['puntos'];
?>
echo'<a href="http://quelok.netne.net/info.php?id='.$_SESSION['user'].'"> Ver Puntos </a>';
Cita de: zikotik en 25 Julio 2013, 15:04 PM
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...
<?php
session_start();
include('funciones.php');
$sql = "SELECT * FROM puntos WHERE user='".$id."'");
$rs = mysql_query($sql);
$row = mysql_fetch_assoc($rs)
echo "Tus Puntos son: ".$row['puntos'];
?>
echo '<a href="http://quelok.netne.net/info.php?id='.$_SESSION['user'].'"> Ver Puntos </a>';
hola zikotik lamentable mente este no me funciono , aunque le faltaban ; y tenia () de mas no me funciono! :(
si quieres entra a la pagina de prueba :
http://quelok.netne.net/
logueate como
Usuario : hola
Contraseña: hola
mmm...
Tenés algo mal en funciones.php o en logueado.php
una de dos.
PD:
Tenés un error en login.php también, porque pude acceder a logeado.php sin introdocir usuario y contraseña.
Cita de: zikotik en 25 Julio 2013, 15:48 PM
PD:
Tenés un error en login.php también, porque pude acceder a logeado.php sin introdocir usuario y contraseña.
Sabes que puedes editar un mensaje que has escrito y así evitar postear mensajes de dos en dos??
-
Sí, pero soy un tanto chicato...
Y aveces no lo veo por éso.
(tengo 0.90 y 1.2 de aumento)
ok entiendo , pero nadie sabe como hacer algo como esto porfa ayudenme!!
Si te interesa, te puedo armar un sistema de logueo GET.
Simplemente me decís el nombre de la tabla, el nombre y tipo de cada columna.
Cita de: Brian1511 en 25 Julio 2013, 16:19 PM
ok entiendo , pero nadie sabe como hacer algo como esto porfa ayudenme!!
La gente sabe hacer cosas como esas... es algo elemental de una página web recoger información por get ( o post ) y operar contra una base de datos en base a esa información.
Lo que pasa es que tu sistema es único... tienes un archivo funciones.php que nadie conoce su contenido, luego tampoco pueden evaluar los posibles errores contenidos en dicho archivo.
Cita de: eferion en 25 Julio 2013, 16:25 PM
La gente sabe hacer cosas como esas... es algo elemental de una página web recoger información por get ( o post ) y operar contra una base de datos en base a esa información.
Lo que pasa es que tu sistema es único... tienes un archivo funciones.php que nadie conoce su contenido, luego tampoco pueden evaluar los posibles errores contenidos en dicho archivo.
Es verdad. Si no especificas todos los archivos, nadie podría saber el error exacto.
Tenés que implementar sistemas más sencillos y menos sinuosos.
bueno la tabla se llama "puntos"
id_puntos
user
pass
puntos
mail
zikotik gracias!
Bueno tengo este otro que ise para ver si me funciona , este esta raro ya que no me tira ningun error simplemente se queda en blanco lo revise pero no le allo el problem! :huh:
<?php
$conn = mysql_connect('localhost', 'root', 'root') or die ("Error de conexion.");
mysql_select_db("nombre bd",$conn) or die ("Error de conexion.");
$ssql = "SELECT * FROM puntos WHERE id_puntos='".$_SESSION["id_puntos"]."'";
$rs = mysql_query($ssql,$conn);
while($row = mysql_fetch_array($rs)) {
echo "Informacion:";
echo "ID:"." ".$row["id_puntos"]."<br>";
echo "Usuario:"." ".$row["user"]."<br>";
echo "Puntos:"." ".$row["puntos"]."<br>";
echo "Email:"." ".$row["mail"]."<br>";
}
?>
No estoy seguro, pero creo que Brian se bajó el código y no tiene ni idea de como funciona php y sql.
Así que será mejor que coloque el código para no estar adivinando el problema y hacer el post mas largo.
Edito:
En tu código donde inicias la sesión de variables?
Saludos.
Darhius bueno obiamente se nota que si soy nuevo en esto , amigo !
y pues solo publico por ayuda no estoy interesado en hacer largo nada y no te vallas a ofender ni nada por que solo quiero que me ayuden no que me acusen!
quiero que si vas a responder lo agas con algo que me ayude y este codigo me lo iso mi primo hace 2 dias y lo tenia de referencia ,pero el no esta en en este pais!
Saludos y perdon por mis expresiones no es mi intencion ofender a nadie! :D
Y no te has planteado entonces dejar de lado un código que no entiendes y empezar con un tutorial con el que puedas aprender de forma efectiva??
No por tirar código aprende uno a programar, ya te lo digo.
@Brian no me ofendo, a veces entiendo que las personas solo piden ayuda para algo en concreto, pero tambien debes de entender que aquí no se tiene una asistencia personalizada, se resuelven problemas en concreto.
@eferion Ya se lo he tratado de decir en sus otros post
Haz mirado la cantidad de post que haz creado en menos de una semana?, si tuvieras un poco de conocimiento en php y sql no pasaría.
Cita de: Brian1511 en 25 Julio 2013, 17:07 PM
y pues solo publico por ayuda no estoy interesado en hacer largo nada
Uno nunca sabe ::)
Hasta pronto!
Bueno tienen razon , pero si estoy tomando un par de manuales y algunas de las cosas del codigo las ise yo algunas las investigue por internet , pero gracias de todas formas y una ves mas tienen mucha razon.
Darhius espero que no dea un mal entendido :)
Saludos!
No.
Pero de hecho estoy esperando a que coloques el código :xD para ver que se puede hacer.
Saludos.
termino con unas transcripciones y comienzo con tu db.
zikotik bien amigo muchas gracias! :D
y pues Darhius no se que cod quieres que ponga porfavor dime cual quieres haci lo pongo ya que el codigo ya lo he puesto y son estos:
Esto es para el info.php:
<?php
session_start();
include('conect.php');
require_once('funciones.php');
$id = $_GET['id_puntos'];
$sql = mysql_query("SELECT * FROM puntos WHERE id_puntos='".$id."'");
$row = mysql_fetch_array($sql);
echo "Tus Puntos son : ".$row['puntos']."";
?>
Este es el link que hace que valla a info.php con la id del usuario:
echo'<a href="http://quelok.netne.net/info.php?id='.$_SESSION['id_puntos'].'"> Ver Puntos </a>';
y pues revise todo las tablas, y eso pero realmente no me tira error , simplemente sale :
Tus Puntos son : ""?""
donde dice ""?"" es vacio!
echo'<a href="http://quelok.netne.net/info.php?id_puntos='.$_SESSION['id_puntos'].'"> Ver Puntos </a>';