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/344098-situationen-wo-ein-submit-nicht-funktioniert.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:
PHP:
<?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>
...
?>
Seite 2:
PHP:
<?php
session_start();
if( isset( $_POST['buttonName'] ) ) {
$url = $_POST['editViewURL'];
header("Location: ".$url);
$_SESSION["bedingung"] = 1;
}
...
?>
funktioniert auch wunderbar buttonName und editViewURL werden problemlos ausgelesen und die weiterleitung zu Seite 3 passiert auch
Seite 3:
PHP:
<?php
if( isset( $_POST['buttonName'] ) || $_SESSION["bedingung"] == 1 ) {
...
}
...
?>
Nun sagt er mir aber bei jedem Aufruf von Seite 1, welche ja Seite 3 includet folgendes:
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:
PHP:
<?php
session_start();
$_SESSION["bedingung"] = 0;
...
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:
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*