PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache CGI Post PHP-Variable


Christel
12.04.2005, 20:08:19
Hallo ich bin Christel und neu hier. Guten Tag!

Ich habe ein Problem, das ich alleine nicht lösen kann.

Windows XP, Apache 2.0.47, PHP 4.3.3.3, MySQL 4

MySQL Insert über PHP direkt läuft einwandfrei. Gehe ich jedoch über ein Formular, wird die Variable nicht übergeben. Das Ergebnis ist bei allen Scripten, die zum Fachbuch gehören, gleich.

form method="post" action="php_.....php"
input type="text" name "Dateninhalt"

php-Variable '$Dateninhalt'

httpd.conf:

Document root "htdocs" Options ExecCGI aktiviert
ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache2/cgi-bin"

ScriptAlias /php "C:/php" (Pfad ist korrekt)
AddType application /x-httpd-php .php .php4 .php3 .phtml
Action application /x-httpd-php "/php/php.exe" (Pfad ist korrekt)

funktioniert mit und ohne folgende Angaben im Container Directory nicht
<Directory "C:/php">
Allow Override None
Options ExecCGI
SetHandler cgi-script
Allow from all
</Directory>

Zusätzlich php als Modul für Windows geladen mit Kopieren der entsprechenden Dateien und Einfügen der Zeilen in httpd.conf
LoadModule php4_module (C:/Programme/Apache Group/......./bin/php4apache2.dll" (Angaben korrekt)
LoadFile "C:/Programme/........../bin/php4ts.dll (Angaben korrekt)
Leider ohne Ergebnis.

Ich bin totaler Neuling auf diesem Gebiet und für jede Unterstützung sehr dankbar.

Gruß Christel

xabbuh
13.04.2005, 08:32:46
Wie sieht denn die Einstellung in der php.ini für register_globals aus?

Christel
13.04.2005, 11:48:21
Hallo Xabbuh, vielen Dank für die Frage.

register_globals = off
register_argc_argv = on
post_max_size = 8M

Könnte die Problemlösung hier zu finden sein?
Einen schönen Tag, Christel

xabbuh
13.04.2005, 12:04:16
Wenn du Daten über ein Formular verschickst, darfst du bei ausgeschaltetem register_globals nicht auf $var zugreifen, sondern musst das entsprechende superglobale Array (http://www.php.net/manual/de/language.variables.predefined.php#language.variables.superglobals) nutzen.

Christel
13.04.2005, 12:15:47
Vielen Dank Xabbuh! Sie sind ein Schatz!

Ich habe rigister_globals = On gesetzt. Die Variable wurde übernommen. Da ich den Server nur lokal verwende, dürfte das kein Sicherheitsproblem darstellen. Zudem habe ich durch Deinen Hinweis viel gelernt. Mein Fachbuch hat da eine ziemliche Lücke.

Viele Grüße
Christel

xabbuh
13.04.2005, 12:42:44
Vielen Dank Xabbuh! Sie sind ein Schatz!
Meinetwegen darf hier im Forum gerne geduzt werden. :-)

Ich habe rigister_globals = On gesetzt. [...] Da ich den Server nur lokal verwende, dürfte das kein Sicherheitsproblem darstellen.
Das ist die denkbar schlechteste Methode. Zwar wird diese Einstellung vermutlich wirklich keine Sicherheitsprobleme auf einem nur lokal genutzten Webserver aufwerfen, allerdings lernst du so auch nicht den Umgang mit deaktiviertem register_globals (was mittlerweile Standard ist) und wirst somit bei fast jedem anderen Webspace auf gravierende Probleme stoßen, mal ganz davon abgesehen, dass deine Scripte so nur auf den wenigsten Servern laufen werden.

Mein Fachbuch hat da eine ziemliche Lücke.
Gedruckte Bücher hinken sehr oft dem aktuellen Stand hinterher, da die Produktionszeit einfach zu langsam ist.

Christel
13.04.2005, 17:58:09
Hallo Xabbuh,

nochmals vielen Dank für Deinen Hinweis. Daran hätte ich natürlich im Moment auch wieder nicht gedacht, dass meine Scripte dann auf anderen Servern nicht laufen. Ich werde mich schlau machen! Danke für das "Du". Ich fühle mich noch etwas fremd in einer so honorigen Gesellschaft von Fachexperten.

Viele Grüße
Christel

xabbuh
13.04.2005, 20:45:36
In dem Zusammenhang kann ich dir auch das Tutorial (http://tut.php-q.net) empfehlen. Relativ aktuell und (fast) auf dem neuesten Stand.

Christel
14.04.2005, 08:55:32
Guten Morgen Xabbuh,

Deine Hinweise sind spitze und helfen mir enorm weiter. Ich kann Dank Deiner Links auf nostalgische Fachbücher verzichten.

Nochmals vielen Dank für Deine schnelle und umfangreiche Unterstützung in meinem Bemühen, mich in Servertechnik und Datenbanken einzuarbeiten.

Einen schönen Tag und viele Grüße
Christel