Hi,
ich möchte mich *etwas* mal mit PHP und so beschäftigen, habe hier ein Beispielscript, das wohl so richtig ist:
(der Inhalt ist völlig belanglos)
---schnipp--- <?php if ($HTTP_POST_VARS["submit"] == "Absenden") { if ($HTTP_POST_VARS["login"] == "foo" && $HTTP_POST_VARS["password"] == "bar") { header("Location: http://127.0.0.1/danke.php3"); exit; } else { echo "<P>Na, oops - wat geht? - und nochmal!"; } }
?>
<FORM action=<?php print $PHP_SELF?> method="post"> <P>Login: <INPUT type="text" name="login"> <P>Pass: <INPUT type="password" name="password"> <P><INPUT type="submit" name="submit" value="Absenden"> </FORM>
---schnapp---
dummerweise liefert es: (bei foo + bar)
Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text) in /usr/local/httpd/htdocs/php/passwd.php3 on line 7
Offensichtlich kommt also noch eine Ausgabe vor der Header-Location-Ausgabe in Zeile 7 - nur woher?
Hier läuft noch der Original- Indianer und PHP3 der SuSE 6.4 - ist ein Update fällig?
Gibt es eine Datei, die _vor_ der Ausgabe meines Scriptes gesendet wird und zu den Problemen führt?
Andreas
Hallo!
Offensichtlich kommt also noch eine Ausgabe vor der Header-Location-Ausgabe in Zeile 7 - nur woher? Gibt es eine Datei, die _vor_ der Ausgabe meines Scriptes gesendet wird und zu den Problemen führt?
Wahrscheinlich hast Du vor dem "<?php" eine Leerzeile die damit als normaler HTML Output gilt...
Gruß, Eric
am Thu, dem 02.11.2000, um 18:36:12 +0100 mailte Eric Schaefer folgendes:
Hallo!
Offensichtlich kommt also noch eine Ausgabe vor der Header-Location-Ausgabe in Zeile 7 - nur woher? Gibt es eine Datei, die _vor_ der Ausgabe meines Scriptes gesendet wird und zu den Problemen führt?
Wahrscheinlich hast Du vor dem "<?php" eine Leerzeile die damit als normaler HTML Output gilt...
nein, definitiv nicht. Ich habe das gesamte Script gemailt.
Andreas
Hallo!
nein, definitiv nicht. Ich habe das gesamte Script gemailt.
Wenn ich das Skript so übernehme (ohne einleitende Leerzeile) funktioniert das problemlos...
Probier mal: http://rudi.urz.tu-dresden.de/~es5/test.php3 (die Weiterleitung habe mit einer echten URL versehen)
Geht problemlos. http://rudi.urz.tu-dresden.de/~es5/test.txt enthält den Source.
Gruß, Eric
am Thu, dem 02.11.2000, um 19:20:38 +0100 mailte Eric Schaefer folgendes:
Hallo!
nein, definitiv nicht. Ich habe das gesamte Script gemailt.
Wenn ich das Skript so übernehme (ohne einleitende Leerzeile) funktioniert das problemlos...
Probier mal: http://rudi.urz.tu-dresden.de/~es5/test.php3 (die Weiterleitung habe mit einer echten URL versehen)
Geht problemlos. http://rudi.urz.tu-dresden.de/~es5/test.txt enthält den Source.
vielen Dank erst einmal, ja, das klappt.
Also, ich ziehe mir jetzt PHP und Apache.
vielleicht bringe ich das dann auch gleich auf die LUG-CD ;-)
Andreas
am Thu, dem 02.11.2000, um 20:00:04 +0100 mailte Eric Schaefer folgendes:
Hi!
vielen Dank erst einmal, ja, das klappt.
Das ist ein typischer Anfängerfehler. Ich hab mich da auch mal totgesucht...
was soll ich jetzt davon halten?
hier tut ein Original Indianer und PHP 3.sonstwas. PHP 4.0.2 ist schon gesaugt, kommt mit auf die LUG-CD. Das hast Du nun davon ;-)
Wo kann ich noch suchen?
Andreas
am Thu, dem 02.11.2000, um 20:06:17 +0100 mailte Andreas Kretschmer folgendes:
am Thu, dem 02.11.2000, um 20:00:04 +0100 mailte Eric Schaefer folgendes:
hier tut ein Original Indianer und PHP 3.sonstwas. PHP 4.0.2 ist schon gesaugt, kommt mit auf die LUG-CD. Das hast Du nun davon ;-)
sorry für die, die sie schon haben. Ist sie angekommen?
Andreas
was soll ich jetzt davon halten?
hier tut ein Original Indianer und PHP 3.sonstwas. PHP 4.0.2 ist schon gesaugt, kommt mit auf die LUG-CD. Das hast Du nun davon ;-)
Wo kann ich noch suchen?
Ach so, ich dachte das problem wäre behoben...
Also ich hab das mit apache 1.3.6 php 3.X probiert. Falls das wirklich an apache/php liegt, dann ist das sehr merkwürdig... Laß doch mal deine apache config rüberwachsen (per PM) und ich schaus mir mal an...
Gruß, Eric
Am Don den 02 Nov 2000 um 08:06:17 +0100 schrieb Andreas Kretschmer:
am Thu, dem 02.11.2000, um 20:00:04 +0100 mailte Eric Schaefer folgendes:
hier tut ein Original Indianer und PHP 3.sonstwas. PHP 4.0.2 ist schon gesaugt, kommt mit auf die LUG-CD. Das hast Du nun davon ;-)
Ich muss dich enttaeuschen, du hast alte Quellen gezogen:
"Oct 11, 2000. Version 4.0.3 includes several security-oriented fixes and enhancements, as well as several new features and bug fixes. It is strongly recommended for all users of PHP to upgrade to this version."
Mich hat das etwas genervt, da ich ne Menge Zeit in das Kompilieren auf meiner NetBSD m68k Kiste gebraucht habe (Makefiles mussten etwas editiert werden). Leider vergeht auf so einer Kiste zwischen make und error 1 immer mindestens eine halbe Stunde ;-( Hat jemand praktische Erfahrungen mit cross compilern?
andre
Am Don, 02 Nov 2000 schrieb Andre Schulze:
Mich hat das etwas genervt, da ich ne Menge Zeit in das Kompilieren auf meiner NetBSD m68k Kiste gebraucht habe (Makefiles mussten etwas editiert werden). Leider vergeht auf so einer Kiste zwischen make und error 1 immer mindestens eine halbe Stunde ;-( Hat jemand praktische Erfahrungen mit cross compilern?
Nee, aber das ist ganz einfach ;-)
Du installierst die binutils mit entsprechenden Target, und sorgst dann dafür das der gcc, auch mit entsprechendem Target, die beim compilieren auch nimmt.
Hier die CrossGCC-FAQ : http://www.objsw.com/CrossGCC/
Bye, Stephan
On Thu, Nov 02, 2000 at 10:50:01PM +0100, Stephan Goetter wrote:
Nee, aber das ist ganz einfach ;-)
Du installierst die binutils mit entsprechenden Target, und sorgst dann dafür das der gcc, auch mit entsprechendem Target, die beim compilieren auch nimmt.
Hier die CrossGCC-FAQ : http://www.objsw.com/CrossGCC/
Naja. So einfach ist es in der Praxis eher nicht. Man braucht fast immer noch irgendwelche libs oder includes vom Zielssytem. Wenn beides Linux ist, sollten keine groesseren Probleme auftauchen. Da Abnre aber fuer eine eher ulkige Platform (netbsd-hp300 also 68k) bauene will, braucht er wohl mindestens noch die newlib. In einem Lininuxmagazin war mal auf die Tippeltappeltour beschrieben, wie man eine X-gcc von i368-Linux -->m68k-linux baut. Den könnte man als eventuell als Vorlage nehmen.
Reinhard
Am Fri den 03 Nov 2000 um 07:33:30AM +0100 schrieb Reinhard Foerster:
On Thu, Nov 02, 2000 at 10:50:01PM +0100, Stephan Goetter wrote:
Nee, aber das ist ganz einfach ;-)
Den Cross Compiler zu bauen, ist sicherlich nicht schwer. Das war auch nicht die Frage, sondern die Erfahrung damit ;-)
Hier die CrossGCC-FAQ : http://www.objsw.com/CrossGCC/
Naja. So einfach ist es in der Praxis eher nicht. Man braucht fast immer noch irgendwelche libs oder includes vom Zielssytem. Wenn beides Linux
Yup, das meinte ich. Einen kernel mit einem Cross Compilter zu bauen ist sicherlich noch recht einfach, da der gegen keine libs gelinkt werden muss und sich selbst enthaelt. Bei Sachen wie apache, perl, mysql sieht es da schon ganz anders aus.
ist, sollten keine groesseren Probleme auftauchen. Da Abnre aber fuer eine eher ulkige Platform (netbsd-hp300 also 68k) bauene will, braucht er wohl mindestens noch die newlib. In einem Lininuxmagazin war mal auf die
Das ist die naechste Frage: kann man dynmaisch gelinkte binaries erzeugen? Ich kann ja immerhin das filesystem des Ziel hosts mounten. Hilft das was? In der Anleitung steht, ich muss die Libraries auch Cross compilieren. Wenn ich das fuer jede machen muss nimmt das viel Platz auf dem Compile Rechner weg.
Tippeltappeltour beschrieben, wie man eine X-gcc von i368-Linux -->m68k-linux baut. Den könnte man als eventuell als Vorlage nehmen.
Ich probiere mal die CrossGCC Anleitung aus. Idealerweise koennte ich die NetBSD Ports Collection auf einen fremden Host kompilieren. Das ist aber sicherlich ein viel zu hoch gestecktes Ziel. Aber die Idee finde ich schon sehr verlockend, da es die Zeit zum bauen der binaries auf nahezu Null geht ;-) Leider gehen die meisten Anleitungen, die ich gefunden habe davon aus, das ich nur fuer ein embedded system was baue.
andre
am Thu, dem 02.11.2000, um 18:36:12 +0100 mailte Eric Schaefer folgendes:
Hallo!
Offensichtlich kommt also noch eine Ausgabe vor der Header-Location-Ausgabe in Zeile 7 - nur woher? Gibt es eine Datei, die _vor_ der Ausgabe meines Scriptes gesendet wird und zu den Problemen führt?
Wahrscheinlich hast Du vor dem "<?php" eine Leerzeile die damit als normaler HTML Output gilt...
es lag am PHP, ich habe nun PHP4 gesaugt (wurde wohl auch Zeit ;-) ), nun scheint es zu gehen, zumindest läuft das Script.
Zur Strafe für alle, die mir geholfen haben, gibt es nun PHP-4.0.2 und Indianer, Ähm, sorry, Apache 1.3.14 mit auf der LUG-CD ;-)
(letzterer noch nicht bei mir installiert)
Andreas
On Thu, Nov 02, 2000 at 06:32:11PM +0100, Andreas Kretschmer wrote:
Hi, (der Inhalt ist völlig belanglos) $HTTP_POST_VARS["password"] == "bar") { header("Location: http://127.0.0.1/danke.php3");
Ein HTTP-Header ist das.
Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text) in /usr/local/httpd/htdocs/php/passwd.php3 on line 7
Ich würde mal sagen, daß Dein Indianer die Seite erstmal wie eine HTML-Seite betrachtet, also selbst die passenden Header (Content-Type: text/html usw. ...) sendet, anschließend die Leerzeile und dann das, was er in der Datei gefunden hat (wenn nötig, noch durch PHP gefiltert ...)
Welche Action ist in Deinem Indianer mit .php3 verbunden?
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
am Thu, dem 02.11.2000, um 19:18:49 +0100 mailte Heiko Schlittermann folgendes:
On Thu, Nov 02, 2000 at 06:32:11PM +0100, Andreas Kretschmer wrote:
Ich würde mal sagen, daß Dein Indianer die Seite erstmal wie eine HTML-Seite betrachtet, also selbst die passenden Header (Content-Type: text/html usw. ...) sendet, anschließend die Leerzeile und dann das, was er in der Datei gefunden hat (wenn nötig, noch durch PHP gefiltert ...)
Welche Action ist in Deinem Indianer mit .php3 verbunden?
Danke auch Dir. Wie schon oben gesagt, PHP4 gesaugt und installiert, es geht. Du hast wohl mit Deinem 'SuSE macht Dumm' Recht ... denn das war noch der Originalzustand der SuSE 6.4, oder gar noch älter ?
Andreas
lug-dd@mailman.schlittermann.de