Foros del Web » Programando para Internet » PHP »

Mostrar enlaces aleatorios

Estas en el tema de Mostrar enlaces aleatorios en el foro de PHP en Foros del Web. Buenas foreros! Lo primero decir que acabo de llegar y me parece una comunidad flipante (increible recibimiento) con muy buena pinta :) Después del piropeo ...
  #1 (permalink)  
Antiguo 24/06/2012, 19:13
Avatar de xkz
xkz
 
Fecha de Ingreso: junio-2012
Mensajes: 24
Antigüedad: 12 años, 6 meses
Puntos: 0
Mostrar enlaces aleatorios

Buenas foreros! Lo primero decir que acabo de llegar y me parece una comunidad flipante (increible recibimiento) con muy buena pinta :)

Después del piropeo os comento lo que me trae de cabeza: quiero hacer un sitio en php que muestre aleatoriamente un enlace de los que tengo guardados en mi base de datos. Está bastante mal hecho, ya que de momento experimento para ver que ventajas y defectos (o carencias) tiene el sistema que monto.

En primer lugar he creado la tabla y he colocado: id_enlace, user (que lo ha colocado), enlace y fecha (para posteriores funcionalidades)

De forma temporal para enviar los enlaces he creado una forma poco ortodoxa y segura de hacerlo. Mediante un .php que retiro del servidor para proteger la db, los envío a la misma:

Código PHP:
<?php
/* prosesamiento de los datos */
// verificamos si ha sido enviado el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
    
// verificamos que el formulario
// no venga vacio
if(!empty($_POST['user']) && !empty($_POST['enlace'])){
echo 
"Enlace subido!";
//MUY SUCIO, LO SÉ XD
echo '<meta http-equiv="Refresh" content="1"; url="/******.php" />';
// creamos las variables a usar en la consulta
// y le asignamos sus valores
$user htmlentities(trim($_POST['user']));
$enlace htmlentities(trim($_POST['enlace']));
$fecha date("d-m-Y H:i:s",time()+21900);

// la consulta INSERT
$sqlInsert mysql_query("INSERT INTO enlaces (user, enlace, fecha)
VALUES ('$user', '$enlace', '$fecha')"
$link)
or die(
mysql_error());
}else{
echo 
"Debe llenar todos los campos";
}
}
?>
//

/* fin del proseso de datos */
?>

<!-- el formulario -->

<form name="html" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Usuario: <input type="text" name="user" />
</p>
<p>
Enlace: <input type="text" name="enlace" />
</p>
<input type="submit" name="enviar" value="Enviar" />

</form>
</div></pre>
/

Me faltaría rehacerlo mejor, y poner seguridad, mediante login para que sólo admins puedan acceder a dichos envíos de enlace.

Posteriormente he hecho el siguiente random:

Código PHP:
<?php
$sql 
mysql_query("SELECT * FROM $tabla"$link) or die( "Error en query: $sql, el error  es: " mysql_error() );

//Sacamos el total de filas
$total mysql_num_rows($sql);

//Random
srand((double)microtime()*100000);

//Sacamos un numero al azar entre el 1 hasta el numero total de filas
$random rand(1,$total);

$query mysql_query("SELECT * FROM $tabla WHERE ID_enlace='$random'") or die( "Error en query: $sql, el error  es: " mysql_error() );

$row mysql_fetch_array($query);

//Ahora sacamos el enlace que se escogio al azar
$enlace $row["enlace"];

//Echo, mostramos
$enlace $row["enlace"];
?>

Cual es el problema?: Ahora toca actualizar la web para hacer aleatorio y me da la sensación de que no es la forma correcta de hacerlo. Además, es posible que luego me interese dar acceso a un determinado enlace, (tipo blog. p ej: enlace con id=3) como podría hacerlo? Mediante GET???

Como véis todavía estoy bastante verde, pero le intento dedicar tiempo leyendo artículos, vuestros razonamientos, etc

Muchas gracias por vuestra atención, de verdad.

Un saludo
  #2 (permalink)  
Antiguo 25/06/2012, 07:54
 
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 4
Respuesta: Mostrar enlaces aleatorios

Hola,

Yo sólo quiero comentarte que existe una manera de pedirle directamente a MySQL que te envíe un link aleatorio, y es la siguiente:

Código PHP:
$sql mysql_query("SELECT * FROM $tabla order by rand() limit 1"$link) or die( "Error en query: $sql, el error  es: " mysql_error() ); 
Esto te devuelve un link aleatorio, tal cuál :)

Saludos
  #3 (permalink)  
Antiguo 26/06/2012, 05:18
Avatar de xkz
xkz
 
Fecha de Ingreso: junio-2012
Mensajes: 24
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Mostrar enlaces aleatorios

Cita:
Iniciado por alexhernandez Ver Mensaje
Hola,

Yo sólo quiero comentarte que existe una manera de pedirle directamente a MySQL que te envíe un link aleatorio, y es la siguiente:

Código PHP:
$sql mysql_query("SELECT * FROM $tabla order by rand() limit 1"$link) or die( "Error en query: $sql, el error  es: " mysql_error() ); 
Esto te devuelve un link aleatorio, tal cuál :)

Saludos
Muchas gracias por contestar y por el consejillo! Un saludo ;)

Etiquetas: enlaces, formulario, html, mysql, sql, tabla, aleatoria, variables, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:32.