• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit $_POST

freakXHTML

Mitglied
Hallo zusammen,
ich habe ein Problem mit $_POST.
Ich habe eine Datei, die über die URL eine ID bekommt. Diese ID frage ich so ab:
PHP:
echo $_GET['blog_id'];
Nun wird auf dieser Seite auf einen Button geklickt, um eine weitere Seite zu öffnen. Die ID soll nun wieder über die URL weitergegeben werden, aber diesmal md5 verschlüsselt. Weiterhin soll die unverschlüsselte ID im POST Array gespeichert werde, um sie später abgleichen zu können. Das sieht dann so aus:
PHP:
if(isset($_POST['ResponseB'.$_GET['blog_id']])) { //Prüfen, ob Button geklickt worden ist
 $_POST['blog_id'] = $_GET['blog_id']; //unverschlüsselte ID wird in POST geschrieben
  header('Location: answerblog.php?blgansid='.md5($_GET['blog_id'])); //ID wird verschlüsselt über die UR weitergegeben. 
 }

Auf der wieder neu aufgerufenen Seite soll nun die unverschlüsselte ID im POST Array mit der verschlüsselten im GET Array abgeglichen werden. Das funktioniert nicht. Anscheinend habe ich keinen Zugriff auf die ID im POST Array. Folgender Befehl gibt auf der aufgerufenen Seite nichts aus:
PHP:
echo $_POST['blog_id']; //gibt nicht die unverschlüsselte ID aus, sondern gar nichts

Wenn ich mit isset prüfe, ob $_POST['blog_id'] vorhanden ist, ist das Ergebnis false. print_r zeigt mir ein leeres Array...

Warum kann ich auf die in POST unverschlüsselte ID nicht zugreifen? Wie kann ich den Fehler beheben?

Vielen Dank
lg, freakXHTML
 
Zuletzt bearbeitet:
Die POST variable ist nur auf der einen Seite bekannt. Heisst du gibts nur die GET variable über die Url mit. Für POST ist ein Formular ein Muss.
Du kannst beides höchstens folgendermaßen mischen:

formular mit action so belegen
PHP:
answerblog.php?blgansid= $getId
Und dann ein hidden feld im Formular machen, und dann den senden Button drücken. Aber auf deine Weise kommst du nicht an das Post dran ;)
 
Super!!! Vielen Dank. Es hat geklappt! Wieder was gelernt. Danke. Ich habs jetzt so gemacht.

HTML:
<form action = "answerblog.php?blgansid=<?php echo md5($_GET['blog_id']);?>" method = "post">
 <fieldset>
  <input style="margin-top:10px; float:right;" value = "Antworten" type="submit" name="ResponseB<?php echo $_GET['blog_id'];?>" />
  <input type="hidden" value = "<?php echo $_GET["blog_id"];?>" name="blogidcontrol" />
  <div style="clear:right;"></div>
 </fieldset>
</form>

lg, freakXHTML
[/HTML]
 
Nutzereingaben (GET, POST, COOKIE) nicht ungefiltert ausgeben, ...

PHP:
<?php echo $_GET["blog_id"];?>

...sondern immer escapen:

PHP:
<?php echo htmlspecialchars($_GET["blog_id"]);?>

Sonst wird die Seite anfällig für XSS-Attacken.
 
Zurück
Oben