minimalistisches news-system. funktioniert nur unter xampp
provius
- php
Einen guten Tag zusammen.
Ich hab auf meiner Internetseite eine Art Kalender-System eingebaut. Die einzelnen Ereignisse werden jeweils als *.txt in einem Ordner abgelegt, und die Startseite durchsucht diesen Ordner nach Terminen, die noch in der Zukunft liegen.
Mein Quelltext hierzu sieht wie folgt aus:
$ver='festln/';
$handle=opendir($ver);
while ($file = readdir ($handle))
{
if ($file != '.' && $file != '..')
{
$Datum = date('y m d');
$DatAkt = ereg_replace(' ','',$Datum);
$DatFest = str_split($file,6);
if ($DatFest[0] >= $DatAkt)
{
include '$ver$file';
}
}
}
closedir($handle);
if ($DatFest[0] < $DatAkt)
{
echo '
<h1>Aktuell stehen keine Veranstaltungen von nukular event bevor. Nach der Sommerpause geht es im September/Oktober wieder weiter.</h1>
';
}
else
{
}
Auf meinem lokalen Server unter Xampp läuft alles fehlerfrei. Nur auf meinem Webserver parst er den Quelltext anscheinend nicht. Diese Anweisung selber, sowie alles nachfolgende werden nicht geparst. Leider wird aber auch keine Fehlermeldung ausgegeben.
Kann mir jemand bei der Fehlersuche behilflich sein?
Wär sehr fein.
Vielen Dank schon mal,
Provl
Noch ein kleiner Nachtrag:
Die Dateien im Ordner "festln" haben jeweils als erste sechs Zeichen das Datum im Format jjmmtt
Auf die Schnelle mal,
include '$ver$file';
das kann auch nicht mit XAMPP funktionieren.
Paul
Hi,
include '$ver$file';
das kann auch nicht mit XAMPP funktionieren.
... ausser es gibt eine Datei die wirklich $ver$file heißt. ;-)
Aber wahrscheinlicher ist es, dass der Autor hier besser doppelte Anführungszeichen verwenden sollte, damit $ver und $file als Variablen interpretiert werden.
Nachzulesen z.B. unter http://tut.php-quake.net/strings.html.
mfG,
steckl
Hallo nochmal.
Wie von euch vorgeschlagen
[quote=""]Aber wahrscheinlicher ist es, dass der Autor hier besser doppelte Anführungszeichen verwenden sollte, damit $ver und $file als Variablen interpretiert werden.[/quote]
hab ich alle ' druch " ersetzt.
Leider bringt das aber keinen Erfolg.
Wo könnte der Fehler denn sonst noch liegen?
Vielen Dank für eure Hilfe,
Chris
Hi,
Wo könnte der Fehler denn sonst noch liegen?
Hast du mal den Tipp von ChrisB durchgelesen?
Wenn du dich damit genausowenig auskennst wie ich kannst du ja dort nochmal nachfragen.
Aber am besten davor mal bei Google suchen.
mfG,
steckl
Wo könnte der Fehler denn sonst noch liegen?
Hast du mal den Tipp von ChrisB durchgelesen?
Wenn du dich damit genausowenig auskennst wie ich kannst du ja dort nochmal nachfragen.
Aber am besten davor mal bei Google suchen.
Die Theorie von ChrisB kann aus der Problembeschreibung heraus, eigentlich nicht zutreffen. Allerdings hat der OP auch behauptet sein Code würde unter Xampp laufen, was aber niemals sein kann, so ist die Problembeschreibung vielleicht auch nicht ganz ehrlich.
Hans
Hallo zusammen.
Allerdings hat der OP auch behauptet sein Code würde unter Xampp laufen, was aber niemals sein kann, so ist die Problembeschreibung vielleicht auch nicht ganz ehrlich.
Also auch wenns anscheinend nicht gehen dürfte, bei mir läufts. Wobei aber das Problem ja nun verlagert ist.
Ich hab nun folgenden Quelltext
[...]
include "$ver$file";
Das funktioniert jedoch auch nicht. Also kann doch hier der Fehler nicht liegen, oder?
Gruß,
Chris
Hi,
include "$ver$file";
Das funktioniert jedoch auch nicht. Also kann doch hier der Fehler nicht liegen, oder?
Nein, aber was meint du mit "nicht parsen"?
Wirklich dass der PHP-Code im Browser sichbar ist?
Dein Code ist wie bereits erwähnt nicht komplett und deine Fehlerbeschreibung ist sehr vage. Keine Fehlermeldung? Ausgabe?
Hans
Hallo zusammen.
Nein, aber was meint du mit "nicht parsen"?
Wirklich dass der PHP-Code im Browser sichbar ist?
Da hab ich dann wohl den falschen Ausdruck gewählt...
Es wird einfach nichts mehr gemacht. Der PHP-Code wird nicht umgesetzt. Er wird auch nicht angezeigt und es wird auch kein Fehler ausgegeben.
Dein Code ist wie bereits erwähnt nicht komplett und deine Fehlerbeschreibung ist sehr vage. Keine Fehlermeldung? Ausgabe?
Wie gesagt, keine Fehlermeldung o.ä.
Hier mal die Ausgabe:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>nukular event - veranstaltungen mit livemusik</title>
<meta name="keywords" content="">
<meta name="author" content="christian adam">
<meta name="generator" content="editor">
<meta name="description" content="">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="de">
<meta http-equiv="cache-control" content="no-cache">
<base target=_blank>
<link rel=stylesheet href=../nukular.css type=text/css>
<link rel=stylesheet href=../nukular-flyer.css type=text/css>
<!--[if lt IE 7]>
<link rel=stylesheet href=../nukular-ie.css type=text/css>
<![endif]-->
</head>
<body class=nukular>
<div id=inhalt>
<h1>Herzlich willkommen,</h1>
ihr befindet euch auf der Internetpräsenz von nukular event, euer Garant für Musikveranstaltungen der härteren Gangart aus dem kleinen Städtchen Erbendorf in der Oberpfalz.<br>
Wir präsentieren euch hier alle wichtigen Informationen zu nukular event, unseren Veranstaltungen und außerdem noch Möglichkeiten für euch, Teil der ganzen Sache zu werden.<br><br>
<div class=wichtig>Hier Informationen zu aktuellen Veranstaltungen:</div>
in Xampp hab ich folgende Ausgabe (da passt alles):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>nukular event - veranstaltungen mit livemusik</title>
<meta name="keywords" content="">
<meta name="author" content="christian adam">
<meta name="generator" content="editor">
<meta name="description" content="">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="de">
<meta http-equiv="cache-control" content="no-cache">
<base target=_blank>
<link rel=stylesheet href=../nukular.css type=text/css>
<link rel=stylesheet href=../nukular-flyer.css type=text/css>
<!--[if lt IE 7]>
<link rel=stylesheet href=../nukular-ie.css type=text/css>
<![endif]-->
</head>
<body class=nukular>
<div id=inhalt>
<h1>Herzlich willkommen,</h1>
ihr befindet euch auf der Internetpräsenz von nukular event, euer Garant für Musikveranstaltungen der härteren Gangart aus dem kleinen Städtchen Erbendorf in der Oberpfalz.<br>
Wir präsentieren euch hier alle wichtigen Informationen zu nukular event, unseren Veranstaltungen und außerdem noch Möglichkeiten für euch, Teil der ganzen Sache zu werden.<br><br>
<div class=wichtig>Hier Informationen zu aktuellen Veranstaltungen:</div>
<h1>Aktuell stehen keine Veranstaltungen von nukular event bevor. Nach der Sommerpause geht es im September/Oktober wieder weiter.</h1>
</div>
<div id=inhalt_u><p class=fuss>© 2008 nukular event / Besucher #2164 seit 31.01.08</p></div>
<div id=menu>
<div class=menu>
<a href=index.php target=_parent>start</a><br>
<a href=../nukular.php target=_parent>nukular event</a><br>
<a href=veranstaltungen.php target=_parent>veranstaltungen</a><br>
<a href=vvk.php target=_parent>karten-vvk</a><br>
<a href=musiker.php target=_parent>band/bewerbung</a><br>
<a href=galerien.php target=_parent>bilder</a><br>
<a href=../gaeste/gaestebuch.php target=_parent>gäste</a><br>
<a href=../impressum.php target=_parent>impressum</a><br>
</div>
<div id=kasten>
<div id=links><a href=../booking/index.php target=_parent></a></div>
<div id=mitte><a href=../event/index.php target=_parent></a></div>
<div id=rechts><a href=../button/index.php target=_parent></a></div>
</div>
<div id=myspace><a href=http://www.myspace.com/slutfestger></div>
</div>
</body>
</html>
Hier mal mein vollständiger Quelltext:
Die Index.php:
<?
include "../kopf.php";
echo "
<h1>Herzlich willkommen,</h1>
ihr befindet euch auf der Internetpräsenz von nukular event, euer Garant für Musikveranstaltungen der härteren Gangart aus dem kleinen Städtchen Erbendorf in der Oberpfalz.<br>
Wir präsentieren euch hier alle wichtigen Informationen zu nukular event, unseren Veranstaltungen und außerdem noch Möglichkeiten für euch, Teil der ganzen Sache zu werden.<br><br>
<div class=wichtig>Hier Informationen zu aktuellen Veranstaltungen:</div>
";
$ver="festln/";
$handle=opendir($ver);
while ($file = readdir ($handle))
{
if ($file != "." && $file != "..")
{
$Datum = date("y m d");
$DatAkt = ereg_replace(" ","",$Datum);
$DatFest = str_split($file,6);
if ($DatFest[0] >= $DatAkt)
{
}
}
}
closedir($handle);
if ($DatFest[0] < $DatAkt)
{
echo "
<h1>Aktuell stehen keine Veranstaltungen von nukular event bevor. Nach der Sommerpause geht es im September/Oktober wieder weiter.</h1>
";
}
else
{
}
include "../fuss_event.php";
?>
Die Kopf.php:
<?php
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>nukular event - veranstaltungen mit livemusik</title>\n";
echo "<meta name=\"keywords\" content=\"test\">\n";
echo "<meta name=\"author\" content=\"christian adam\">\n";
echo "<meta name=\"generator\" content=\"editor\">\n";
echo "<meta name=\"description\" content=\"\">\n";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">\n";
echo "<meta http-equiv=\"content-language\" content=\"de\">\n";
echo "<meta http-equiv=\"cache-control\" content=\"no-cache\">\n";
echo "<base target=_blank>\n";
echo "<link rel=stylesheet href=../nukular.css type=text/css>\n";
echo "<link rel=stylesheet href=../nukular-flyer.css type=text/css>\n";
echo "<!--[if lt IE 7]>\n";
echo " <link rel=stylesheet href=../nukular-ie.css type=text/css>\n";
echo "<![endif]-->\n";
echo "</head>\n";
echo "<body class=nukular>\n";
echo "<div id=inhalt>\n";
?>
Die fuss.php:
<?php
echo "</div>\n";
echo "<div id=inhalt_u><p class=fuss>© 2008 nukular event / Besucher #";
$ip = getenv ("REMOTE_ADDR");
if( file_exists("counter/$ip.ip"))
{
$lesaus = file("counter/count.txt");
echo"$lesaus[0]";
}
else
{
$lesaus = file("counter/count.txt");
$lesaus[0]++;
$datei = fopen("counter/count.txt","r+");
$datenm="$lesaus[0]";
rewind($datei);
fwrite($datei,$datenm);
fclose($datei);
echo"$lesaus[0]";
$file = fopen("counter/$ip.ip","w+");
$datenm="$ip";
fwrite($file,$datenm);
fclose($file);
}
echo " seit 31.01.08</p></div>\n";
echo "<div id=menu>\n";
include "menu.php";
echo "</div>\n";
echo "</body>\n";
echo "</html>\n";
?>
Wär echt fein, wenn ihr mir weiterhelfen könntet. Ich tapp total im Dunkeln....
Chris
Hmm, schint als hätte ChrisB doch recht:
Deine index:
<?
dann probiere das mal so:
<?php
Hans
Hallo.
Deine index:
<?
dann probiere das mal so:
<?php
Leider wars das nicht.
Hi,
Auf meinem lokalen Server unter Xampp läuft alles fehlerfrei. Nur auf meinem Webserver parst er den Quelltext anscheinend nicht.
Vermutung (da du gerade diesen Teil weggelassen hast) - du hast dich auf sohrt_open_tags=on verlassen, und damit jetzt gemerkt, warum man das nicht tun sollte.
Diese Anweisung selber, sowie alles nachfolgende werden nicht geparst. Leider wird aber auch keine Fehlermeldung ausgegeben.
Na wer sollte denn auch Fehler melden, wenn keiner da ist, der irgendwas parsed ...?
MfG ChrisB
Hi,
du hast dich auf sohrt_open_tags=on verlassen
Sorry, short_open_tags heisst die Konfigurationseinstellung (damit du nicht vergebens suchen musst).
MfG ChrisB
Sorry, short_open_tags heisst die Konfigurationseinstellung (damit du nicht vergebens suchen musst).
»»
Was die Entwickler sich bei der Option short_open_tags gedacht haben, wüsste ich sowieso mal gerne. Ich hoffe nicht, dass der einzige Grund ist weniger Schreibarbeit zu haben.
Paul
So,
jetzt hab ich den Quelltext leicht abgewandelt. Jedoch ist nach wie vor im Xampp alles gut, auf dem Server erfolgt keine Umsetzung.
$ver="festln/";
$handle=opendir($ver);
while ($file = readdir ($handle))
{
if ($file != "." && $file != "..")
{
$Datum = date("y m d");
$DatAkt = ereg_replace(" ","",$Datum);
$DatFest = str_split($file,6);
$Datei = $ver.$file;
if ($DatFest[0] >= $DatAkt)
{
include "$Datei";
}
}
}
closedir($handle);
Woran kann es denn liegen, dass dieser Abschnitt unter Xampp einwandfrei umgesetzt wird, auf meinem Webserver jedoch einfach nichts passiert? Es kommt keine Fehlermeldung und der php-Quelltext wird nur bis zu diesem Abschnitt geparst. Alles nachfolgende fällt unter den Tisch...
Vielen Dank für euere Hilfe,
+Chris
Hi,
$Datum = date("y m d");
$DatAkt = ereg_replace(" ","",$Datum);
das ist nun wirklich Blödsinn. Warum gibst Du zunächst Leerzeichen an und löscht diese dann wieder - und auch noch über eine veraltete Funktion?
$DatFest = str_split($file,6);
Woran kann es denn liegen, dass dieser Abschnitt unter Xampp einwandfrei umgesetzt wird, auf meinem Webserver jedoch einfach nichts passiert?
weil diese Funktion erst ab PHP5 zur Verfügung steht und auf dem Webserver vermutlich eine 4er-Version läuft?
Mach Dir das Ganze einfacher, lösch den unsinnigen Code in der Schleife frage einfach ab:
if ($file >= date("ymd")) include $ver.$file;
Programmieren kann so simpel sein... ;-)
freundliche Grüße
Ingo
Hi,
noch 'ne Anmerkung, die mir gerade in den Sinn kommt:
if ($file >= date("ymd")) include $ver.$file;
Wenn in der Datei nur Text und kein PHP-Code ist, solltest Du natürtlich readfile() nutzen.
freundliche Grüße
Ingo
--
[[barrierefreie Ingo Webdesign](http://www.1ngo.de/web/) » [Suchmaschinenoptimierung](http://www.1ngo.de/web/seo.html) | [em?](http://www.1ngo.de/web/em.html) | [IE7 - Bugs](http://www.1ngo.de/web/ie7.html)]
Guten Morgen,
das war das Problem. PHP 4 statt 5.
Ich benutze nun chunk_split und schon funktionierts einwandfrei.
Wenn in der Datei nur Text und kein PHP-Code ist, solltest Du natürtlich readfile() nutzen.
Mit readfile läuft es tatsächlich besser. Danke auch für diesen Hinweis.
Vielen Dank für die Hilfe,
Chris
Hi,
Ich benutze nun chunk_split und schon funktionierts einwandfrei.
warum? Für einen Stringvergleich ab Stringanfang ist das gar nicht erforderlich.
freundliche Grüße
Ingo
Nicht?
Ich benutze nun chunk_split und schon funktionierts einwandfrei.
warum? Für einen Stringvergleich ab Stringanfang ist das gar nicht erforderlich.
welche Möglichkeiten gibt es denn sonst noch?
Gruß
Hi,
warum? Für einen Stringvergleich ab Stringanfang ist das gar nicht erforderlich.
welche Möglichkeiten gibt es denn sonst noch?
wie eigentlich schon gesagt: einfach vergleichen.
if ('080514xxxx' < '080515') ergibt true
if ('080515xxxx' < '080515') ergibt false
freundliche Grüße
Ingo