PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler in Scripten



stefan.bautz
09-09-2003, 13:52
Hallo zusammen,

habe ein paar Scripte gebastelt, die erst sehr gut funktionierten aber nach dem zusammenfassen in 2 Dateien, gehen Sie auf einmal nicht mehr und ich finde die Fehler nicht... :mad:

Im Script Index.php erscheint folgender

Parse error: parse error, unexpected '.' in E:\Web\htdocs\scripts\index.php on line 57

und im Script Upload.php folgender

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in E:\Web\htdocs\scripts\upload.php on line 35

kann mir einer sagen wo die Fehler sind? :confused: :confused:

Die Scripte sind im Anhang

Danke schon mal im Vorraus

Stefan

elrond
09-09-2003, 14:04
??? Anhang ???

pitu
09-09-2003, 14:29
Nun, so auf anhieb kann ich es dir nicht sagen, aber:

Entweder ein " vergessen, oder zuviel
ein ; vergessen
oder in } vergessen (zuviel ?)

und zwar wahrscheinlich VOr der Zeile 35

Ansonsten gilt die Frage : Anhang, an die ich mich anschliessen moechte ;)

gruss,
pitu

stefan.bautz
09-09-2003, 14:30
scheiss technik... :rolleyes:

entweder bin ich zu blöd was hochzuladen oder es geht nicht..

habs hierhin (http://www.sb-c.de/scripts.zip) geladen

mfg
stefan

phate
09-09-2003, 15:04
index.php, Zeile 57
echo "<form action="../scripts/index.php" method="POST">"; Du hast die inneren Gänsefüsschen nicht escaped. Gilt übrigens auch für folgende Zeilen.

upload.php, Zeile 35
echo "<form action=".$PHP_SELF." enctype=\"multipart/form-data\" method="POST">"; Hier ist zwar ansatzweise was zu erkennen, aber konsequent durchgehalten hast Du es nicht. ;)

Statische Strings würde ich in einfach Hochkommatas setzen, dann ersparst Du Dir das ständige Escapen (aka Leaning-Toothpick-Syndrom).

stefan.bautz
09-09-2003, 15:14
:confused:
so hab ich's noch

echo "<form action="../scripts/index.php" method="POST">";
und so sollte ichs machen? fang grad erst mit php an... :(

echo "<form action="../scripts/index.php\" method="POST\">";

oder wie?

@phate, da wo ich's so gemacht hab, ist der code nicht von mir sondern von nem kollegen.. der ist aber im moment im urlaub im sonnigen mallorca... :)

pitu
09-09-2003, 15:21
also, mit einem echo "blah blah blah"

gibst du irgendetwas aus, was zwischen den Anfuehrungszeichen steht.

Wenn du nun hast echo "blah "blubber" blah", woher soll nun der Computer wissen, das die Anfuehrungszeichen von um Blubber eine Ausgabe sind.

Fuer den computer ist das so:

echo "blah "blubber" blah"

Daher musst dem dem Computer mitteilen, das die inneren Anfuehriungzeichen zur Ausgabe gehoeren, und nicht zum echo-befehl:

echo "blah \"blubber\" blah"

stefan.bautz
09-09-2003, 15:22
ok, dummer anfängfehler.. jetzt weiss ich wie ich's machen muss.

jetzt klappt alles...

kann mir nur noch eben einer erklären wie ich $PHP_SELF einsetzen muss?
gibts da was zu beachten?

vielen dank
stefan

Gaert
09-09-2003, 16:00
Hallo!

Da du ein Anfänger bist, werd ich dir gleich mal erklären wie du PHP richtig lernst...

Als erstes stellst du mal register_globals in deiner php.ini auf off!

Und dann fängst du mal an die Superglobalen Variablen zu benutzen (es sei denn du hast ne PHP Version die älter ist als 4.1 - in diesem Fall würd ich als allererstes zu einem Update raten).

Lektürenhilfe:
http://de3.php.net/register_globals
http://de3.php.net/release_4_1_0.php

Zu $PHP_SELF:
$PHP_SELF wäre somit dann $_SERVER['PHP_SELF']

stefan.bautz
09-09-2003, 16:45
Also auf meinem PC ist

Apache/2.0.47 (Win32) mod_perl/1.99_10-dev Perl/v5.8.0 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.3RC2-dev


Als erstes stellst du mal register_globals in deiner php.ini auf off!

hab ich gerade gemacht, aber ich muss gleich noch mal prüfen ob mein provider das auch hat...

aber was heisst Superglobale Variablen? sind die auf dem ganzen server gültig oder wie muss ich das verstehen? mit der doku unter den links komm ich irgendwie nicht klar.. die reden wieder viel zu viel um den heissen brei rum.. :rolleyes:

Gaert
09-09-2003, 17:01
Ob dein Provider das auf off hat brauchst du nicht zu checken - er kanns ruhig an haben, hauptsache deine Skripte sind auf Off ausgelegt.

Superglobal bedeutet, dass die Variablen überall in deinem Skript verfügbar sind, ohne dass du sie global deklarieren musst.

Die Arrays werden automatisch mit den entsprechenden Werten gefüllt...

$_SERVER[] enthält alle servervariablen
$_GET[] alle Variablen die per get, also per url übergeben werden
$_POST[] alle Variablen die per POST / Formular übergeben werden
$_SESSION[] alle Session Variablen
$_COOKIE[] alle Cookie Variablen
usw usw...

Lies dir die Seite nochmal genau durch... sie zeigen dir wie man die Variablen verwendet, und wie du sichere PHP Skripte schreibst...