Weiterleitung in if-Abfrage

Ja auch wenn ich des entferne geht es nicht...auch wenn ich bei den anderen if-abfragen das </meta> hintersetzt klappt es net...

MFG Niels
 
hast du mal den HTML Code verglichen, den du bekommst wenn die Weiterleitung funktioniert (also kurz vor der Weiterleitung ;)) mit dem der generiert wird, falls es nicht klappt?
 
Alternativ könntest du die Nachricht, dass die Einträge erfolgreich gelöscht wurden, auch in einer Sitzung speichern und nach einer normalen HTTP-Umleitung ausgeben.
 
Hallo!

Vor dem <meta>-Tag hast Du ein schliessenden PHP-Tag und nach dem <meta>-Tag wieder einen öffnenden PHP-Tag.
PHP:
     ?> 
     <meta http-equiv="refresh" content="3" URL="$PHP_SELF?section=admins"></meta> 
     <?php
Demzufolge wird $PHP_SELF nicht als PHP Code geparst sondern ganz einfach nur als Text angesehen (Du solltest Dir mal den Quelltext ansehen den Dir das Skript liefert).
Abgesehen davon würde ich eher $_SERVER['PHP_SELF'] verwenden.
Bei Dir müsste es also so aussehen:
PHP:
     ?> 
     <meta http-equiv="refresh" content="3" URL="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins"></meta> 
     <?php
Gruss Dr Dau
 
super Adlerauge@dr dau!

Ich frag' mich jetzt warum die Weiterleitung dann bei den anderen "Modulen" funktioniert ..
 
hehe.....das es daran liegt....wie dumm das hab ich ganze zeit übersehn....aber dass es dann bei den andren if-abfragen geht ist echt komisch^^

MFG Niels
 
Neuer Code:
PHP:
<?php
// 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

echo "<p align=\"center\"><a href=\"$PHP_SELF?section=admins&do=addform\"><font color=\"#000000\">Admin hinzufügen</font></a></p>";
   
// 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>";
			 ?><head>
			 <meta http-equiv="refresh" content="3" URL="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins"></meta>
			 </head>
			 <?php
         } 
         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>";
			 ?>
			 <head>
			 <meta http-equiv="refresh" content="3" URL="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins"></meta>
			 </head>
			 <?php
         } 
         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>";
	 ?>
			 <meta http-equiv="refresh" content="3" URL="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins"></meta>
	 <?php
	 }
	 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>";
?>
<head>
<meta http-equiv="refresh" content="3" URL="<?php echo $_SERVER['PHP_SELF']; ?>?section=admins">
</head>
<?php
// ##########################
// ## Profil ################
// ##########################

if ($_GET['do'] == "aprofil")
{
echo "Adminprofil";
}
}
?>

leider geht es immer noch nicht...

MFG Niels
 
Dass überhaupt irgend ein <meta>-Tag funktioniert, wundert mich schon sehr.
Wie Gumbo schon gesagt hat, ein <meta>-Tag gehört in den <head>-Bereich der HTML Seite..... Du hast es jetzt nur noch schlimmer gemacht..... denn <head>-Tags haben genauso wenig im <body> zu suchen wie <meta>-Tags.

Du kannst aber auch per header() eine Zeitverzögerung für den Refresh einbauen:
PHP:
<?php
header("Refresh: 10; URL=\"http://www.google.de\"");
?>
Nachzulesen im PHP-Manual bei den Kommentaren.

Zu bedenken ist halt nur dass vor header() nichts an den Browser gesendet werden darf.
Evtl. hilft Dir hier ja ob_flush() und ob_end_flush() weiter.
 
Zurück