PHP zufallscript

Hallo bplaced User und PHP Experten,

ich weiß nicht ob ihr mir helfen könnt hoffe es aber. :smiley:

Ich hab mir ein kleines Script geschrieben das mir 6 , 10 oder egal wie viele Zahlen ermitteln kann. Dabei hab ich es so gemacht das die Zahlen wo ermittelt wurden nicht doppelt vorkommen können!

Hier mein Script zum ermitteln der Zahlen!

zufall.php

[code]<?php
$temp = array();
$i = 0;
while($i<6){
$zahl1 = rand(1,70);
while(in_array($temp,$zahl1))
{$zahl1 = rand(1,70);}
$temp[] = $zahl1;
$i += 1;
}

echo implode(’ ', $temp);
?>

[/code]

Die Zahlen wo ermittelt wurden werden an diese Seite übergeben die daraus eine Grafik fertigt die dann in ein Forum oder anderswo eingebunden werden kann!

grafik.php

[code]<?php
$text = $_POST[“Inhalt”];
$pic=ImageCreate(130,30); //(breite, höhe)
$col1=ImageColorAllocate($pic,0,0,0);
$col2=ImageColorAllocate($pic,255,255,255);
ImageFilledRectangle($pic, 0, 0, 500, 30, $col2);
ImageString($pic, 3, 5, 8, $text, $col1);
Header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
Header(“Content-type: image/jpeg”);
imagejpeg ( $pic , ‘zufallimage.jpeg’ );
ImageDestroy($pic);
?>

[/code]

Alles schön und gut funzt einwandfrei nun wollte ich das ganze mit einem Cronjob ausführen das geht aber aus mir unerklärlichen Gründen nicht ich kann mir nicht erklären warum hoffe ihr habt ne Idee ich kann das Script ja nicht jedesmal selbst aufrufen.

Warum mach ich das?

Das Script soll auf meine Community kommen die ich mir gerade lokal aufbaue das Script ist dort fürs Forum gedacht da wird es dann X mal pro Woche Zufallszahlen generieren die beispielsweise für den Lottocheckpot verwendet werden können.

Müsste eigentlich gehen.

Woher hast du denn den cronjob?
von cronjob.de ??

Du kannst natürlich auch einfach in deiner DB das Datum speichern, wenn eine Woche vorbei ist einfach das Script ausführen lassen und das neue Datum setzen. Wäre glaub ich am sinnvollsten.

Danke für deine schnelle Antwort!

Ja hab den Cronjob von cronjob.de!

Es müsste mit den Cronjob gehen so seh ich dass auch aber es funktioniert nunmal nicht!
Ich möchte dies unbedingt mit nem Cronjob machen denn das ist meiner Meinung nach die komfortabelste Lösung schnell änderbar und usw…

Es muss irgend einen Fehler geben sonst würde es doch gehen oder??

Ja ein Fehler schon.
Aber da können wir dir glaube ich wenig helfen,
außer ander Lösungswege nennen.

Erkundige dich am besten mal bei cronjob.de, vielleicht liegt da ein Problem bei denen vor.

MfG
BeenGreen

Gute Idee BeenGreen,

werd denen morgen mal schreiben!

Wie würde denn diese alternative mit der Datenbank aussehen?

hast du ein Script das ich leicht einbauen könnete?

MfG
maxo

Hab mir grad überlegt das der Aufwand das mit ner DB zu machen viel zu groß ist.

if(include('db.txt') == time())
{
    #Hier der Code der alle 7 Tage ausgeführt werden soll.
    #In 7 Tagen
    $week = time()+60*60*24*7;
    #Datenbank-Path
    $write = "db.txt";
    $Datei = fopen($write,"w");
    fwrite($Datei, $week);
    fclose($Datei);
} 

so müsste es gehn!

Hallo BeenGreen,

sehr gute Idee das in eine txt zu schreiben.

Ich hab jetzt aber noch ein bisschen an meinem Script gebastelt und nun geht das ganze wenn der Cronjob es Aufruft!

Trotzdem danke für das Script :wink: kann ich bestimmt wo anders mal brauchen!

Mfg
maxo

Bitte, Kein Problem :wink:

Könntest du noch deine Lösung Posten?
Wäre für user die, die FoSu benutzen (wenn sie das mal tun würden !haue) sehr nützlich.

Hier ist der fertige Code

<?php
$temp = array();
for($i=0;$i<6; ){
   if(!in_array( $temp, $z=rand(1,70) )){
        $temp[] = $z;
        $i++;
    }
}

{$all = implode(' ', $temp);} 
$text = $all;
$pic=ImageCreate(130,30); //(breite, höhe)
$col1=ImageColorAllocate($pic,0,0,0);
$col2=ImageColorAllocate($pic,255,255,255);
ImageFilledRectangle($pic, 0, 0, 500, 30, $col2);
ImageString($pic, 3, 5, 8, $text, $col1);
imagejpeg ( $pic , "[HIER MUSS DER ABSOLUTE PFAD STEHEN WO DIE DATEI GESPEICHERT WERDEN SOLL] /zufallimage.jpeg" );
ImageDestroy($pic);

?>

Natürlich kann jeder dass Bild wo erzeugt wird individuell einstellen wenn er sich mit der Grafik Funktion von PHP auskennt.