PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Übergabeparameter


Durcairion
2006-04-11, 12:09:28
Hallo,

Ich komme mir gerade vor wie der größte PHP Anfänger :(

Und zwar habe ich gerade mit einem Projekt angefangen.

Also habe ich mir XAMPP in der neuesten Version installiert.

Nun zu dem sehr komischen Problem:



<?php
if(!$node)
{
print($test);
}
else
{
print("unser Angebot");
}
?>


Egal was ich eingebe er geht in den 1. Teil der Schleife.

Bei index.php?node=abc&test=abc gibt er nichts aus.

Kann mir jemand sagen wieso er die Parameterübergabe nicht mehr schluckt?

Liegt das an XAMPP? Denn es geht in mehreren Browsern nicht.

UPDATE: Es liegt wohl an PHP5 das diese Art der Parameterübergabe nicht annimmt.

Zumindest geht der Code auf meinem PHP4 Webserver noch.

Kann man das bei XAMPP mit PHP5 aktivieren das es auch geht?

Danke für die Hilfe im Voraus

Coda
2006-04-11, 12:18:26
$_GET['test']

Register Globals ist in neuen PHP-Versionen zurecht deaktiviert.

Durcairion
2006-04-11, 12:31:53
$_GET['test']

Register Globals ist in neuen PHP-Versionen zurecht deaktiviert.

Hmm... danke! Das wusste ich nicht das dies deaktiviert wurde.

Kann mir jemand ggf. einen guten Webspace Anbieter nennen, welcher PHP5 für OO Programmierung anbietet?

Kinman
2006-04-11, 16:16:43
http://all-inkl.com

mfg Kinman

Durcairion
2006-04-11, 16:45:35
http://all-inkl.com

mfg Kinman

Hm komisch das ich auf meinem bisherigen Space nur PHP4 habe und All-Inkl auf die Supportemail antwortete das eine Umstellung aus technischen Gründen nicht möglich ist :)

PatkIllA
2006-04-11, 17:16:18
Ich hab auf Nachfrage PHP5 bei all-inkl bekommen.

Kinman
2006-04-11, 17:26:40
Ich hab auch PHP5 ohne nachfrage ;)

mfg Kinman

Marscel
2006-04-11, 17:41:31
Ich auch auf Nachfrage, das war eine Sache von ein paar Stunden.

Durcairion
2006-04-11, 18:25:06
Ok! Dann werd ich mal erneut eine Mail schreiben.

Ach kann mir jemand sagen ob die Übergabe von Formulardaten ebenfalls anderst geworden ist :(

Ich habe ein <select name="count">

Aber nach dem Abschicken des Formulares kann ich mit $count und $_GET['count'] nicht auf den Wert, welcher im Drop Down ausgewählt wurde zugreifen.

Kann mir jemand sagen ob sich das auch geändert hat?

PatkIllA
2006-04-11, 18:40:35
Wenn du das nicht explizit auf get Übertragung gesetzt hast, dann ist es im Post.
$_POST müsste das passende Array sein. Es gibt auch noch ein kombiniertes, was die sämtlichen Request Daten enthält. Das heisst dann $_REQUEST.

Durcairion
2006-04-11, 18:46:24
Danke $_POST hat funktioniert.

Gibt es irgendwo eine Liste mit solchen Sachen die mit der Zeit geändert wurden?

Habe nun seit ~4 Monaten kein PHP mehr programmiert und da hat sich ja doch einiges geändert.

PatkIllA
2006-04-11, 18:48:53
das mit GET und POST sind Grundlagen aller HTTP Kommunikation.

Durcairion
2006-04-11, 19:07:15
das mit GET und POST sind Grundlagen aller HTTP Kommunikation.

Also bisher konnte ich in jeder Webseite die ich in PHP geschrieben habe direkt darauf zugreifen.

Also ein ?id=1

war über echo $id;

Und ein input name="id"

als echo $id;

verfügbar.

PatkIllA
2006-04-11, 19:10:50
und das ist in den neuen Versionen sinnvollerweise standardmäßig nicht möglich.
Trotzdem war POST und GET schon vor PHP da und auch in PHP konnte man danach schon immer unterscheiden.

http://en.wikipedia.org/wiki/HTTP#Request_methods

Kinman
2006-04-12, 09:18:20
Also bisher konnte ich in jeder Webseite die ich in PHP geschrieben habe direkt darauf zugreifen.

Also ein ?id=1

war über echo $id;

Und ein input name="id"

als echo $id;

verfügbar.

Der einzige unterschied ist dabei (auch schon bei älteren php versionen) das Allow_Globals in der ini deaktiviert sind. Das ist sinnvoll, du kannst es allerdings mit dem ini_set Befehl im Code rücksetzen.

mfg Kinman

Durcairion
2006-04-12, 12:42:49
Naja ist ja nicht so wild, ich seh es ja ein das es deaktiviert wurde :)

Mir waren nur die anderen 2 Methoden nicht bekannt da es bisher auch immer anderst ging.

Trotzdem danke für die Aufklärung.

/dev/NULL
2006-04-12, 12:50:59
Grundsätzlich ist es besser die neuen Methoden zu nehmen anstatt registergolbals wieder anzuschalten.
http://de2.php.net/register_globals
Ab PHP Version 6 wird es kein Register globals mehr geben und damit mußt Du spätestens dann mit $_POST, $_GET oder $_SESSION auf die Dinger zugreifen. ist vielleicht auch sinnvoll das man sagen kann das einzelne Variablen nur aus der Session kommen sollten.