Antworten auf deine Fragen:
Neues Thema erstellen

Bild nach bestimmter zeit ändern | PHP

T

tommy_gFm

Guest

Hallo

Ich möchte für meine HP nen Ereignis Updater in PHP machen. Den Updater hab ich schon soweit fertig, jz möchte ich aber dass sich ein Bild nach einer bestimmten Zeit nach dem Upload (der Uploader ist aufgebaut wie ein Gästebuch) ändert.

ich habs probiert mit timestamp + (z.B.) 50, und danach nen if tag, aber das Bild hat sich nie geändert.

Code:
PHP:
<?php
	 
	  
	$datum= date("d.m.Y");
    $submit = $_POST['submit'];
    $noereigniss = $_POST['noereigniss'];
    $ereigniss = $_POST['ereigniss'];
    $ereigniss = htmlentities($ereigniss);
    $ereigniss = str_replace("\n", "<br>", $ereigniss);
    if ($submit)
  {


    if ($noereigniss)
    {
      $eintrag="<img src='bla.png' /><p>PLATZHALTER<br><font face='Verdana' size='5'>$datum</font></p><img src='bla.png' />";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
      
    }
    if ($ereigniss)
    {
      $eintrag="<img src='bl.gif' />$ereigniss<img src='bl.gif' /><br><font face='Verdana' size='5'>$datum<br /><br />Siehe NEWS</font>";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
      
    }
	//Ab da ist die Automatisierung
	$t=time();
	$a=15;
	$e=$t+$a;
	
	if (time() == $e)
	{
	$eintrag="SUPER ES HAT GEKLAPPT!!!";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
	}
	//Und da ists dann aus
  }
  $beitrag = file("ereigniss.txt");

  foreach($beitrag as $ausgabe)
   {
   $ausgabe = stripslashes($ausgabe);


   echo "
    <html>
    <head>
    <title>Ereignisse</title>
    </head>
    <body bgcolor='#f6ecbb'><center><font face='Verdana' size='7'>
    $ausgabe
    </font></center></body>
    </html>";

   }
?>

PS: Im moment wurde die Bildänderung durch eine Textänderung ersetzt.

mfg thomas
 
Zuletzt bearbeitet von einem Moderator:

AW: Bild nach bestimmter zeit ändern | PHP

Wenn sich das Bild OHNE neuladen ändern soll kannst du das nur mit PHP nicht realisieren.

Wenn du aber nur PHP verwenden möchtest geht das schon prinzipiell nicht wie du das machen möchtest, da die Seite von dir ja immer wieder neu aufgerufen werden muss, damit sich überhaupt das Bild ändern kann. Und da bei jedem Aufruf der aktuelle Timestamp ($t) aufgerufen wird kann deshalb niemals time() == $e sein, da time == $t ist.

Also entweder löst du das ganze mit Javascript oder du speicherst den Timestamp in einer Datenbank ab. Dann kannste den aktuellen Timestamp beim erneuten Aufruf der Seite mit dem aus der Datenbank vergleichen. Wenn dann ein Unterschied von 50 ist (was aber meiner Meinung nach für einen Db-Eintrag etwas wenig ist) dann ändert sich auch das Bild beim nächsten Aufruf.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

Hi

Es soll ja so sein dass wenn man die seite neu aufruft das neue bild ist, aber eben nach einer bestimmten zeit (dass mit den 15 sekunden war ja nur ein beispiel, es sollten dann in der fertigen version 3 tage sein)


wie geht das mit dem timestamp in die datenbank geben, so wie mit de ereignis schreiben??


mfg thomas
 
AW: Bild nach bestimmter zeit ändern | PHP

Dann setz dich mal mit MySQL und PHP damit in Verbindung auseinander. Jetzt so mal so eben erklären wäre dafür zu umfangreich.
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

Hi,

ich habe da noch Fragen :)

Wann genau soll sich das Bild ändern.
Bei einem erfolgten Upload?
Nach einer bestimmten Zeit, wenn der User wieder irgendwann auf die Seite kommt?
Innerhalb der Zeit, zu welcher der User auf der Seite ist, jedoch ohne Neuladen der Seite?

Zu den ersten beiden reicht es aus, wenn du ein Cookie setzt mit dem Wert time(). Du musst danach prüfen, ob die verstrichene Zeit + Zeitdifferenz in die Zukunft, der aktuellen Zeit oder <= entspricht. Wenn dies der Fall ist, lade beim Neuladen der Seite das neue Bild.

Beim letzten Punkt kannst du das über JavaScript und Ajax lösen. Allerdings ist davon abzuraten, wenn der Zeitabstand lediglich x Stunden/Minuten/Sekunden am Tag betrifft. Da du ansonsten zu viel Traffic auslösen wirst und das lediglich für ein Bild, welches dann allerdings am Tag mehrmals wechselt / oder auch nicht. Je nach Einstellung.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

Hi

Dass soll ein Ereignis updater werden, bei dem zwei blinklichter bei einem neuen ereignis 3 tage lang blinken

mfg thomas
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

ne eigentlich nicht, es funktioniert über textdateien

mfg thomas
 
AW: Bild nach bestimmter zeit ändern | PHP

Wenn ich das richtig verstehe denkst du nach dem Prinzip einer Datenkbank, aber verwendest anstelle dieser Textdateien was meiner Meinung nach mehr als unschön ist.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

wen du meinst
das problem ist dass ich keine db am server hab

mfg thomas
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

@aliasltb,

eine Datenbank basiert auf Textdateien ;) Nur siehst du sie nicht, weil eine Appl. drum hierum gebaut wurde. Abgesehen davon führt eine Datei nicht zu einer Serverlast, wie Anfragen an eine DB ;) Und ob schön oder unschön ist ja letztlich eine subjektive Meinung.

@tommy_gFm,

dann lege eine Datei an, in welcher du die Userid (sofern vorhanden) und einen dazugehörenden timestamp speicherst. Wenn du keine UserId hast, musst du etwas eindeutiges für den User nehmen, was diesen eindeutig identifiziert.

- Daten setzen in die Datei nach einem Fileupload (in die neue Datei)
- Daten löschen, wenn timestamp abgelaufen ist.
 

owieortho

Aktives Mitglied

AW: Bild nach bestimmter zeit ändern | PHP

Ich kann natürlich nicht sagen, wie Du das bisher genau gelöst hast. Aber, das Ganze über eine Datenbank zu regeln, spart Dir viel Zeit und Umstände. Server mit DB gibt es schon für echt kleines Geld. Überleg mal, ob Dir Deine Arbeitszeit wirklich so wenig wert ist.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

hi
@saila:

Wir haben keine User auf der HP, der Updater wird von einer HTML angesteuert die irgendwo versteckt im Verzeichniss liegt.

@owieortho:
Das Problem ist dass ich den Server/HP für nen Verein betreue. Wegen der einen funktion wolln wir uns nämlich niht schon wider nen neun Serverhoster suchen (wir haben einen neuen erst seit ca 2-3 Monaten). Undja meine arbeitszeit ist mir sogut wie nichts wert.

mfg thomas
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

Ok - es muss auf jeden Fall mit dem Upload ein Wert gesetzt werden, über welchen du zugreifen kannst um zu prüfen, ob die entsprechende Zeit von 3 Tagen abgelaufen ist.
Anderst geht es nicht.
Du kannst ja auch den Dateinamen mit dem timestamp in einer Datei speichern. Wird das Bild aufgerufen prüfst du ob das Bild mit Dateinamen in der Datei vorhanden ist und ob der timestamp älter als 3 Tage ist. Wenn ja - lösche, ansonsten setze deine Flammen.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

ja genau so weit bin ich inzwischen auch gekommen (nur anstatt drei tagen hab ich 15 sekunden genommen), aber es klappt einfach nicht :'(

mfg thomas
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

Zeit doch einfach einmal, was du getan hast (Scriptcode). Und zwar jener, welcher die Datei speichert, welche hochgeladen wird und den dann erforderlichen Teil, welcher den timestamp + bild in eine Datei speichert zzgl. dem setzen eines Cookie.

Wobei mir eben einfällt, du brauchst noch nicht einmal ein Cookie, wenn du beim speichern der Daten (timestamp + Bildname) auch direkt den timestamp zum Zeitpunkt des hochladen nimmst.

Muss es Userabhängig sein - dann wäre Cookie, ansonsten bei Bildabhängigkeit das eben genannte.
 
T

tommy_gFm

Guest

AW: Bild nach bestimmter zeit ändern | PHP

Ich habs eh ohne Cookie!

PHP:
<?php
	 
	  
	$datum= date("d.m.Y");
    $submit = $_POST['submit'];
    $noereigniss = $_POST['noereigniss'];
    $ereigniss = $_POST['ereigniss'];
    $ereigniss = htmlentities($ereigniss);
    $ereigniss = str_replace("\n", "<br>", $ereigniss);
    if ($submit)
  {


    if ($noereigniss)
    {
      $eintrag="<img src='bla.png' /><p>PLATZHALTER<br><font face='Verdana' size='5'>$datum</font></p><img src='bla.png' />";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
      
    }
    if ($ereigniss)
    {
      $eintrag="<img src='bl.gif' />$ereigniss<img src='bl.gif' /><br><font face='Verdana' size='5'>$datum<br /><br />Siehe NEWS</font>";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
	  
    $t=time();
	$a=15;
	$e=$t+$a;
	
	  $eintrag2="$e";
      
	  $datei2 = fopen("timestamp.txt", "w+");
      fwrite($datei2, $eintrag2);
      fclose($datei2);
    }
	//Ab da ist die Automatisierung
	$beitrag2 = file("timestamp.txt");
    $t=time(); 
  while ($t<=$ausgabe2){
    foreach($beitrag2 as $ausgabe2)
    {
    $ausgabe2 = stripslashes($ausgabe2);
	}	
	if ($t>=$ausgabe2)
	{
	$eintrag="SUPER ES HAT GEKLAPPT!!!";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
	}
	else
	{
	  if ($t>=$ausgabe2)
	 {
	$eintrag="SUPER ES HAT GEKLAPPT!!!";

      $datei = fopen("ereigniss.txt", "w+");
      fwrite($datei, $eintrag);
      fclose($datei);
	 }
	}
   }
	//Und da ists dann aus
  }
  $beitrag = file("ereigniss.txt");

  foreach($beitrag as $ausgabe)
   {
   $ausgabe = stripslashes($ausgabe);
     
	 
	
   echo "
    <html>
    <head>
    <title>Ereignisse</title>
    </head>
    <body bgcolor='#f6ecbb'><center><font face='Verdana' size='7'>
    $ausgabe
    </font></center></body>
    </html>";

   }
?>

Noch ne Frage: Geht das Ganze was ich will überhaupt mit PHP??

mfg thomas
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

Klar geht das mit php. Im Grunde geht alles mit php - solange ein Server im Spiel ist.
Melde mich gleich noch mal.
 

saila

Moderatorle

AW: Bild nach bestimmter zeit ändern | PHP

du kannst direkt noch selbst testen und zwar. Setze an den Anfang deines Scriptes folgende Zeile:

error_reporting(E_ALL);

;)

Melde mich wie gesagt später noch einmal.


EDIT: Und bitte einen Eintrag aus der txt zeigen.
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben