Jak przekazać zmienną jako wartość klawisza tablicy $ _POST w PHP? Czy to nie jest możliwe?
$test = "test";
echo $_POST[$test];
Dzięki
Jak przekazać zmienną jako wartość klawisza tablicy $ _POST w PHP? Czy to nie jest możliwe?
$test = "test";
echo $_POST[$test];
Dzięki
$_POST['key'] = "foo";
echo $_POST['key'];
Gdybym rozumiane prawo, chcesz ustawić klucz $_POST
.
Tak, tak można:
$postName = "test";
$postTest = $_POST[$postName];
$_POST["test"] == $postTest; //They're equal
działa tak jak mówiłeś ...
Przykład:
// create an array of all the GET/POST variables you want to use
$fields = array('salutation','fname','lname','email','company','job_title','addr1','addr2','city','state',
'zip','country','phone','work_phone');
// convert each REQUEST variable (GET, POST or COOKIE) to a local variable
foreach($fields as $field)
${$field} = sanitize($_POST[$field]);
?>
aktualizowany w oparciu o komentarze i downvotes ....
nie jestem, jak sugerowano poniżej w komentarzach zapętlanie wszystkich danych i dodawanie do zmiennej - pętla z wcześniej ustaloną listą zmiennych i przechowywanie ich w zmiennych ...
Zmieniłem metodę uzyskiwania d ata
To powinno prawie nigdy się nie udać, mogę łatwo wstrzyknąć kod lub zmienić zmienne systemowe i zebrać informacje o systemie, modyfikując ciąg zapytania !! – Fabrizio
@Fabrizio Przepraszamy za moją ignorancję - w jaki sposób można wstrzyknąć mój kod - tablica jest po stronie serwera? jak to się różni od wymieniania każdego z nich – ManseUK
Załóżmy, że masz zmienną systemową o nazwie '$ mysql_user', a ja przekazuję zapytanie w stylu'? mysql_user = root', spróbujesz połączyć się z serwerem mysql używając użytkownika 'root'. może dać błąd na ekranie, dostarczając mi więcej informacji, niż to konieczne. Próbujesz emulować, co 'register_global' robił w PHP.jest powód, dla którego jest teraz przestarzały ;-) – Fabrizio
Jeśli dobrze cię zrozumiem, chcesz przekazać zmienną z jednego pliku php do drugiego za pośrednictwem postu. To na pewno jest możliwe na kilka sposobów.
1. Z HTML postaci
<form action="target.php" method="post">
<input type="text" name="key" value="foo" />
<input type="submit" value="submit" />
</form>
jeśli klikniesz na przycisku składania, $_POST['key']
w target.php
będzie zawierać 'foo'
.
2. Bezpośrednio z PHP
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: text/html\r\n",
'content' => http_build_query(array('key' => 'foo'))
),
));
$return = file_get_contents('target.php', false, $context);
samo jak w 1. i $return
będzie zawierać wszystkie dane wyjściowe wytwarzane przez target.php
.
3. Via AJAX (jQuery (JavaScript))
<script>
$.post('target.php', {key: 'foo'}, function(data) {
alert(data);
});
</script>
samo jak w 2., ale teraz data
zawiera wyjście z target.php
.
To, co zademonstrujesz, powinno zadziałać, ale nie jestem pewien, co próbujesz zrobić? –
Och, Boże, działa. Kolejny fragment kodu wyrzucał go. – Dietpixel