Variable in $HTTP_POST_VARS verwenden

PhoenixDH

Erfahrenes Mitglied
Hallo zusammen,

ich möchte eine Variable in $HTTP_POST_VARS verwenden um die dynamisch aus der URL abzufragen, quasi so etwas:
Code:
$HTTP_POST_VARS[$SPAM_PROT]

Geht das überhaupt? Denn ich bekomme es nicht hin.

Dank euch!
 
Das verstehe ich jetzt nicht, nur als Bsp:
Ich habe folgende URL: profile.php?mode=register&ABCDEF=true

Das ABCDEF ist hierbei der Part der variabel ist ....

Hm, bisschen schwer zu erklären gerade, zumindest für mich ;)
 
Das ist kein POST, das ist GET.
Und wie meinst du variabel?

PHP:
$name = 'ABCDEF';
$value = $_GET[$name];
 
Genau das $name wäre ja bei mir das variable, d.h. hier mal bissschen Code.

Code:
// Additional SPAM Protection function
function zufallsstring($laenge=16)
{
    //Zeichen, die im Zufallsstring vorkommen sollen
    $zeichen = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     
    $zufalls_string = '';
    $anzahl_zeichen = strlen($zeichen);
    for($i=0;$i<$laenge;$i++)
    {
        $zufalls_string .= $zeichen[mt_rand(0, $anzahl_zeichen - 1)];
    }
    return $zufalls_string;
}
$SPAM_PROT = zufallsstring();

Hier mit wird in $SPAM_PROT ein Zufallswert generiert.
Dieser Zufallswert wird in eine URL eingebaut ...
Code:
"profile.$phpEx?mode=register&amp;".$SPAM_PROT."=true"

Anschließend soll genau dieser Wert wieder ausgelesen werden:
Code:
if ( $mode == 'register' && !isset($HTTP_POST_VARS[$SPAM_PROT]) && !isset($HTTP_GET_VARS[$SPAM_PROT]) )

Aber irgendwie funktioniert das nicht wirklich ....

Verständlicher?
 
item: Zur Wiederholung: 1) Du rufst POST ab, der Wert befindet sich in GET. 2) $HTTP_* wird nicht mehr unterstützt und ist sein vielen Jahren veraltet. Solange du also mit HTTP_POST_* arbeitest sind alle anderen Analysen und Tipps überflüssig.

item: Arbeitest du mit Session? Oder wie übergibst du den Wert von $SPAM_PROT von einer Seite auf die nächste? Du kannst Session oder Cookies nehmen.

item: "Aber irgendwie funktioniert das nicht wirklich". Mehr Details, was falsch geht, wie sich das zeigt etc. sind gopfertami hilfreich

item: Dies ist mein 3ter Post in diesem Thread. Bis jetzt hast du in deinem Code noch nichts umgesetzt von dem ich geschrieben habe. Frage an mich: wozu antworte ich eigentlich?
 
item1: erledigt
item2: das ist auf der selben Seite

item3:
Was nicht funktioniert: es wird kein Wert herausgegeben.

Ich habe das ganze jetzt versucht abzukürzen:
Code:
$SPAM_PROT = zufallsstring();

echo $_GET[$SPAM_PROT];

D.h. in einer Variable speichere ich einen STRING. Dieser STRING soll zeitgleich auch in der URL sein.
 
2) Jepp, ist dieselbe Seite. Aber nicht derselbe Seitenaufruf.
1ter Aufruf: Generieren des Zufallsstrings und in den Linkt einpflegen
2ter Aufruf: Den String suchen.
Doch leider geht ohne Session dazwieschen der Inhalt von $SPAM_PROT verloren, oder du überschreibst ihn neu mit einer neuen zufallszahl.

Mach dich mal mit dem Thema Session vertraut um beim 2ten Aufruf den Wert vom Ersten wiederherzustellen.

Mal ein Test dazu zum verdeutlichen
PHP:
<?php
//$code nach dem Aufruf der Seite ausgeben
var_dump($code);        
//Falls $code nicht gesetzt ist, generieren
if(!isset($code)) $code = mt_rand();
//$code erneut ausgeben
var_dump($code);
//Link erstellen
echo "<a href='?{$code}=123'>Klick mich </a>";
?>

Ausgabe beim Aufrufen der Seite:
Code:
Notice: Undefined variable: code in C:\xampp\htdocs\test\test3.php on line 3
NULL int(154768319) Klick mich
Ausgabe nach dem klicken auf den Link
Code:
Notice: Undefined variable: code in C:\xampp\htdocs\test\test3.php on line 3
NULL int(596188848) Klick mich
Ergo, beim klicken auf denLink kennt die Seite $code nicht mehr.

Und jetzt mit Session
PHP:
<?php
session_start();
//$code nach dem Aufruf der Seite ausgeben
var_dump($_SESSION['code']);        
//Falls $code nicht gesetzt ist, generieren
if(!isset($_SESSION['code'])) $_SESSION['code'] = mt_rand();
//$code erneut ausgeben
var_dump($_SESSION['code']);
//Link erstellen
echo "<a href='?{$_SESSION['code']}=123'>Klick mich </a>";
?>

Erster Aufruf
Code:
Notice: Undefined index: code in C:\xampp\htdocs\test\test3.php on line 5
NULL int(1282164160) Klick mich
Ausgabe nach dem klicken auf den Link
Code:
int(1282164160) int(1282164160) Klick mich
Ergo, jetzt kennt der Code den alten Code noch....
 
Zurück