Automatische Weiterleitung und php

blck

blck

Routinier
Hi,
ich hatte das Thema zwar vorhin im IRC schonmal angesprochen, stecke aber immernoch fest.
Folgende Situation:
Auf eine Seite wird per
PHP:
<meta http-equiv='refresh' content='0; URL=seite1.php'>
verwiesen. Nun will ich von dieser zweiten Seite weiter auf eine dritte verweisen.
Das mach ich mit dieser Form und der folgenden Abfrage:
PHP:
echo "Alles so wie du's haben willst?";
echo "<form name='uberprufung' action='' method='POST'>";
echo "<input type='submit' value='Ja, alles in Ordnung' name='ja'><br>";
echo "<input type='submit' value='Nein, ich will etwas &auml;ndern!' name='nein'>";
echo "</form>";

if ($_POST['uberprufung']=='ja')
{
 echo "<meta http-equiv='refresh' content='0; URL=index.php'>";
 echo "JA";
}

if ($_POST['uberprufung']=='nein')
{
 echo "<meta http-equiv='refresh' content='0; URL=edit.php'>";
 echo "NEIN";
}
Leider funktioniert das nicht so wie es soll. Es wird weder Ja/Nein angezeigt, noch funktioniert die Weiterleitung.
MfG Blck
 
Du übergibst ja auch keine Post-Variable. Die Buttons müssen mit "ueberpruefung" geknüpft werden, nicht <form>. (soweit ich mich jetzt erinnere)

Und ob dieser <meta> einfach so im Body stehen darf mag ich zu bezweifeln.
 
PHP:
<?php
   if(isset($_POST['ja']) || isset($_POST['nein'])) {
      if(isset($_POST['ja'])) {
         echo "JA";
         header('Location: jaseite.php');
      }
      if(isset($_POST['nein'])) {
         echo "NEIN";
         header('Location: neinseite.php');
      }
   }
?>

<html>
<head>
</head>
<body>
   <h1>Willkommen auf Seite 2!</h1>
   <form method='POST' action=''>
      <input type='submit' name='ja' value='Ja'>
      <input type='submit' name='nein' value='Nein!!!!'>
   </form>
</body>
</html>
@blck
Dein Code funzt nicht, weil ein meta Redirect im <head> stehen muss. Ich würde das aber wie oben lieber mit header(); machen. Is sauberer.

//edit
Ausserdem steht in den POST-Variablen nicht ja/nein drin, sondern "Ja, alles in Ordnung"/"Nein, ich will etwas &auml;ndern!". Und dazu ist die Variable $_POST['uberprufung'] nicht definiert.
 
Zuletzt bearbeitet:
Klappt, jedenfalls wird JA ausgegebn...
Nur leider bekomme ich jetzt:
PHP:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/blog/lastlook.php:2) in /var/www/blog/lastlook.php on line 33

MfG Blck

P.S. diese Meldung hab ich bisher mit dem Meta Zeugs umgangen
 
Klappt, jedenfalls wird JA ausgegebn...
Nur leider bekomme ich jetzt:
PHP:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/blog/lastlook.php:2) in /var/www/blog/lastlook.php on line 33

MfG Blck

Das header() muss am Anfang der Datei stehen. Es darf keinerlei Zeichen vorher kommen, die nicht in einem <?php ?> stehen. Also keine HTML Tags, keine Leerzeichen gar nix!
Ähnlich wie bei session_start() oder setcookie(). Wie in meinem Beispiel oben.
 
Ja, das Zeug mit header("Location: ..."); muss als allererstes kommen, vor jedem echo oder sonstigen. Es darf noch nix an den Browser übergeben worden sein sozusagen

EDIT: grml - Zu langsam
 
Problem in 16min gelöst, na dass nenn ich mal Service :P
 

Ähnliche Themen

Debian Routing Problem

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Mandriva Linux Security Advisory 2012-182

Mandriva Linux Security Advisory 2012-182

Mandriva Linux Security Advisory 2012-118

Zurück
Oben