variablenbezeichnung aus 2 variablen

DjGorilla

Grünschnabel
hiho !

also ich hab eine variable

formular sendet $_POST[huhu] = blablabla

$var = 'huhu';

$var wird immer dynamisch verändert !

und diese variable soll mit als bezeichner der 2en gelten

$hallo = $_POST[$var] <- funktioniert natürlich nicht

$hallo = $_POST[huhu]; soll das ergebnis sein ! wobei wie gesagt sich das $var immer ändert !

echo$hallo; = blablabla
 
Zuletzt bearbeitet:
Der erste Fehler ist natürlich, dass Du die Konstante huhu und nicht den String "huhu" verwendest. Oder ist das Absicht? Daher ist ja schonmal nicht genau klar, was Du willst.
Evtl. hilft Dir aber das Konstrukt $$. Zur Erklärung von $$ mal ein Beispiel:
PHP:
<?
$huhu="Hallo";
$var="huhu";
$var2=$$var;
echo $var2;
//Ausgabe ist Hallo
?>

Dieses Konstrukt ist aber mit Vorsicht zu genießen, da Kenner Deines Codes dieses zum Manipulieren aller Variablen Deines Skripts missbrauchen können. Dazu zählen auch Pfadangaben und SQL-Statements, wenn Du sie nur einmal in Teilen in einer Variablen ablegst.

Gruß hpvw
 
ehm net ganz

also ich habe flash spiele die den score mit unterschiedlichen posts senden z.b.

tetris sendet $tetisscore
mario = $marioscore

und diese mag ich natürlich reinholen mit $_POST[tetrisscore], $_POST[marioscore]

ich mache vorher eine sql abfrage wo ich mir aus der db raushole was dieses spiel schickt

$scorevar ist bei tetris dann = tetrisscore

deswegen schrieb ich $_POST[$scorevar]
 
DjGorilla hat gesagt.:
und diese mag ich natürlich reinholen mit $_POST[tetrisscore], $_POST[marioscore]
Fehler! Die fragst Du mit $_POST['tetrisscore'], $_POST['marioscore'] ab. Die Indizes sind Strings und keine Konstanten!

DjGorilla hat gesagt.:
ich mache vorher eine sql abfrage wo ich mir aus der db raushole was dieses spiel schickt

$scorevar ist bei tetris dann = tetrisscore

deswegen schrieb ich $_POST[$scorevar]
Dann gibt es doch kein Problem:
PHP:
//... 
$dasspiel='mario' //oder 'tetris'
$res=mysql_query("SELECT scoreVar FROM spiele WHERE spiel LIKE '"
    .$dasspiel."'");
$row=mysql_fetch_assoc($res);
$score=$_POST[$row['scoreVar']];
//...

Gruß hpvw
 
Zurück