Weiterleitung in if-Abfrage

ob_start() meinte ich natürlich auch. :-(

Ich kann aber nicht nachvollziehen wo Dein Problem liegt.
Bei mir funktioniert es ohne Probleme..... auch mit ob_start()/ob_end_flush()..... der Text wird also vor und nach dem header() angezeigt und nach der vorgegebenen Zeit wird umgeleitet.

[edit]
Du hast aber hoffentlich ob_start() ganz am Anfang und ob_end_flush() ganz am Ende der Datei eingesetzt?
[/edit]
 
Zuletzt bearbeitet:
Ja ich hab ob_start(); am anfang und ob_end_flush ganz am Ende....

Und es geht net...zwar geht die Weiterleitung....aber sie wird alle 3 sec wiederholt

MFG Niels
 
So siehts im mom aus und es geht net:

PHP:
<?php
ob_start();
// Interner Bereich
include("config/checkuser.php");

// Überprüfen ob die nötigen Adminrechte bestehen
if ($_SESSION['user_rights'] == 'superadmin')
{

// Verbindung zur Datenbank herstellen
function dbconnect()
{
    
     // benötigte Dateien
     include("config/sql.php");
     
     $connect = mysql_connect($dbserver, $dbuser, $dbpw) or die ("Es konnte keine Verbindung mit der DB hergestellt werden");
     $dbselect = mysql_select_db($dbname, $connect) or die ("DB-Table konnte nicht ausgewählt werden");
}

// ###############################
// Anzeige der bestehenden Admins#
// ###############################
dbconnect();
   
//Datensätze aus Datenbank holen
$sql = "SELECT * FROM admin ORDER BY Nickname";
$result = mysql_query($sql);

// Link zum Newsadden
?>
<p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins&do=addform"><font color="#000000">Admin hinzufügen</font></a></p>
<?php 
// Tableheader generieren
   
echo <<<EOL
<table align="center" cellpadding="4" cellspacing="1" style="width:500">
 <tr bgcolor="#666666">
  <td><b>Nickname</b></td><td><b>Vorname</b></td><td><b>Rechte</b></td><td align="center"><img src="../Bilder/aktionen/edit.gif"><img src="../Bilder/aktionen/delete.gif"></td>
 </tr>
EOL;

//Datensätze auslesen
while ($zeile = mysql_fetch_object($result)) {

 echo "<tr bgcolor=\"#666666\">";
 echo "<td><a href=\"$PHP_SELF?section=admins&do=aprofil\">$zeile->Nickname</a></td><td>$zeile->Vorname</td><td>$zeile->Rights</td><td align=\"center\">
 <a href=\"$PHP_SELF?section=admins&do=adminupdate&Id=$zeile->Id\"><img border=\"0\" src=\"../Bilder/aktionen/edit.gif\"></img></a>
 <a href=\"$PHP_SELF?section=admins&do=admindel&Id=$zeile->Id\"><img border=\"0\" src=\"../Bilder/aktionen/delete.gif\"></img></a>
 </td>";
  }
 // ende des Tables generieren
 echo "</tr>";
 echo"</table>";
 
// ##########################
// ##########################
 
 if($_GET['do'] == "addform")
{
// Formular generieren + DB-Einträge einfügen
echo <<<EOL
<p></p>
<p></p>
<p></p>
<form action="$PHP_SELF?section=admins" method="post">
 <table align="center" style="width:600; background-color:#CCCCCC">
  <tr>
   <td><b>Nickname:</b></td><td><input type="text" name="Nickname"></td>
  </tr>
  <tr>
   <td><b>Kennwort:</b></td><td><input type="password" name="Kennwort"></td>
  </tr>
  <tr>
   <td><b>Nachname:</b></td><td><input type="text" name="Nachname"></td>
  </tr>
  <tr>
   <td><b>Vorname:</b></td><td><input type="text" name="Vorname"></td>
  </tr>
  <tr>
   <td><b>Rechte:</b></td><td>
   <select name="Rights">
   <option>superadmin</option>
   <option>newsadmin</option>
   </select>
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center">
    <input type="submit" name="save" value="Save">
    <input type="hidden" name="do" value="adminadd">
   </td>
  </tr>
 </table>
</form>

EOL;
}

//News hinzufügen
if($_POST['do'] == "adminadd")
{
  dbconnect();
  
  // Datensätze in Datenbank schreiben
  $sql = ("INSERT INTO admin 
  (Nickname, Kennwort, Nachname, Vorname, Rights) VALUES 
  ('".mysql_real_escape_string($_POST['Nickname'])."', '".md5 ($_POST["Kennwort"])."', '".mysql_real_escape_string($_POST['Nachname'])."', '".mysql_real_escape_string($_POST['Vorname'])."', '".mysql_real_escape_string($_POST['Rights'])."');");
  $ausfuehren = mysql_query($sql);
  
  	 	 if ($ausfuehren)
         {
             echo "<br><br><p align=\"center\"><font color=\"#00FF00\"><b>Der Admin wurde erfolgreich angelegt!</b></font></p>";
			 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
			 header("Refresh: 3; URL=\"$PHP_SELF?section=admins\"");
         } 
         else
         {
             echo "Der Admin konnte nicht angelegt werden!";
         }
}

//Admin editieren
if($_GET['do'] == "adminupdate")
{
dbconnect();
//Datensätze aus Datenbank holen
$sql = "SELECT * FROM admin WHERE Id='".mysql_real_escape_string($_GET['Id'])."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
// Formular generieren + DB-Einträge einfügen
echo <<<EOL

<p></p>
<p></p>
<p></p>
<form action="$PHP_SELF?section=admins" method="post">
 <table align="center" style="width:600; background-color:#CCCCCC">
  <tr>
   <td><b>Nickname:</b></td><td><input type="text" name="Nickname" value="$row[Nickname]"></td>
  </tr>
  <tr>
   <td><b>Kennwort:</b></td><td><input type="password" name="Kennwort" value="$row[Kennwort]"></td>
  </tr>
  <tr>
   <td><b>Nachname:</b></td><td><input type="text" name="Nachname" value="$row[Nachname]"></td>
  </tr>
  <tr>
   <td><b>Vorname:</b></td><td><input type="text" name="Vorname" value="$row[Vorname]"></td>
  </tr>
  <tr>
   <td><b>Rechte:</b></td><td>
   <select name="Rights">
   <option>superadmin</option>
   <option>newsadmin</option>
   </select>
   </td>
  </tr>
  <tr>
   <td colspan="2">
    <input type="submit" name="save" value="Save">
    <input type="hidden" name="do" value="update">
	<input type="hidden" name="Id" value="$row[Id]">
   </td>
  </tr>
 </table>
</form>
    
EOL;
}
// Update bearbeiten
if($_POST['do'] == 'update')
  {
  dbconnect();

       // MySql-DB updaten
       $update = "UPDATE admin SET Nickname='".mysql_real_escape_string($_POST['Nickname'])."', Kennwort='".md5($_POST['newsinhalt'])."', Nachname='".mysql_real_escape_string($_POST['Nachname'])."', Vorname='".mysql_real_escape_string($_POST['Vorname'])."' WHERE Id='".mysql_real_escape_string($_POST['Id'])."'"; 
       $senden = mysql_query($update);     
  
       if ($senden)
         {
             echo "<br><br><br><p align=\"center\"><font color=\"#00FF00\"><b>Die Einträge wurden erfolgreich editiert!</b></font></p>";
			 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
			 header("Refresh: 3; URL=\"$PHP_SELF?section=admins\"");
         } 
         else
         {
		     $error = mysql_error();
             echo "$error";
         }    
  }
//Admin löschen
if($_GET['do'] == "admindel")
{
   dbconnect();
   
   $sql = "DELETE FROM admin WHERE Id='".mysql_real_escape_string($_GET['Id'])."'";
   $senden = mysql_query($sql);
   if ($senden)
     {
	 echo "<br><br><br><p align=\"center\"><font color=\"#00FF00\"><b>Die Einträge wurden erfolgreich gelöscht!</b></font></p>";
	 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
	 header("Refresh: 3; URL=\"$PHP_SELF?section=admins\"");
	 }
	 else
	 {
	   $error = mysql_error();
	   echo "$error";
	 }
}
}
else
{
echo "<br><br><br><p align=\"center\"><b>Sie haben nicht die nötigen Rechte!</b></p>";
echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
header("Refresh: 3; URL=\"$PHP_SELF?section=home\"");
// ##########################
// ## Profil ################
// ##########################

if ($_GET['do'] == "aprofil")
{
echo "Adminprofil";
}
}
ob_end_flush();
?>
 
Ich habe es nun nochmal ganz umgestellt.......ich habe die Weiterleitung einfach in eine funktion gesteckt und in den Anfang der datei geschrieben und dann halt an den entsprechenden Punkten aufgerufen.....so mit "header" geht es überhaupt net...weil noch davor was an den Browser geschickt wird...auch ob_start() und ob_end_flush() nützen nichts.....

naja habe es dann wieder mit meta gemacht:

PHP:
<?php
ob_start();
// Interner Bereich
include("config/checkuser.php");

// Verbindung zur Datenbank herstellen
function dbconnect()
{
    
     // benötigte Dateien
     include("config/sql.php");
     
     $connect = mysql_connect($dbserver, $dbuser, $dbpw) or die ("Es konnte keine Verbindung mit der DB hergestellt werden");
     $dbselect = mysql_select_db($dbname, $connect) or die ("DB-Table konnte nicht ausgewählt werden");
}

// weiterleitung bei erfolgreicher Ausführung
function forwarding()
{
?>
<meta http-equiv="refresh" content="3" url="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins&sub=alist">
<?php
}

// switch zwischen Useransicht und Userprofil
switch ($_GET['sub'])
       {
	   case "alist":
// Überprüfen ob die nötigen Adminrechte bestehen
if ($_SESSION['user_rights'] == 'superadmin')
{

// ###############################
// Anzeige der bestehenden Admins#
// ###############################
dbconnect();
   
//Datensätze aus Datenbank holen
$sql = "SELECT * FROM admin ORDER BY Nickname";
$result = mysql_query($sql);

// Link zum Newsadden
?>
<p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins&sub=alist&do=addform"><font color="#000000">Admin hinzufügen</font></a></p>
<?php 
// Tableheader generieren
   
echo <<<EOL
<table align="center" cellpadding="4" cellspacing="1" style="width:500">
 <tr bgcolor="#666666">
  <td><b>Nickname</b></td><td><b>Vorname</b></td><td><b>Rechte</b></td><td align="center"><img src="../Bilder/aktionen/edit.gif"><img src="../Bilder/aktionen/delete.gif"></td>
 </tr>
EOL;

//Datensätze auslesen
while ($zeile = mysql_fetch_object($result)) {

 echo "<tr bgcolor=\"#666666\">";
 echo "<td><a href=\"$PHP_SELF?section=admins&sub=aprofil\">$zeile->Nickname</a></td><td>$zeile->Vorname</td><td>$zeile->Rights</td><td align=\"center\">
 <a href=\"$PHP_SELF?section=admins&sub=alist&do=adminupdate&Id=$zeile->Id\"><img border=\"0\" src=\"../Bilder/aktionen/edit.gif\"></img></a>
 <a href=\"$PHP_SELF?section=admins&sub=alist&do=admindel&Id=$zeile->Id\"><img border=\"0\" src=\"../Bilder/aktionen/delete.gif\"></img></a>
 </td>";
  }
 // ende des Tables generieren
 echo "</tr>";
 echo"</table>";
 
// ##########################
// ##########################
 
 if($_GET['do'] == "addform")
{
// Formular generieren + DB-Einträge einfügen
echo <<<EOL
<p></p>
<p></p>
<p></p>
<form action="$PHP_SELF?section=admins&sub=alist" method="post">
 <table align="center" style="width:600; background-color:#CCCCCC">
  <tr>
   <td><b>Nickname:</b></td><td><input type="text" name="Nickname"></td>
  </tr>
  <tr>
   <td><b>Kennwort:</b></td><td><input type="password" name="Kennwort"></td>
  </tr>
  <tr>
   <td><b>Nachname:</b></td><td><input type="text" name="Nachname"></td>
  </tr>
  <tr>
   <td><b>Vorname:</b></td><td><input type="text" name="Vorname"></td>
  </tr>
  <tr>
   <td><b>Rechte:</b></td><td>
   <select name="Rights">
   <option>superadmin</option>
   <option>newsadmin</option>
   </select>
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center">
    <input type="submit" name="save" value="Save">
    <input type="hidden" name="do" value="adminadd">
   </td>
  </tr>
 </table>
</form>

EOL;
}

//News hinzufügen
if($_POST['do'] == "adminadd")
{
  dbconnect();
  
  // Datensätze in Datenbank schreiben
  $sql = ("INSERT INTO admin 
  (Nickname, Kennwort, Nachname, Vorname, Rights) VALUES 
  ('".mysql_real_escape_string($_POST['Nickname'])."', '".md5 ($_POST["Kennwort"])."', '".mysql_real_escape_string($_POST['Nachname'])."', '".mysql_real_escape_string($_POST['Vorname'])."', '".mysql_real_escape_string($_POST['Rights'])."');");
  $ausfuehren = mysql_query($sql);
  
  	 	 if ($ausfuehren)
         {
             echo "<br><br><p align=\"center\"><font color=\"#00FF00\"><b>Der Admin wurde erfolgreich angelegt!</b></font></p>";
			 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
			 forwarding();
         } 
         else
         {
             echo "Der Admin konnte nicht angelegt werden!";
         }
}

//Admin editieren
if($_GET['do'] == "adminupdate")
{
dbconnect();
//Datensätze aus Datenbank holen
$sql = "SELECT * FROM admin WHERE Id='".mysql_real_escape_string($_GET['Id'])."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
// Formular generieren + DB-Einträge einfügen
echo <<<EOL

<p></p>
<p></p>
<p></p>
<form action="$PHP_SELF?section=admins&sub=alist" method="post">
 <table align="center" style="width:600; background-color:#CCCCCC">
  <tr>
   <td><b>Nickname:</b></td><td><input type="text" name="Nickname" value="$row[Nickname]"></td>
  </tr>
  <tr>
   <td><b>Kennwort:</b></td><td><input type="password" name="Kennwort" value="$row[Kennwort]"></td>
  </tr>
  <tr>
   <td><b>Nachname:</b></td><td><input type="text" name="Nachname" value="$row[Nachname]"></td>
  </tr>
  <tr>
   <td><b>Vorname:</b></td><td><input type="text" name="Vorname" value="$row[Vorname]"></td>
  </tr>
  <tr>
   <td><b>Rechte:</b></td><td>
   <select name="Rights">
   <option>superadmin</option>
   <option>newsadmin</option>
   </select>
   </td>
  </tr>
  <tr>
   <td colspan="2">
    <input type="submit" name="save" value="Save">
    <input type="hidden" name="do" value="update">
	<input type="hidden" name="Id" value="$row[Id]">
   </td>
  </tr>
 </table>
</form>
    
EOL;
}
// Update bearbeiten
if($_POST['do'] == 'update')
  {
  dbconnect();

       // MySql-DB updaten
       $update = "UPDATE admin SET Nickname='".mysql_real_escape_string($_POST['Nickname'])."', Kennwort='".md5($_POST['newsinhalt'])."', Nachname='".mysql_real_escape_string($_POST['Nachname'])."', Vorname='".mysql_real_escape_string($_POST['Vorname'])."' WHERE Id='".mysql_real_escape_string($_POST['Id'])."'"; 
       $senden = mysql_query($update);     
  
       if ($senden)
         {
             echo "<br><br><br><p align=\"center\"><font color=\"#00FF00\"><b>Die Einträge wurden erfolgreich editiert!</b></font></p>";
			 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
			 forwarding();
         } 
         else
         {
		     $error = mysql_error();
             echo "$error";
         }    
  }
//Admin löschen
if($_GET['do'] == "admindel")
{
   dbconnect();
   
   $sql = "DELETE FROM admin WHERE Id='".mysql_real_escape_string($_GET['Id'])."'";
   $senden = mysql_query($sql);
   if ($senden)
     {
	 echo "<br><br><br><p align=\"center\"><font color=\"#00FF00\"><b>Die Einträge wurden erfolgreich gelöscht!</b></font></p>";
	 echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
	 forwarding();
	 }
	 else
	 {
	   $error = mysql_error();
	   echo "$error";
	 }
}
}
else
{
echo "<br><br><br><p align=\"center\"><b>Sie haben nicht die nötigen Rechte!</b></p>";
echo "<br><p align=\"center\"><b>Weiterleitung erfolgt.....</b></p>";
forwarding();
}
; break;
// ##########################
// ## Profil ################
// ##########################
case "aprofil":
echo "Adminprofil"; break;
}
ob_end_flush();
?>

Aber es geht nicht.
Da es aber ja diesmal bei allen 3 Aktiionen...also löschen, editieren und hinzufügen die gleiche Funktion ist aber es nur beim löschen nicht funktioniert.....denke ich, dass in der if-anweisung mit if ($_GET['do'] == "admindel") etwas nicht stimt oder die Weiterleitung dazu veranlasst....immer wieder weiterzuleiten.....

habt ihr da ne Idee woran es liegen könnte?

MFG Niels
 
du hast Mischmasch mit $_GET und $_POST... evtl mal mit $_REQUEST ersetzen oder alles einheitlich - vielleicht geht hierbei ja eine nötige Variable verloren!
 
wenn ich mich nicht irre, gibt deine forwarding() Funktion den MetaTag gar nciht aus.. da müsste doch ein echo(); dazu - aber warum Funktionieren dann die anderen :confused:
 
Ja keine Ahnung.....es funktioniert ja bei allen...sprich er gibt es bei allen aus.....nur komisch ist, dass es bei der Löschanweisung immer wiederholt wird...sprich alle 3 sekunden ...


Was noch viel witziger ist, ist das neuerdings......jez auch noch, wenn ich nen neuen Admin einfügen will oder einen bestehenden ändern will, der Nickname und das Password von dem momentan eingeloggten...sprich mir...admin, in die Zeilen geschrieben wird.....sprich.....wenn ich ein Admin hinzufügen will.....stehen in den zeilen Nickname und Kennwort schon mein Nickname und mein Kennwort......genauso bei editieren......dann stehen bei dem Admin auf einmal mein Nickname und mein kennwort drin und nicht seins........ich bin echt total confused langsam :S



MFG Niels
 
Zuletzt bearbeitet:
Zurück