wunderschönen guten Morgen zusammen,
ich bastel zurzeit etwas an einem kleines News System basierend auf .txt files welche im format
DDMMYYYHI.txt abgelegt werden, also im Dateiname ist das eindeutige erstellungsdatum enthalten und somit ist der name mehr oder weniger einzigartig. So weit so gut. die einzelnen Daten anzusprechen und auf einmal auf einer Seite auszugeben ist kein Thema, auch die begrenzung der Einträge habe ich nach mehreren anläufen mit einer Schleife realisiert.
es werden also 4 Einträge angezeigt wenn die index.php aufgerufen wird.
Mit diesen beiden Buttons möchte ich nun also die "Seiten" blättern, das echo $_SESSION['anfang']
und 'ende' geben mir an dieser Stelle jeweils eine 4 aus, ist ja auch richtig, 4x ist die Schleife durchlaufen und ist somit >= ['ende']
benutze ich den button $_POST['vor'] erhöht sich ['ende'] auf 8, laut echo zumindest und ['anfang'] ist bei 6 da es im moment nur 6 .txt Dateien gibt. drücke ich jetzt aber auf $_POST['back'] werden meine variablen zerpflückt und anfang / ende wird mit echo -4 und 0 ausgegeben. Klar, hier werden die start werte der $_SESSION variablen benutzt da die seite ja neu gezeichnet wird...
wenn ich dinge ausprobiere wie...
...sind die Variablen wie gewünscht beim ersten durchlauf der schleife auf jeweils "4"
wenn man die Seite aktualisiert aber komischerweiße auf 5 und 4.. nochmal aktualisieren 6 und 4 und keine news angezeigt.
ist es generell quatsch ein solches vorhaben mit Session Variablen zu realisieren ? habt ihr tipps & tricks für mich oder sogar ein gedankenanstoß was ich falsch mache ?
Viele Grüße & Danke
J0gurt
ich bastel zurzeit etwas an einem kleines News System basierend auf .txt files welche im format
DDMMYYYHI.txt abgelegt werden, also im Dateiname ist das eindeutige erstellungsdatum enthalten und somit ist der name mehr oder weniger einzigartig. So weit so gut. die einzelnen Daten anzusprechen und auf einmal auf einer Seite auszugeben ist kein Thema, auch die begrenzung der Einträge habe ich nach mehreren anläufen mit einer Schleife realisiert.
Code:
session_start();
$_SESSION['anfang'] =0;
$_SESSION['ende'] =4;
Code:
function getNewsList()
{
$fileList = array();
if ($handle = opendir("news"))
{
while ($file = readdir($handle))
{
if (!is_dir($file))
{
$fileList[] = $file;
}
}
}
rsort($fileList);
return $fileList;
}
Code:
<?php
$list = getNewsList();
$i = 0;
$cutlist = array_slice($list,$_SESSION['anfang'],$_SESSION['ende']);
foreach ($cutlist as $value) {
$newsData = file("news/".$value);
$autor = $newsData[0];
$newsTitle = $newsData[1];
$submitDate = $newsData[2];
unset ($newsData['0']);
unset ($newsData['1']);
unset ($newsData['2']);
$newsContent = "";
foreach ($newsData as $value)
{
$newsContent .= $value;
}
echo"<div class='news-entry'>";
echo"<h2><span class='date'>$submitDate Uhr</span><div id='titlelink'><a href='ansichtnw.php?Data=$list[$i]' id='titlelink'>$newsTitle</a></div></h2>";
echo"<div id='news_h'>";
echo"$newsContent";
echo"</div>";
echo"<div id='readmore_news' class='readmore_news'>";
echo"<hr>";
echo"<a href='ansichtnw.php?Data=$list[$i]'>weiter lesen..</a>";
echo"<div id='autor'>autor: $autor</div>";
echo"</div>";
echo"</div>";
$i = $i + 1;
$_SESSION['anfang'] = $_SESSION['anfang'] +1;
if ($_SESSION['anfang'] >= $_SESSION['ende'])
{
break;
}
}
echo $_SESSION['anfang'];
echo $_SESSION['ende'];
?>
es werden also 4 Einträge angezeigt wenn die index.php aufgerufen wird.
Mit diesen beiden Buttons möchte ich nun also die "Seiten" blättern, das echo $_SESSION['anfang']
und 'ende' geben mir an dieser Stelle jeweils eine 4 aus, ist ja auch richtig, 4x ist die Schleife durchlaufen und ist somit >= ['ende']
Code:
<form action="" method="post">
<input type="submit" id="back" name="back" value ="zurück (testing)"/>
</form>
<form action="" method="post">
<input type="submit" id="vor" name="vor" value ="vor (testing)"/>
</form>
Code:
if(isset($_POST['vor']))
{
$_SESSION['anfang'] = $_SESSION['anfang'] +4;
$_SESSION['ende'] = $_SESSION['ende'] +4;
}
if(isset($_POST['back']))
{
$_SESSION['anfang'] = $_SESSION['anfang'] -4;
$_SESSION['ende'] = $_SESSION['ende'] -4;
}
benutze ich den button $_POST['vor'] erhöht sich ['ende'] auf 8, laut echo zumindest und ['anfang'] ist bei 6 da es im moment nur 6 .txt Dateien gibt. drücke ich jetzt aber auf $_POST['back'] werden meine variablen zerpflückt und anfang / ende wird mit echo -4 und 0 ausgegeben. Klar, hier werden die start werte der $_SESSION variablen benutzt da die seite ja neu gezeichnet wird...
wenn ich dinge ausprobiere wie...
Code:
if(!isset($_SESSION['anfang']))
{
$_SESSION['anfang'] =0;
$_SESSION['ende'] =4;
}
...sind die Variablen wie gewünscht beim ersten durchlauf der schleife auf jeweils "4"
wenn man die Seite aktualisiert aber komischerweiße auf 5 und 4.. nochmal aktualisieren 6 und 4 und keine news angezeigt.
ist es generell quatsch ein solches vorhaben mit Session Variablen zu realisieren ? habt ihr tipps & tricks für mich oder sogar ein gedankenanstoß was ich falsch mache ?

Viele Grüße & Danke
J0gurt