# PHP Switch funktion wird Ignoriert



## warCUBE (28. April 2005)

Hallo,

Ich habe ein Problem, das sich so äußert, dass ich eine PHP Funktion habe, die aber nicht unter meinem SuSE System läuft.

Folgender code:

```
switch ($action){

default:
?>

<a href="phpinfo.php?action=hallo">link auf case 2</a>

<?
break;


case "hallo":

echo "hier case 2";

break;

}//switch
```

Auf meinem Internetserver läuft sie.... Aber den Server, den ich hier habe leider nicht.
Folgende Daten zum Server:
SuSE 9.2 
http Server ist von SuSE mitgeliefert und Install.
MySQL Läuft auch
phpMyAdmin ist Install. und läuft!

Ich nehme an, dass der Fehler von entweder SuSE oder von dem http Server liegt....

Hat jemand eine Idee?

Danke 

Christian.


----------



## Dennis Wronka (28. April 2005)

Moeglicherweise ist bei Deinem Provider in PHP die Option register_globals=on und bei der Suse ist register_globals=off

Mit dem folgenden Script kannst Du das ueberpruefen.

registerglobalscheck.php

```
<?
if (!$_GET["test"])
	{
		header("Location:registerglobalscheck.php?test=1");
	}
?>
<html>
<body>
<?
if ($_GET["test"])
	{
		if ($test)
			{
				printf("register_globals=on<br>");
			}
		else
			{
				printf("register_globals=off<br>");
			}
	}
?>
<a href="registerglobalscheck.php">Check state of register_globals</a>
</body>
</html>
```


----------



## warCUBE (28. April 2005)

Ja der Register-globals ist off - beim Server weiss ich es jetzt nicht....


wie kann ich den denn auf on setzen ?

LG
Chris


----------



## Dennis Wronka (28. April 2005)

In der php.ini
Oder Du programmierst so, dass es auch mit register_globals=off funktioniert.
Das waere der besser Weg.
Dazu musst Du Variablen die mit GET uebergeben werden, also z.B. im URL oder bei Forms mit method="get", mit $_GET["variable"] anstatt mit $variable auslesen und Variablen die mit POST uebergeben werden, aus Forms mit method="post", mit $_POST["variable"].

Der Vorteil daran ist, dass dies immer funktioniert, egal ob register_globals on oder off ist.
Das Problem bei der Art wie Du's jetzt programmierst hast Du festgestellt. Das Script kann in seiner Funktion behindert werden wenn es auf einen anderen Server umzieht.


----------

