Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Php in iWeb, Fehler.

Php in iWeb, Fehler.

vetterjack
vetterjack29.10.0811:03
Hallo
Ich bin gerade dran, eine Website mit iWeb zuerstellen, das Design mache ich mit iWeb, den Text erstelle ich im HTML-Baustein.
Gestern bin ich auf folgende seite gestoßen: , und habe mir gedacht, machste damit deine Website noch ein bisschen schöner mit Besucherzähler und Kontaktformular...
Ich habe den php-code kopiert und in den HTML Baustein eingefügt, die Website in einem Ordner gespeichert und mit Cyberduck auf dem Webspace hochgeladen, dieser Webspace unterstützt php5 und MySQL.
Aber wenn ich die Website jetzt öffnen will, kommt folgender Fehler:(siehe unten)
Die Indexdatei habe ich auch in php umbenannt, ist das vielleicht nicht richtig?
Woran liegt es, dass das php nicht geöffnet werden kann?
0

Kommentare

Mr. Krabs
Mr. Krabs29.10.0811:30
Parse error heißt, dass das PHP schonmal ausgeführt wird, aber es nicht korrekt ist. Vllt fehlen Anführungszeichen, kenne den Code ja nicht...
„Deux Strudel!“
0
schmidl29.10.0811:39
Poste mal was in der ersten Zeile (und am besten auch noch gleich in den Nachfolgenden) steht, sonst kann dir hier so schnell bestimmt niemand helfen.

Dein Posting hat fast den gleichen Inhalt wie:

Ich hab ne Webseite erstellt, aber die funktioniert nicht.
Wer kann mir sagen woran es liegt?
„ich auch nicht.“
0
vetterjack
vetterjack29.10.0811:43
Sry! das soll ein Onlinebesucherzähler sein.

<html>

<?PHP>

$daten="besucher.txt";
$time = time();
$ip = getenv("REMOTE_ADDR");
$ablaufzeit = "$time"-"300";
$pruefung = @file($daten);
while (list ($line_num, $line) = @each ($pruefung))
{$zeiten = explode("&&",$line);
if($zeiten[0] <= $ablaufzeit)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$ippruefung = @file($daten);
while (list ($line_num, $line) = @each ($ippruefung))
{$ips = explode("&&",$line);
if($ips[1] == $ip)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$fp = fopen("$daten", "a+");
flock($fp,2);
fputs ($fp, "$time&&$ip&&\n");
flock($fp,3);
fclose ($fp);
$anzahldaten = file($daten);
$anzahl = count($anzahldaten);
echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"1\">$anzahl User online</font>";
?>
</html>
0
Bueno
Bueno29.10.0812:11
So auf die schnelle ist zumindest das <?PHP> falsch, richtig müsste es ohne > sein!

Fängt ja so an

<?php

und hört so auf

?>
0
Mr. Krabs
Mr. Krabs29.10.0812:17
Was @@Bueno gesagt hat sollte richtig sein, der Fehler weist ja auch auf die erste Zeile hin.
„Deux Strudel!“
0
vetterjack
vetterjack29.10.0812:42
gut, öffnen lässt sich jetzt die Seite, aber der Besucherzähler wird nicht angezeigt, ich habe aber irgendwo gelsen,. das man noch irgendetwas in .php umbennen muss?
0
Mr. Krabs
Mr. Krabs29.10.0812:54
vetterjack
gut, öffnen lässt sich jetzt die Seite, aber der Besucherzähler wird nicht angezeigt, ich habe aber irgendwo gelsen,. das man noch irgendetwas in .php umbennen muss?
Hehe genauer geht es nicht?

Schau mal im Quelltext nach, ob dort wo dein PHP-Skript eigentlich steht nun das
<font face="bla">X User Online</font>
steht. Und das font-Tag sollte man auch nicht benutzen...
„Deux Strudel!“
0
vetterjack
vetterjack29.10.0814:42
Mr. Krabs
vetterjack
gut, öffnen lässt sich jetzt die Seite, aber der Besucherzähler wird nicht angezeigt, ich habe aber irgendwo gelsen,. das man noch irgendetwas in .php umbennen muss?
Hehe genauer geht es nicht?

Schau mal im Quelltext nach, ob dort wo dein PHP-Skript eigentlich steht nun das
<font face="bla">X User Online</font>
steht. Und das font-Tag sollte man auch nicht benutzen...

Gefunden habe ich diesen Anschnitt, soll ich dann das ganze
<font face="bla">X User Online</font>
löschen oder nur bestimmte Teile wie z.B. <Font oder Face?
0
void
void29.10.0814:50
du darfst den php code nicht ganz oben unter <html> einfügen, sondern musst ihn im <body> an der stelle positionieren, wo dein zähler erscheinen soll.
„Developer of the Day 11. Februar 2013“
0
void
void29.10.0814:53
ps und das "font" darfst du nicht in dem geparsten script löschen (das hat null wirkung), sondern im php bereich.

änder die letzte zeile des php scripts wie folgt ab:

echo '<span style="font-family:Arial, Helvetica, sans-serif;font-size:8px;">'.$anzahl.' User online</span>';
„Developer of the Day 11. Februar 2013“
0
sierkb29.10.0814:58
void:

... oder ihn am besten ganz sein lassen. Die Zahlen, die so ein Zähler vermittelt stimmen sowieso nicht mit der Realität überein, sie interessieren niemanden wirklich (u.a. deswegen, weil sie eh nicht stimmen), so ein Zähler lässt nicht zuletzt genau deswegen jedem Besucher ein müdes Lächeln übers Gesicht huschen, und jeder halbwegs vernünftige Provider bietet für den Kunden sowieso eine genauere und verlässlichere Besucher-Statistik an als solche komischen Zähler je zu erfassen vermögen.
Ich finde, es gibt geeignetere Methoden, um sich dem Thema PHP und Webseitenerstellung zu nähern als ausgerechnet über so einen per Copy & Paste erworbenen ungenauen Zähler.
Aber jedem Tierchen sein Pläsierchen...
0
vetterjack
vetterjack29.10.0815:01
Der Zähler war ja nur der Anfang, es gibt auch noch Kalender etc...
0
vetterjack
vetterjack29.10.0815:05
geht immer noch nicht:
<html>
<body>

<?PHP
$daten="besucher.txt";
$time = time();
$ip = getenv("REMOTE_ADDR");
$ablaufzeit = "$time"-"300";
$pruefung = @file($daten);
while (list ($line_num, $line) = @each ($pruefung))
{$zeiten = explode("&&",$line);
if($zeiten[0] <= $ablaufzeit)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$ippruefung = @file($daten);
while (list ($line_num, $line) = @each ($ippruefung))
{$ips = explode("&&",$line);
if($ips[1] == $ip)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$fp = fopen("$daten", "a+");
flock($fp,2);
fputs ($fp, "$time&&$ip&&\n");
flock($fp,3);
fclose ($fp);
$anzahldaten = file($daten);
$anzahl = count($anzahldaten);
echo '<span style="font-family:Arial, Helvetica, sans-serif;font-size:8px;">'.$anzahl.' User online</span>';?>
</body>
</html>
0
sierkb29.10.0815:09
void
echo '<span style="font-family:Arial, Helvetica, sans-serif;font-size:8px;">'.$anzahl.' User online</span>';

Wie wär's gleich mit:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
   #counter {font: 8px Arial, Helvetica, sans-serif}
</style>
</head>
<body>
echo '<span id="counter">'.$anzahl.' User online</span>';
</body>
</html>
?

Wäre verständlicher, übersichtlicher und deshalb am Ende sicher auch einfacher zu warten statt Inline-CSS, das man an den betreffenden Stellen erstmal suchen muss, wenn man was verändern will.


P.S.:

vetterjack:
Ich sehe grad', dass das Ganze ein Counter sein soll, wieviele User derzeit online/eingeloggt sind. Meine disbzgl. Kritik von eben ziehe ich deshalb mal zurück, ich dachte es ginge um einen Besucher-Zähler, wieviele Besucher eine Seite schon besucht haben.
Sorry, ich war zu voreilig und entschuldige mich hiermit, zu schnell geurteilt zu haben.



0
Mr. Krabs
Mr. Krabs29.10.0815:13
vetterjack:
Nimm mal die ganzen @ aus dem Quelltext, dann bekommst du auch Fehlermeldungen. Vllt liegt es an den Schreibberechtigungen...
„Deux Strudel!“
0
vetterjack
vetterjack29.10.0815:28
sierkb
void
echo '<span style="font-family:Arial, Helvetica, sans-serif;font-size:8px;">'.$anzahl.' User online</span>';

Wie wär's gleich mit:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
   #counter {font: 8px Arial, Helvetica, sans-serif}
</style>
</head>
<body>
echo '<span id="counter">'.$anzahl.' User online</span>';
</body>
</html>
?

Wäre verständlicher, übersichtlicher und deshalb am Ende sicher auch einfacher zu warten statt Inline-CSS, das man an den betreffenden Stellen erstmal suchen muss, wenn man was verändern will.


P.S.:

vetterjack:
Ich sehe grad', dass das Ganze ein Counter sein soll, wieviele User derzeit online/eingeloggt sind. Meine disbzgl. Kritik von eben ziehe ich deshalb mal zurück, ich dachte es ginge um einen Besucher-Zähler, wieviele Besucher eine Seite schon besucht haben.
Sorry, ich war zu voreilig und entschuldige mich hiermit, zu schnell geurteilt zu haben.



Meinst du, dass ich das Alles bei diesem
echo '<span style="font-family:Arial, Helvetica, sans-serif;font-size:8px;">'.$anzahl.' User online</span>';
eingeben soll, oder muss der php code noch irgendwo dazwischen?
0
Mr. Krabs
Mr. Krabs29.10.0815:40
Okay, ich schlage vor, dass du dir erstmal die Grundlagen von HTML, CSS und PHP draufschaffst. Nichts für ungut, aber wenn man Seiten baut und Code zusammenklickt, von dem man keine Ahnung hat wie der eigentlich funktioniert, kann man es besser sein lassen, bzw es lernen. Das Internet ist ja schon voll genug von diesen Seiten.

Ich sage nicht, dass du ein PHP-Profi werden sollst, aber es ist sehr hilfreich die Grundstruktur zumindest von HTML zu kennen. Wenn du dann noch nachliest wie PHP eigentlich funktioniert, dann kannst du dir deine Fragen quasi selber beantworten
„Deux Strudel!“
0
sierkb29.10.0815:42
Ich gebe Mr. Krabs uneingeschränkt recht. Sogar mit Nachruck.
Erstmal die Basics lernen und verstehen. Und dann erst kommt die Kür.
0
void
void29.10.0816:02
schließe mich dem an (und auch dem kontra-inline-css).

man kann schlecht deine frage umfassend beantworten, ohne bei den grundlegensten dingen anzufangen.
wenn du glaubst, dass du html und css so weit verstehst, dass du weißt, wie du codefragmente aus dem internet korrekt einbindest, kannst du dich php widmen.

was es da zunächst zu verstehen gilt ist die trennung von client/serverseitigen skripten und wie es dazu kommt, dass phpcode "verschwindet", wenn du dir den quellcode im browser anguckst.

wenn du so weit bist, gehört ein besucherzähler zu den ersten beispielen (nach dem hello world), welche du in php verwirklichen kannst. (das schaffst du noch am ersten tag!)
„Developer of the Day 11. Februar 2013“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.