In variable gespeicherte Variable ausgeben PHP

Jehova1

Jehova1

Routinier
Hallo,
gegenben sind eine variable $var1 mit dem wert "$var2" und eine Variable $var2 mit dem wert "Textbeispiel" also
<?php $var2 = "Textbeispiel"; $var1 = "$var2"; ?>
Jetzt möchte ich den Inhalt der gespeicherten Variable ($var2) ausgeben indem ich irgendwie
echo $var1;
schreibe. Im normalfall wird jetzt "$var2" ausgegeben, wie muss ich es schreiben, damit "Textbeispiel" ausgegeben wird?
Tut mir leid, wenn das ein bisschen komplizierter als nötig ist, aber es muss über die Speicherung von "Textbeispiel" in der Variable "$var2" geschehen.
Hier mein Anwendungszweck: in einer Datei sind nur variablen gespeichert
Diese wird ins Hauptdokument included und nun soll der benutzer nach der eingabe einer beliebigen Variable in der speicherdatei den dazugehörigen Wert ausgegeben bekommen.
[Ich fahre morgen in den Urlaub, deshalb werde ich wohl ab da nicht mehr antworten können.]
Danke schonmal im Voraus, Jehova1
 
Im Normalfall wird dann nicht $var2 ausgegeben, sondern der Inhalt von $var2.
Code:
kolibri:/www/htdocs/admin# cat test.php
<?
        $var2 = "Textbeispiel\n";
        $var1 = $var2;
        print "$var1";
?>

kolibri:/www/htdocs/admin# php test.php
Textbeispiel
Und wo liegt das Problem?

PS: Einen boesen Kommentar zu deinem Nick erspare ich mir mal. Nur soviel: Du koenntest damit bei einigen Leuten ziemlich anecken.
 
Zuletzt bearbeitet:
Nene, da hab ich mich wohl nich verständlich ausgedrückt, sry.
Das sollte so aussehen:
<?php
$var2 = "Textbeispiel";
$var1 = "var2"; // Also als string den Namen von ner anderen Variable
echo $var1; //Oder wie auch immer man das dann ausdrücken muss damit der Wert von $var2 ausgegeben wird
?>
Danke für die Antwort
 
IMHO geht das nicht.

Wenn du sowas wirklich machen willst solltest du dein Design überdenken.

Exportiere deine Variablen vernünftig, weil das was du machen willst ist ziemlich Murks.
 
Naja schade, werd sehen was sich da machen lässt.
 
Mir waere auch unklar, wozu das gut sein sollte. *anmerk*
 
@ Jehova1

Ich kenne mich mit php nicht aus, aber ich vermute mal, dass Du Referenzen (in Perl) oder auch Pointer (in C) suchst. In Perl würde es so aussehen:

Code:
$var2 = "Textbeispiel";
$var1 = \$var2;
echo $$var1;

Gruss, Xanti
 
Danke für die Antworten, aber mit perl kann ich leider garnichts anfangen :think:
Also ich erklär nochmal wie ichs mir gedacht habe:
Der User soll erst eine Variable per input selbst eingeben und falls diese gesetzt wurde soll der wert von der Variablen ausgegeben werden. Bisher sah es so aus:

Datei1.php
<?php $var2="Textbeispiel"; ?>

Datei2.php
<?php
include("./datei1.php");
$var1 = $_POST['die_vorher_vom_user_bestimmte_variable_aus_einem_input_also_zb_dollar_var2_als_string'];
echo $var1;
 
Zuletzt bearbeitet:
Wie, soll der User nun Variablennamen und Variableninhalt eingeben können (warum man das machen sollte ist mir sowas von schleierhaft) oder nur den Variableninhalt mit dem du in deinem Script eine Variable von dir belegst?
 
@ Jehova1

Versuch mal folgendes als Datei2.php:

Code:
<?php
include("./datei1.php");
$var1 = ${$_POST['die_vorher_vom_user_bestimmte_variable_aus_einem_ input_also_zb_dollar_var2_als_string']};
echo $var1;

In perl funktionierts so. Und ein bisschen Ähnlichkeit gibts schon zwischen php und perl.

Als Input var2 eingeben, also ohne $. Wichtig ist ausserdem, dass kein <cr> hinten dran hängt.

Gruss, Xanti
 
Zuletzt bearbeitet:
So kommen wir dem ganzen schon näher glaub ich aber php kann mit dem code leider nix anfangen, $var1 wird dann immer mit nem leeren wert besetzt. (Immerhin isses kein fehler) Vielleicht gibts den code auch für php !?

@supersucker Ich will dem User (hier admin) die möglichkeit geben, alle gesetzten Variablen abzufragen also wenn der User zb wissen will was die aktuelle Version der Seite (is ein teil eines simplen cms) wissen will und diese in ner variablen gespeichert is sollte er einfach var $version eingeben müssen und sollte dann eben den wert dieser Variablen ausgegeben bekommen. Vielleicht kennt ja jemand n anderen weg, das zu erreichen.
 
Was gibt

Code:
<?php
$var2 = "123";
$test = "var2";
$var1 = ${$test};
echo $var1;
?>

aus?
 
123 !
Seltsam
Naja, php.net unter "variable variablen" behauptet auch, dass sowohl deine vorher gezeigte methode ${$var} als auch die methode $$ funktionieren.
Seltsam, dass das vorher nicht ging. Tut mir leid, dass ich euch damit so auf die Nerven gegangen bin und danke für die Antwort, ich hoffe, dass ich den Rest alleine schaff.
mfg Jehova1

Edit: ah war nur ein doofer schreibfehler. Man sollte übrigens " in den {} setzen. Danke nochmal ;)
 
Zuletzt bearbeitet:
Euch ist klar dass ihr hier Sicherheitslücken noch und nöcher Produziert oder?

Wenn ein Kind mit Dynamit spielt is es keine Gute Idee ihm ne Packung StreichHölzer zu schenken.

PHP:
<?php

$Password="HolderDiePolter";
$VarName = "Password";
// "" Klammern sind nicht nötig darfst nur keine ' ' Singles Quotes nehmen
echo ${$VarName};

// Btw : Das geht auch ganz ohne {}
echo $$VarName;

?>

Nur mal son kleines Beispiel was daraus entstehen kann. Und wenn man dann noch anfängt mit Eval oder Funktionsnamen über Variablen zu arbeiten die direkt aus der Url kommen is so oder so vorbei.

Jehova du solltest mal ein paar Texte Rund um PHP und Sicherheit lesen, bei dem was ich bis dato gelesen habe, auch wegen deinem Postproblem könnte dein Stiel das wirklich vertragen.

Gruß Sono
 
Zuletzt bearbeitet:
Ich benutzt nur post zur Variablenübergabe, deshalb kommt über links garkein Parameter dorthin. Das Passwort darf der administrator (welcher ja ausschließlich zu diesem Bereich gelangt) ruhig wissen, schließlich hat er es selbst bestimmt. Und wenn jemand wirklich seine eigene Homepage zerstören wollte könnte er dies auch ohne derartige "Sicherheitslücken"
 
Zuletzt bearbeitet:
Jehova1 schrieb:
Ich benutzt nur post zur Variablenübergabe, deshalb kommt über links garkein Parameter dorthin.

Das Problem ist halt das andere Leute auch Postdaten an deine Scripte schicken könnten.

Jehova1 schrieb:
Das Passwort darf der administrator (welcher ja ausschließlich zu diesem Bereich gelangt) ruhig wissen, schließlich hat er es selbst bestimmt. Und wenn jemand wirklich seine eigene Homepage zerstören wollte könnte er dies auch ohne derartige "Sicherheitslücken"

Ok nochmal egal wo in welcher Form Lücken in deinem Script sind kann jeder der sie entdeckt diese auch Ausnutzen und nicht nur der Admin. Und Variablen die von Extern an das Script übergeben werden können die den Namen einer anderen Variable beinhalten die dann ausgegeben wird sind eine ziemlich dicke Sicherheitslücke.

Das liegt sicher nicht in deinem Interesse denk ich mal.

Gruß Sono
 
Zuletzt bearbeitet:
Jetzt machst du mich aber neugierig, ich habe zwar schon davon gehört, dass man gespeicherte post-parameter irgendwie verändern kann, aber ich wusste bisher keine Möglichkeit dies zu tätigen.:think: (Also sah ich mich bisher immer auf der sicheren Seite... Ich werde mich jetzt wirklich mal ein bisschen schlau machen, über nicht ergooglebare Literaturlinks wäre ich dankbar.
 
Huh was hackst du so, mach einfach
PHP:
$GLOBALS["var1"] = "Textbeispiel";
in der date1.php dann
PHP:
include("datei2.php");
in der date2.php und dann
PHP:
echo $GLOBALS["var"];

Hoffe ich hab dein problem richtig verstanden
Ahh falsch verstanden, mach doch einfach:
PHP:
if($_POST['bla'] == "var2"){
    echo $var2;
}
 
Zuletzt bearbeitet:
Dann müsste ich ja für jede existierende variable ne if schreiben, nene da is die $$var lösung schon besser. Das eigentliche Problem hat sich bisher schon erledigt, falls das nicht klar ersichtlich war.
 

Ähnliche Themen

wer kann mir anhand eines beispiels mein problem lösen

Zurück
Oben