PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cronjobs Nummer 2


Rudolfsport
30.12.2004, 09:54:33
hallo,
in einem shcon älteren Thread habt ihr mir einen Code gegeben, der Cronjobs in PHP Form ausführt.
Hier der Code:


$stunde = date("H");
if(isset($stunde))
{
if($stunde>=24 and $stunde<=3)
{
echo "<a href='link'>Name</a>";
}
elseif($stunde>=4 and $stunde<=7)
{
echo "<a href='link'>Name</a>";
}
else
{
// without link
}

}

Soweit so gut, nun möchte ich den Code so umändern, dass die Links nicht nur an einer bestimmten Tgeszeit angezeeigt werden, sondern auch noch an einem bestimmten Datum. Also beides in einem.

Was muss ich da einfügen bzw. ändern? Ich bin euch jetzt schon seh dankbar, da ich weis dass ihr mich nicht im Stich lassen werdet.

xabbuh
30.12.2004, 10:02:51
Hast du dir date() (http://www.php.net/date) mit den entsprechenden Parametern angeschaut?

Rudolfsport
30.12.2004, 20:04:44
hi,
also ich habe das jetzt mal so. Ist das ok?

$tag = date("d");
$monat = date ("m");
$Jahr = date ("Y");
$stunde = date ("H");
if(isset($tag,$monat,$Jahr,$stunde))
{
if($tag,$monat,$Jahr,$stunde>=01,01,2005,24 and $tag,$monat,$Jahr,$stunde<=01,01,2005,1)
{
echo "<a href='datei.php'>LINK</a>";
}
elseif($tag,$monat,$Jahr,$stunde>=01,01,2005,2 and $tag,$monat,$Jahr,$stunde<=01,01,2005,3)
{
echo "<a href='datei2.php'>LINK</a>";
}
else
{
// without link
}

}

Corvin
30.12.2004, 20:19:27
Ich habe mir das jetzt nicht genauer angeguckt, aber warum probiertst du das nicht einfach aus...mit einem aktuellen Datum natürlich?

xabbuh
30.12.2004, 22:46:05
Original geschrieben von Rudolfsport

if($tag,$monat,$Jahr,$stunde>=01,01,2005,24 and $tag,$monat,$Jahr,$stunde<=01,01,2005,1)
{

}
elseif($tag,$monat,$Jahr,$stunde>=01,01,2005,2 and $tag,$monat,$Jahr,$stunde<=01,01,2005,3)
{
}

Was sind das denn für Abfragen? Hast du die so mal ausprobiert?

Rudolfsport
30.12.2004, 23:39:05
Tja ich habe Sie schon versuch, dabei bekomme ich einen PARSE ERROR unexpected ','in LINE 8.

Könnt ihr mir bitte helfen? Ich habe keine Ahnung ob das stimmt.

Der CODE:


<?
$tag = date("d");
$monat = date ("m");
$Jahr = date ("Y");
$stunde = date ("H");
if(isset($tag,$monat,$Jahr,$stunde))
{
if($tag,$monat,$Jahr,$stunde>=01,01,2005,24 and $tag,$monat,$Jahr,$stunde<=01,01,2005,1)
{
echo "<a href='datei.php'>LINK</a>";
}
elseif($tag,$monat,$Jahr,$stunde>=01,01,2005,2 and $tag,$monat,$Jahr,$stunde<=01,01,2005,3)
{
echo "<a href='datei2.php'>LINK</a>";
}
else
{
// without link
}

}
?>

Wo ist denn da bitte der Fehler? Bitte korrigiert mir einer das Script.

xabbuh
31.12.2004, 00:17:01
Wenn du mir erklärst, könnte ich dir vielleicht erklären, wie die Abfrage aussehen müsste.

Rudolfsport
31.12.2004, 12:56:35
hi,
mein momentaner Cronjob sieht so aus, dass ich von z.b. 6 -> 3 Uhr ein bestimmtes script angezeigt bekomme und danach ein anderes.
Nun möchte ich das script aber so ändern, dass es an einem bestimmten Datum für eine bestimmte Zeitspanne anzeigt. Und nicht nur für eine bestimmte Zeitspanne.
Hoffe es ist jetzt verständlich.

xabbuh
01.01.2005, 12:24:16
Meinst du vielleicht sowas:

if($tag >= 1 && $monat >= 1 && $jahr ==2005 && $stunde >=1 && $stunde <= 24)

Rudolfsport
01.01.2005, 19:55:04
$tag = 1
$monat= 1
$jahr = 1
$stunde= date("H")
if($tag >= 1 && $monat >= 1 && $jahr ==2005 && $stunde >=1 && $stunde <= 24)

Gehört das dann so? Und wo genau steht jetzt wie lange das script angezeigt wird?

xabbuh
01.01.2005, 21:41:56
$tag, $monat und $jahr solltest du wohl auch mit Hilfe der Funktion date() belegen, da sonst die Abfrage keinen Sinn macht.

Original geschrieben von Rudolfsport
Und wo genau steht jetzt wie lange das script angezeigt wird?
Wie meinst du das denn?

Rudolfsport
02.01.2005, 00:09:59
So hab ich jetzt meinen Code gemacht, ist der richtig?

$tag = date("d");
$monat = date("m");
$jahr = date("Y");
$stunde = date("H");
if($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=23 && $stunde <= 14)
{
echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=15 && $stunde <= 18)
{
echo "<a href='taktik5.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=19 && $stunde <= 19)
{
echo "<a href='taktik3.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=20 && $stunde <= 21)
{
echo "<a href='taktik.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=22 && $stunde <= 23)
{
echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
else
{
// without link
}

Mein Problem ist, wenn ich ihn aus geben lasse, dann zeigt er zu gegebener Zeit den Link nicht an!

Marilu
02.01.2005, 10:51:39
> echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";

Das ' hinter pau.php ist an der falschen Stelle, wenn die SID mit übergeben werden soll. Es muss vor das >

xabbuh
02.01.2005, 14:11:28
Benutze lieber die Parameter für date() ohne führende 0. Also j statt d und n statt m.

echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";

Ist so besser:

<?php
echo '<a href="pau.php?' . SID . '">Nächstes Rennen</a>';
?>

Rudolfsport
02.01.2005, 23:30:51
Ok es scheint nun zu funktionieren.
Wenn ich nun will das es 28 Tage durchläuft ohne, dass ich was tu, aber trotzdem alle 43 Dateien an ihren bestimmten daten angezeigt werden, wie mache ich das dann?
Mach ich dann in der Menüleiste in der die 43 Links erscheinen 43mal sowas untereinander oder gibt´s da auch noch ne andere lösung? Ich denke da so an includen oder sowas.

xabbuh
03.01.2005, 09:17:06
Die Frage ist, ob die Links, die erscheinen sollen, irgendeinem System folgen oder ob die vollkommen willkürlich sind.

Rudolfsport
03.01.2005, 13:30:14
die haben alle ein bestimmtes datum und sollen genau in der datums bzw. Zeit reihenfolge abgerufen werden.

xabbuh
03.01.2005, 14:17:18
Speichern die Links in einem Array und gebe sie mit einer Schleife aus. Dann brauchst du nicht für jeden Link alles neu schreiben.

Rudolfsport
03.01.2005, 14:28:33
<?php
$tag= date("j");
$monat= date("n");
$jahr= date("Y");
$stunde= date("H");
$mama = ("Nächstes Rennen" => "taktik.php",
"Nächstes Rennen" => "taktika.php")

if($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=23 && $stunde <= 14)
{
echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=15 && $stunde <= 18)
{
echo "<a href='taktika.php'?SID=".session_id().">Nächstes Rennen</a>";
}
else
{
// without link
}
?>

Stimmt das so? Aber w ist da denn der grpße unterschied?

xabbuh
03.01.2005, 15:04:18
Ich sehe in deinem Script nicht, dass du da irgendwie Schleifen verwendest.

Rudolfsport
03.01.2005, 15:22:27
<?php
$dauer = date("j.n.Y.H");
$dauer2 = time();
$mama = ("Nächstes Rennen" => "taktik.php",
"Nächstes Rennen" => "taktika.php")

while($dauer= $dauer2)
{
echo "<a href='pau.php'?SID=".session_id()." >Nächstes Rennen</a>";
}
elseif($tag >= 2 && $monat >= 1 && $jahr ==2005 && $stunde >=15 && $stunde <= 18)
{
echo "<a href='taktika.php'?SID=".session_id().">Nächstes Rennen</a>";
}
else
{
// without link
}
?>

So das ist meine letzte Idee. kannst du mir bitte den Code umschreiben oder nur die falsche zeile?

Rudolfsport
03.01.2005, 17:46:38
bitte es ist dringend. *liebguck*

xabbuh
03.01.2005, 20:27:55
http://nopaste.php-q.net/105946

So das ist meine letzte Idee. kannst du mir bitte den Code umschreiben oder nur die falsche zeile?
Hast du das Script überhaupt mal laufen lassen? Dann hättest du auch gemerkt, dass das Script nicht läuft.

bitte es ist dringend. *liebguck*
Wenn du dich mal näher mit Arrays (http://tut.php-q.net/array.html) und Schleifen (http://tut.php-q.net/schleifen.html) beschäftigst, könntest sowas auch mal selbst machen.

Rudolfsport
03.01.2005, 22:26:22
ok, aber wo sehe ich jetzt wie lange das Script angezeigt wird und vo nwann bis wann es angezeigt wird?

Kann ich das jetzt einfach in meine menüleiste einbauen und an dem datum zeigt es dann den link an?!

xabbuh
04.01.2005, 09:20:18
Original geschrieben von Rudolfsport
ok, aber wo sehe ich jetzt wie lange das Script angezeigt wird und vo nwann bis wann es angezeigt wird?

Kann ich das jetzt einfach in meine menüleiste einbauen und an dem datum zeigt es dann den link an?!
Wenn du dir die Abfrage mal genau anschaust, siehst du auch, wann ein Link anzeiegt wird.

Rudolfsport
05.01.2005, 12:23:22
ok aber was bedeuten jetzt die einzelenen stellen in der klammer?

'link3.php' => mktime(0, 0, 0, 5, 1, 2004)


die letzten sind klar aber die nullen davor nicht.

Und das kann ich nun einfach in die menüdatei einbauen? oder ist es besser das zu includen?

xabbuh
05.01.2005, 14:01:09
Original geschrieben von Rudolfsport
die letzten sind klar aber die nullen davor nicht.
RTFM -> http://de2.php.net/mktime

Und das kann ich nun einfach in die menüdatei einbauen? oder ist es besser das zu includen?
Wie du es machst, ist relativ egal. Mach es am besten so, wie es für dich am übersichtlichsten ist.