Foros del Web » Programando para Internet » PHP »

Número al azar con php

Estas en el tema de Número al azar con php en el foro de PHP en Foros del Web. Hola amigos. Estoy avanzando en mi sistema de postales con php y ahora mismo, los parámetros de la url cada postal se suma 1 (ver.php?postal=1, ...
  #1 (permalink)  
Antiguo 01/08/2002, 15:55
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Número al azar con php

Hola amigos.

Estoy avanzando en mi sistema de postales con php y ahora mismo, los parámetros de la url cada postal se suma 1 (ver.php?postal=1, ver.php?postal=2...), lo que quiero es que cada postal se cree un número de 15 dígitos, distinto en cada postal y no que se sume 1. Os pongo el código:

Código:
<?
$archivo = "contador.txt";
$abre = fopen($archivo, "r");
$total = fread($abre, filesize($archivo));
fclose($abre);
$abre = fopen($archivo, "w");
$total = $total + 1;
$grabar = fwrite($abre, $total);
fclose($abre);
echo "<input type=hidden name=visitas value='".$total."'>";
?>
Esto de arriba es en el formulario de envío. Supongo que es esto lo que habrá que cambiar.

Código:
<? 
$visitas .=".txt";
$fp = fopen($visitas,"w");
?>

<?php

$fp = fopen("$visitas","a+"); 
if(fwrite($fp, "...")){
Echo "..";
}Else{
Echo "error";
}
fclose($fp);
?>

<?
$asunto = "Te han enviado una postal";
$mensajemail = "..";
mail($emailamigo, $asunto,"From: ".$email, $mensajemail);
?>


Espero que me puedan ayudar, no corre prisa, es para septiembre.

Saludos.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #2 (permalink)  
Antiguo 01/08/2002, 16:34
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Bueno, ahora me voy pero podéis ir pensando cómo hacerlo. <a href='ir.asp?http://www.miscodigos.com/JLMCodigos/script.php?id=232' target='_blank'>http://www.miscodigos.com/JLMCodigos/scr...</a> ahí está el código compleot.
adios

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #3 (permalink)  
Antiguo 01/08/2002, 19:01
Avatar de TheRock  
Fecha de Ingreso: mayo-2002
Ubicación: Sucre - Bolivia
Mensajes: 189
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Número al azar con php

Hola. :)

a lo que entendi.. el codigo que incluiste me parece que es más para un contador de visitas que para postales.

Pero si lo que deseas es generar numeros al azr para tus postales, podrías usar la función gmp_random (int limiter).

ejemplo. para generar 15 números:

$cad='';
for($i=1;$i&lt;=15;$i++) {
$x=gmp_random(9);
$cad.=$x;
}

y antes de guardar este dato deberias verificar si no existe otro similar.


para empezar esto esta bien...

espero sea parte de lo que necesitas.

saludos.

P.D. calro que faltan muchas cosas... si necesitas mal solo escríbelo :cantar:
  #4 (permalink)  
Antiguo 02/08/2002, 11:10
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Para mostrarlo sería &lt;? echo $x ?&gt; ?

O sea, para incluirlo tendría que poner:

Código:
 &lt;? echo &quot;&lt;input type=hidden name=visitas value='&quot;.$x.&quot;'&gt;&quot;; ?&gt;

No?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #5 (permalink)  
Antiguo 03/08/2002, 15:44
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

eeeeeeoooooooo, debería poner eso?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #6 (permalink)  
Antiguo 03/08/2002, 20:17
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Re: Número al azar con php

CHuLoSoY:

¿En ves de preguntarlo, y INSISTIR en que alguien TE LO HAGA y TE CONFIRME, por qué no lo pruebas en tu ordenador o en un host que tengas? Yo lo probaría, y te lo diría encantadamente, pero no me gustó lo que destaqué.. :(.

A simple vista, la variable pa que lo muestre debería ser: &quot;$cad&quot;.

&lt;?
echo &quot;&lt;input type=hidden name=visitas value=\&quot;$cad\&quot;&gt;&quot;;
?&gt;

Pruébalo a ver y te cuidado con las comillas simples y dobles, pues cometiste un grave fallo en su colocación.

Un saludo.
  #7 (permalink)  
Antiguo 04/08/2002, 16:01
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Chivi muchas gracias, ahora lo voy a probar.

Sobre las comillas simples y dobles está bien, no hay fallo, las simples son para el value=' ' y dentro hay una concatenación ( &quot;. $variable .&quot; )

saludos y voy ap robarlo.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #8 (permalink)  
Antiguo 04/08/2002, 17:53
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Re: Número al azar con php

Hola Chulosoy:

Supongo que lo de las comillas simples y dobles, yo utilizo el punto para separar las cadenas en las simples y no en las dobles, y quizás por ello está confundío (como dinio).

Sobre lo del número aleatorio, lo probé en mi ordena, y me da error en la llamada &quot;gmp_random()&quot; (supongo que mi versión no la aceptará) .

Por el resto, nada más.
Un saludo.
  #9 (permalink)  
Antiguo 05/08/2002, 15:57
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Hola chivi, muchas gracias por tu ayuda, ahora voy a probarlo y te cuento :)

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #10 (permalink)  
Antiguo 05/08/2002, 16:01
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Me da este error:

Fatal error: Call to undefined function: gmp_random() in azar.php on line 4

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #11 (permalink)  
Antiguo 05/08/2002, 16:03
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

He visto en php.net la función srand() pero ese manual está muy mal explicado y no me entero de nada. Alguien me lo explica?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #12 (permalink)  
Antiguo 05/08/2002, 20:36
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Re: Número al azar con php

Hola Chulosoy:

La función &quot;srand()&quot; sirve para que los valores de la función random NUNCA sean los mismos. Quiere decirse, que no se repiten los mismos números cada vez que se ejecuta. (corrijanme si me equivoco).

Nos vemos nuevamente.
  #13 (permalink)  
Antiguo 06/08/2002, 15:31
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Pues eso es lo que me interesa, si señor, eso mismo estaba buscando por que cada número hace un archivo txt que es en el que se escribe la postal.

Alguien me explica esta función?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #14 (permalink)  
Antiguo 06/08/2002, 19:57
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Re: Número al azar con php

me hace gracia que solo yo te siga contestando..

Bien, ya te expliqué para que servía, y para dejarnos ya de rollos, te pongo ya el script completo que pedías. Es decir, un script que te genera 15 dígitos cada vez que es ejecutado en el server:
&lt;?
srand((double)microtime()*1000000);
$p = rand(1,9);
$s = rand(1,9);
$t = rand(1,9);
$c = rand(1,9);
$q = rand(1,9);
$s = rand(1,9);
$se = rand(1,9);
$o = rand(1,9);
$n = rand(1,9);
$d = rand(1,9);
$dp = rand(1,9);
$ds = rand(1,9);
$dt = rand(1,9);
$dc = rand(1,9);
$dq = rand(1,9);
$total = $p.$s.$t.$c.$q.$s.$se.$o.$n.$d.$dp.$ds.$dt.$dc.$dq .&quot;&lt;br&gt;&quot;;
echo $total;
?&gt;

Espero que te sea definitiva mi ayuda.
Fue un placer el seguir respondiendote.

Un abrazo :).
  #15 (permalink)  
Antiguo 10/08/2002, 14:45
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Y nunca se repite¿???

Esto es magnífico. Muchas gracias

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #16 (permalink)  
Antiguo 10/08/2002, 15:36
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Re: Número al azar con php

Qué va CHuLoSoY!!

Para ello tendría que procesar miles y miles de números!!

De todas maneras, si quieres currartelo, haz una comprobación de si existe ese archivo o número aleatorio creado, antes de crear la postal.. para evitarte el día de mañana un disgusto.

No hay de qué amigo!
Un abrazo.
  #17 (permalink)  
Antiguo 10/08/2002, 15:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Número al azar con php

Yo uso este algoritmo .. genera hasta 13 caracteres alfanumericos (en alguna ocasion lo he puesto por aquí)


$llave_activacion = substr(eregi_replace(&quot;[^A-Z0-9]&quot;, &quot;&quot;, md5(time())) .
eregi_replace(&quot;[^A-Z0-9]&quot;, &quot;&quot;, md5(time())) .
eregi_replace(&quot;[^A-Z0-9]&quot;, &quot;&quot;, md5(time())),
0, 13);

Su uso:
echo $llave_activacion;

asi de simple ..
Lo uso en sistemas de confirmación de registros por mail ... en el q le envio ese codigo de activacion ...

Hasta el momento no me ha dado proplemas de repeticiones ..

Y si todavia no confias en q algun algoritmo como los que te han mostrado ya .. se repita o no .. Almacenatelo en una tabla (sea BBDD o un texto plano) .. y cada numero q generes .. lo buscas en tu tabla a ver si esta o no.

Un saludo,

Pd: No es original mio.

  #18 (permalink)  
Antiguo 10/08/2002, 15:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Número al azar con php

Se me olvidó ...

si deseas solo generar numero o Letras o .. incluso añadir algun que otro caracter a la generacion del coso este .. solo tienes q modificar la expresion regular que se usa:

para numero solo:
quita el A-Z ...

para solo letras:
quita el 0-9 :P

añadir mas caracteres:
Los pones ahi ..

Un saludo,
  #19 (permalink)  
Antiguo 14/08/2002, 16:26
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Número al azar con php

Muchas gracias, en cuanto vuelva de vacaciones probaré los dos en el sistema (ahora sólo puedo probarlos con texto)

saludos.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #20 (permalink)  
Antiguo 15/08/2002, 11:32
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 23 años
Puntos: 2
Re: Número al azar con php

para salvar la pasada podrias usar la funcion $time, yo a veces la suso y no me ha dado problemas.
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 22:09.