$_GET Use of undefined constant

aherzog

Erfahrenes Mitglied
Hallo miteinander.

Vor lauter suchen sehe ich den Fehler nicht.
Könnt ihr mir helfen was ich hier falsch mache?

Mein Problem:
Da ich in nächster Zeit viel im Zug fahre habe ich mein aktuelles Webprojekt auf meinen Laptop verschoben wo ich alles offline mit XAMP weiter bearbeiten kann.

Auf der Webseite die auf dem Provider eingerichtet ist, funktioniert alles.

In XAMP bekomme ich bei $_GET Variablen folgende Fehlermeldung:
Notice: Use of undefined constant action - assumed 'action' in C:\xampp\htdocs\Projekte\fvw_verwaltung\mitglieder.php on line 53

Der einzige Unterschied ist die PHP-Version.
Beim Provider 4.4.9 / In XAMP 5.5.6

Was muss ich ändern in der aktuelleren Version?


Hier der Code der Seite:
PHP:
<?php
	    //wenn druck angeklickt dann 1 oder 0 in DB schreiben.
		if ($_GET[action] == 'd')
		{
			$sql2 = mysql_query("SELECT druck FROM adressen WHERE id=".$_GET[id]);
			while($data2 = mysql_fetch_row($sql2))
			{
				if ($data2[0] == 1)
					$sql_data_update = "UPDATE adressen SET druck = 0 WHERE id=".$_GET[id];
				else
					$sql_data_update = "UPDATE adressen SET druck = 1 WHERE id=".$_GET[id];
				$qry_data_update = mysql_query($sql_data_update) or die(mysql_error());
			}
		}
		//wenn vorstand angeklickt dann 1 oder 0 in DB schreiben.
		if ($_GET[action] == 'v')
		{
			$sql2 = mysql_query("SELECT vorstand FROM adressen WHERE id=".$_GET[id]);
			while($data2 = mysql_fetch_row($sql2))
			{
				if ($data2[0] == 1)
					$sql_data_update = "UPDATE adressen SET vorstand = 0 WHERE id=".$_GET[id];
				else
					$sql_data_update = "UPDATE adressen SET vorstand = 1 WHERE id=".$_GET[id];
				$qry_data_update = mysql_query($sql_data_update) or die(mysql_error());
			}
		}
		//wenn löschen angeklickt dann in DB löschen.
		if ($_GET[action] == 'del')
			mysql_query("DELETE FROM adressen WHERE id=".$_GET[id]);

		// Adressdaten auslesen
		$bgcol = 0;
		$sql = mysql_query("SELECT * FROM adressen WHERE 1=1 ORDER BY name");
        $counter = 0;
		while($data = mysql_fetch_row($sql))
        {
			if ($data[10] == 1)
				$data[10] = "<a href='mitglieder.php?id=".$data[0]."&action=v'><img src='bilder/x.png' width='15'>";
			else
				$data[10] = "<a href='mitglieder.php?id=".$data[0]."&action=v'><img src='bilder/x_leer.png' width='15'>";
			
			if ($data[11] == 1)
				$data[11] = "<a href='mitglieder.php?id=".$data[0]."&action=d'><img src='bilder/x.png' width='15'>";
			else
				$data[11] = "<a href='mitglieder.php?id=".$data[0]."&action=d'><img src='bilder/x_leer.png' width='15'>";
			
			// wechsel bgcolor
			if ($bgcol == 1)
			{
				$bgcolor = '#e3e3e3';
				$bgcol = 0;
			}
			elseif ($bgcol == 0)
			{
				$bgcolor = '#cecece';
				$bgcol = 1;
			}
			$counter = $counter +1;
			echo "<tr bgcolor=".$bgcolor."><td><a onclick=edit('".$data[0]."') href='#'><img src='bilder/edit.png'></td><td><a href='mitglieder.php?id=".$data[0]."&action=del' onClick='return confirm(\"Wirklich ".$data[3]." ".$data[2]." löschen?\")'><img src='bilder/loeschen.png' width='15'></td><td>".$counter."</td><td>".$data[1]."</a></td><td>".$data[3]."</td><td>".$data[2]."</td><td>".$data[4]."</td><td>".$data[5]."</td><td>".$data[6]."</td><td>".$data[7]."</td><td>".$data[8]."</td><td>".$data[9]."</td><td><center>".$data[10]."</center></td><td><center>".$data[11]."</center></td></tr>";
		}
		
        ?>

Vielen Dank für die Hilfe.
Andy
 
Hallo,
dann versuch es doch mal mit $_GET["action"] in Zeile 53, wenn die Konstante action unbekannt ist.
 
Besser wäre noch: $_GET['action']....bei " sucht der Parser noch stellen, die geparst werden könnten, bei ' wird es ohne zu suchen gemacht ;)
 
Die Vorposter haben schon alles gesagt...
Davon abgesehen, wenn mein Provider mir noch PHP 4 anbieten würde, dann hätte ich schon längst den Provider gewechselt...
 
ohh man ohh man.
das ist jetzt gerade peinlich..

hab den Fehler an ganz anderer Stelle gesucht.
nach so vielen php-Jahren sollte ich das Wissen.

Naja, da waren woll wirklich Tomaten auf den Augen :-)

Auf jeden Fall Danke, es hat funktioniert.

@Maniac
Mein Provider bietet als Standart noch 4.x.x an.
Ich kann aber die Version selber auswählen.
Das hab ich bei dieser Site noch nicht gemacht.

Andy
 
Na, nach Jahrelanger PHP-Erfahrung sieht der Code aber nicht aus ;)

$_GET-Vars werden ungeprüft in der DB abgefragt
Bei den DB-Results werden die Keys, statt der Vars genommen ($data[0] (Änderst du irgendwann mal die Tabelle, darfst du alles im Script fixen, weil $data[0] plötzlich ein anderen Wert bekommt
 
Zurück