PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

04-12-2006, 21:00
|
lyco
Newbie
|
|
Registriert seit: Dec 2006
Beiträge: 17
|
|
Zufallsbild nach gewisser zeit ändern
Verfasst am: So, 03.12.2006 12:26 Titel: Zufallsbild nach gewisser zeit ändern
--------------------------------------------------------------------------------
Hallo
Ich habe ein script wo zufallsbilder generiert. Die Bilder werden aus verschieden Order geholt. Die Order Pafade sind in einer Datenbank gespeichert. Das Script läuft soweit ganz gut. Nun möchti ich aber gerne, dass das Bild nicht bei jedem Seitenaufruf geändert wird, sondern erst nach einer gewissen Zeit z.B 3 Stunden.
Das script habe ich fertig im Netz gefunden. Habe von php leider nicht sehr viel Ahnung. Kann mir da jemand Helfen?
PHP-Code:
<?php
$verbindung = mysql_connect("","","");
mysql_select_db("");
//Script für das Zufallsbild
$bilder = array();
//Ordner öffnen
$sql = "SELECT `ordner` FROM `zufallspic` ORDER BY RAND( )";
$result = mysql_query($sql, $verbindung);
$ordner=mysql_result($result,$i,"ordner");
$dir = opendir ($ordner);
//Datei lesen ohne die Verzeichnisse darüber
while ($bild = readdir ($dir)){
if ($bild != "." && $bild != "..")
array_push($bilder,$bild);
}
closedir($dir);
$max = count($bilder)-1;
$zufall = rand(0,$max);
$bild = $bilder[$zufall];
echo"<img src=$ordner/$bild alt= height=157 width=434 border=0>";
?>
|

04-12-2006, 22:12
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
baue eine abhängigkeit von date() ein, z.b. von
PHP-Code:
if( date('G') < 7 ) ...
etc.
|

05-12-2006, 19:52
|
lyco
Newbie
|
|
Registriert seit: Dec 2006
Beiträge: 17
|
|
Danke für den Lösungsvorschlag nur leider blicke ich nicht druch.
Wie scho erwänt habe von php nicht viel ahnung.
|

05-12-2006, 20:02
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
und wie kann man dir helfen?
|

05-12-2006, 22:03
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
sollte so in etwa funktionieren:
PHP-Code:
$pic_file='current_pic.txt'; // In dieser Datei befindet sich das aktuelle Bild
$change_time=10; // Nach dieser Zeit in Sekunden wird ein neues Zufallsbild erzeugt
if(is_file($pic_file)&&filemtime($pic_file)+$change_time>time())
$bild=file_get_contents($pic_file);
else
{
// So, hier kommt "Dein" bisheriger code rein ohne HTML-Ausgabe des Bildes
// ...
// Und das hier noch hinzufügen:
$bild=$ordner.'/'.$bilder[$zufall];
file_put_contents($pic_file, $bild); // PHP5 ansonsten noch umschreiben
}
echo '<img src="'.$bild.'" alt="" height="157" width="434" border="0">';
|

07-12-2006, 15:35
|
lyco
Newbie
|
|
Registriert seit: Dec 2006
Beiträge: 17
|
|
Danke für die Hilfe.
Es zeigt mir leider kein Bild an. Ich sehe zwar den Platz wo das bild hin solte ist alber leider leer.
mein Code sieht jetzt so aus:
PHP-Code:
<?php
$verbindung = mysql_connect("","","");
mysql_select_db("");
$pic_file='current_pic.txt'; // In dieser Datei befindet sich das aktuelle Bild
$change_time=10; // Nach dieser Zeit in Sekunden wird ein neues Zufallsbild erzeugt
if(is_file($pic_file)&&filemtime($pic_file)+$change_time>time())
$bild=file_get_contents($pic_file);
else
{
//Script für das Zufallsbild
$bilder = array();
//Ordner öffnen
$sql = "SELECT `ordner` FROM `zufallspic` ORDER BY RAND( )";
$result = mysql_query($sql, $verbindung);
$ordner=mysql_result($result,$i,"ordner");
$bild=$ordner.'/'.$bilder[$zufall];
file_put_contents($pic_file, $bild);
}
echo '<img src="'.$bild.'" alt="" height="157" width="434" border="0">';
?>
|

07-12-2006, 16:33
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Und wo hast du das Array $bilder mit Werten befüllt?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

08-12-2006, 09:18
|
lyco
Newbie
|
|
Registriert seit: Dec 2006
Beiträge: 17
|
|
ich pack es einfach nicht!!
Warning: opendir() [function.opendir.html]: failed to open dir: No such file or directory in /home/test.php on line 24
Warning: readdir(): supplied argument is not a valid Directory resource in /home/test.php on line 27
Warning: closedir(): supplied argument is not a valid Directory resource in /home/test.php on line 31
Das sind die Fehlermeldungen, die mir angezeigt werden.
Mein jetztiges Script:
PHP-Code:
<?php
$verbindung = mysql_connect("","","");
mysql_select_db("");
$pic_file='current_pic.txt'; // In dieser Datei befindet sich das aktuelle Bild
$change_time=10; // Nach dieser Zeit in Sekunden wird ein neues Zufallsbild erzeugt
if(is_file($pic_file)&&filemtime($pic_file)+$change_time>time())
$bild=file_get_contents($pic_file);
else
{
//Script für das Zufallsbild
$bilder = array();
//Ordner öffnen
$sql = "SELECT `ordner` FROM `zufallspic` ORDER BY RAND( )";
$result = mysql_query($sql, $verbindung);
$ordner=mysql_result($result,$i,"ordner");
$dir = opendir ($ordner);
//Datei lesen ohne die Verzeichnisse darüber
while ($bild = readdir ($dir)){
if ($bild != "." && $bild != "..")
array_push($bilder,$bild);
}
closedir($dir);
$max = count($bilder)-1;
$zufall = rand(0,$max);
$bild = $bilder[$zufall];
$bild=$ordner.'/'.$bilder[$zufall];
file_put_contents($pic_file, $bild); // PHP5 ansonsten noch umschreiben
}
echo '<img src="'.$bild.'" alt="" height="157" width="434" border="0">';
?>
|

08-12-2006, 10:14
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
|
|
Lies mal unsere Regeln, besonders den Teil um error_reporting(E_ALL) und mysql_error()!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|