2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
1611
1611
EMPFEHLEN
-
27.07.09 19:22 #1
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hallo,
ich habe folgende automatische Weiterleitung in meinem Skript:
wie kann ich damit Variablen mittels POST weitergeben?PHP-Code:if( isset( $_POST['button'] ) ) {
$url = $_POST['editViewURL'];
header("Location: ".$url);
}
-
Hallo.
Das Thema war schon einige male und es ist lösbar über Sessions oder Cookies, je nach Nutzen etc.Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
27.07.09 19:53 #3
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hi,
mit Cookies habe ich nicht viel am Hut und Session denk ich auch nicht... [ja ich weiß was ihr denkt .. der kann ja gar nichts
]
habe Folgendes gefunden verstehe ich aber noch nicht ganz.
Mein Plan ist die Weiterleitung und dann gleich drauf mit diesem fsockopen die POST Parameter hinter schmeißen. Das müsste doch Funktionieren dass ich auf der gewünschten Seite ein isst( $_POST[...] ) abfragen kann oder?PHP-Code:$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
Beste Grüße
-
Mit fsockopen hast du keine echte Weiterleitung, sondern rufst deine Seite im Script auf, liest sie aus und gibst sie wieder. Dein Server würde also gleich doppelte Arbeit haben. Sicherlich ein Weg, aber denke an die Performance.
Sessions sind einfach:
http://tut.php-quake.net/de/sessions.html
Seite 1:
Seite 2:PHP-Code:session_start();
$_SESSION["merks"] = "dir";
Ausgabe Seite 2:PHP-Code:session_start();
echo $_SESSION["merks"]
Code :1
dir
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
28.07.09 10:40 #5
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hallo,
also ich habe es mal mit Session probiert. Jedoch wird mir angezeigt:
Notice: Undefined index: bedingung in ....
Meine Situation:
Seite 1 - hat Button
Seite 2 - hat die Weiterleitung
Seite 3 - den auszuführenden Code
So nun könnte man denken, ruf mit dem Button von Seite 1 doch gleich Seite 3 auf. Problem: Egal welche URL für das action im form steht wird immer auf Seite 2 weitergeleitet automatisch und k.A. wieso ... siehe Diskussion http://www.tutorials.de/forum/php/34...ktioniert.html
Alle Seiten sind jeweils PHP-Dateien.
Seite 1 includet zu beginn Seite 3.
Wie es aussieht wird Seite 2 auch irgendwo mit Seite 1 includet, weil wenn ich session_start() in Seite 2 und in Seite 3 schreibe sagt er mir:
Notice: A session had already been started - ignoring session_start()
also habe ich es wieder aus Seite 3 raus genommen.
Hoffe ihr konntet folgen... ich glaube besser kann ich es nicht erklären.
Aufruf-Reinfolge: Seite 1 -> Seite 2 -> Seite 3
So nun bisschen Code:
Seite 1:
Seite 2:PHP-Code:<?php
include_once 'seite3.php';
...
<form action="'.$url.'" method="POST">
<input type="'.$typeVar.'" class="button" name="buttonName" value="Anlegen" />
<input type="hidden" name="editViewURL" value='.$url.' />
</form>
...
?>
funktioniert auch wunderbar buttonName und editViewURL werden problemlos ausgelesen und die weiterleitung zu Seite 3 passiert auchPHP-Code:<?php
session_start();
if( isset( $_POST['buttonName'] ) ) {
$url = $_POST['editViewURL'];
header("Location: ".$url);
$_SESSION["bedingung"] = 1;
}
...
?>
Seite 3:
Nun sagt er mir aber bei jedem Aufruf von Seite 1, welche ja Seite 3 includet folgendes:PHP-Code:<?php
if( isset( $_POST['buttonName'] ) || $_SESSION["bedingung"] == 1 ) {
...
}
...
?>
Notice: Undefined index: bedingung
nur wenn ich eben auf den button klicke und er auf Seite 3 springt geht die meldung weg, was ja irgendwie klar ist da er ja von Seite 2 auf Seite 3 spring und die if Bedingung in Seite 2 zu traf und nun er die Variable kennt.
Also habe ich Seite 2 um eine Variablendeklaration erweitert:
nun spuckt er keine "Notice: Undefined index: bedingung" jedoch wird der if Block von Seite 3 nie ausgeführt, da kann ich Button drücken wie oft ich will. Es hängt sicherlich damit zusammen das alle Seiten includet werden und das Seite 2 vor Seite 1 und 3 includet werden. Also einfach:PHP-Code:<?php
session_start();
$_SESSION["bedingung"] = 0;
...
1. Browser suft auf Seite 1 (alles Seiten werden zu diesem Zeitpunkt includet)
2. Seite 2 wird aufgerufen (wieder alles includet)
3. Seite 2 leitet auf Seite 3 weiter (wieder alles includet UND die Bedingung von Seite 2 $_SESSION["bedingung"] = 0; wird WIE IMMER gesetzt)
4. Somit ist es egal ob ich im if Block von Seite 2 den Wert umstelle, beim Aufruf von Seite 3 wird sie eh wieder umgestellt weil sie neu includet wird und Deklaration passiert -.-
Lösungsvorschläge?.... *gleich vorm heulkrampf*
-
Du musst die Zuweisungen der Sessions immer vor dem header machen, da er dort ja weiterleitet.
Also sollte das
ganz am Ende deiner Datei stehen, dann klappt das auch.PHP-Code:$url = $_POST['editViewURL'];
header("Location: ".$url);
Auch solltest du beachten, dass du vor dem session_start() nichts ausgibst, also mit echo o.ä.,
da dort auch die Fehlermeldung herrühren kann.
Wegen dem Problem mit dem Include:
Guck nach dem Referrer, wenn da Seite 2 drin steht, wird
nicht gesetzt.PHP-Code:$_SESSION["bedingung"] = 0;
Geändert von Chumper (28.07.09 um 10:53 Uhr)
mfg Nils
Problem gelöst?
Dann bitte das Thema als erledigt anhaken
und die Antwort bewerten, die weitergeholfen hat.
Danke!
-
28.07.09 11:19 #7
- Registriert seit
- Apr 2007
- Beiträge
- 127
verstehe ich irgendwie nicht

Also ich habe mir nach Klick auf den Button den Referer ausgeben, die angezeigte Seite 3 kommt definitiv von Seite 2, und da alles neu includet wird beim Seitenaufruf wirdausgeführt ... meinst du doch ? Ich hab sie auch auf Seite 3 ausgelesen mit var_dump() ist immer 0. Sollte aber nach dem Klicken von Button zu 1 werden.PHP-Code:$_SESSION["bedingung"] = 0;
Zu Erinnerung Seite 2 sieht so bei mir nun aus:
PHP-Code:<?php
session_start();
$_SESSION["bedingung"] = 0;
if( isset( $_POST['buttonName'] ) ) {
$referer = $_SERVER['HTTP_REFERER'];
echo "Steht im index: $referer <br />"; // diese echo bekomme ich nie zu Gesicht weil er ja gleich weiterleitet
$url = $_POST['editViewURL'];
header("Location: ".$url);
$_SESSION["bedingung"] = 1;
Edit:
ach du meinst, dass das dann so aus sehen soll.
ändert aber auch nichts. Ist weiterhin 0 bei Seite 3PHP-Code:$url = $_POST['editViewURL'];
$_SESSION["bedingung"] = 1;
header("Location: ".$url);
Also entweder ich lass die Deklaration $_SESSION["bedingung"] = 0; raus dann habe ich das Problem, dass beim manuellen Aufruf von Seite 3 die Fehlermeldung: Variable nicht definiert ist oder ich schreib sie rein dann wird aber jeder Seitenaufruf ob manuell oder durch weiterleitung die Variable 0 sein wegen dem include Mechanismus *wieder heulkrampf*Geändert von 'GreenDragon' (28.07.09 um 11:36 Uhr)
-
28.07.09 11:35 #8
Hallo!
Du startest hier zuerst die Session.
Dann legst Du eine Sessionvariable an und füllst sie mit dem Wert 0.
Dann überprüfst Du ob das Formular gesendet wurde.
Dann leitest Du per Header weiter.
Und erst jetzt, nach dem Du schon weiter geleitet hast, setzt Du den Wert für die Sessionvariable auf 1.
Das kann nicht klappen.
Du musst den Wert VOR der Weiterleitung setzen.
Gruss Dr Dau
[edit]
*hmpf* Irgendwie formatiert der Editor den Code immer wieder um.
[/edit]
[edit 2]
So, nun aber..... Dein Nick ist zum zitieren nicht kompatibel mit der Forensoftware.
[/edit 2]Geändert von Dr Dau (28.07.09 um 11:44 Uhr)
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
28.07.09 11:49 #9Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
28.07.09 12:19 #10
- Registriert seit
- Apr 2007
- Beiträge
- 127
LOL
die Deklaration auf Seite 2 weglassen nur im IF-Block eben die Session Variable auf 1 setzen und dann auf Seite 3 prüfen ob die Session Variable existiert. Fein, denk das geht!
Hab ja vorher auf Seite 3 gleich geprüft ob sie gleich 1 ist aber nicht ob sie überhaupt existiert
kein Wunder also wieso ich eine Fehlermeldung bekommen habe 
Ich denk ich lass es jetzt erstmal so, auch wenn ich mit diesem Session Sache nicht viel am Hut habe. Hauptsache es läuft erstmal! Danke!
Ähnliche Themen
-
Weiterleitung mit POST-Variablen
Von Typh00n im Forum PHPAntworten: 9Letzter Beitrag: 09.01.10, 11:05 -
Download Problem, bei automatischer weiterleitung
Von Homwer im Forum PHPAntworten: 3Letzter Beitrag: 06.06.06, 14:55 -
<select> mit automatischer Weiterleitung / Alternativlösung ?
Von Sebigf im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 25.02.06, 12:09 -
Problem mit automatischer Weiterleitung
Von blood-rose im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 27.12.04, 13:47 -
Mehrere Variablen in EINEM Parameter mitgeben
Von aquarius im Forum PHPAntworten: 1Letzter Beitrag: 18.12.04, 19:23





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren