bootstrap-tab mit php deaktivieren

Zwiebelschale

Grünschnabel
Hi,

Der Benutzer registriert sich und die Daten werden in eine CSV geschrieben:
Code:
Name, Passwort, 1         //1 steht für admin, 0 für kein admin

Dann prüfe ich ob der Benutzer beim Anmelden in der .csv ist:
PHP:
$search      = $anmelden_name;
$lines       = file('Benutzer.csv');
$line_number = false;

while (list($key, $line) = each($lines) and !$line_number) {
   $line_number = (strpos($line, $search) !== FALSE );}

if($line_number){
   header('Location:  nächsteSeite.php');}

else{header('Location: alert_anmelden_NICHT_erfolgreich.php');
}

Jetzt möchte ich prüfen, ob $admin 1 oder 0 ist. Wenn 0, dann soll auf nächsteSeite.html (bootstrap) ein Tab deaktiviert werden.

Ich hab keine Ahnung wie ich das anstellen soll. Meine versuche haben nicht geklappt.

HTML:
<!DOCTYPE html>
<html lang="de">
<head>
  <title>Bootstrap Case</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
 
  <ul class="nav nav-pills">
  
    <li><a data-toggle="pill" href="#menu1">x</a></li>
    <li><a data-toggle="pill" href="#menu2">x</a></li>
    <li><a href="#menu3">x</a></li>
  </ul>
 
  <div class="tab-content">
 
    <div id="menu1" class="tab-pane fade">
      <h3>x</h3>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>x</h3>
    </div>
    <div id="menu3" class="tab-pane fade">
      <h3>x</h3>
    </div>
  </div>
</div>

</body>
</html>
</html>
 
Warum prüfst du nicht in nächstenSeite.php die Daten ab?! :)
Ist admin = 0 -> Tabs entfernen/nicht anzeigen und bei 1 -> leitest du an deine stelle :)

PHP:
<?php
$admin = 0;

if($admin == 1) header('LOCATION: index.php');
else header('LOCATION: weiter.php');
?>

weiter.php
PHP:
<?php
if($admin == 1) {
   
}
?>

Sollte theoretisch fuktionieren :)
 
Mein Probelm ist eh
Dann passe es doch einfach an :)
Mein Probelm ist eher, das zusammenspiel zwischen php und html.
html erstellt die Tabs, und der php teil prüft ob admin 1 ist.
Wenn 1, dann html mit 3. tab
Wenn 0, dann html ohne 3. tab

HTML:
<body>
   
<?php   
$isAdmin = false;
$fp = fopen('Benutzer.csv', 'r');
if (!$fp) exit('datei nicht gefunden');
// fgets($fp); // zeile 1 überspringen
while (!feof($fp)) {
  $line = fgetcsv($fp);
  if (!$line) break; // ende oder fehler
  if (!isset($line[0])) continue; // leere zeile
  list($name, $pass, $id) = $line;
  if ($id === 1) {
    $isAdmin = true;
    break;
  }
}
fclose($fp);
if ($isAdmin) {
   //istAdmin
} else {
    //nichtAdmin
}

?>  

<div class="container">
 
  <ul class="nav nav-pills">
  
    <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    <li><a href="#menu3">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>
  </ul>
 
  <div class="tab-content">
 
    <div id="menu1" class="tab-pane fade">
      <h3>QUIZ</h3>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>HIGHSCORE</h3>
    </div>
    <div id="menu3" class="tab-pane fade">
      <h3>NEUES QUIZ ERSTELLEN</h3>
    </div>
  </div>
</div>

</body>
</html>
</html>
 
Also einfach so?:

HTML:
<body>
if ($isAdmin) { ?>
 
    <div class="container">
 
  <ul class="nav nav-pills">
 
    <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    <li><a href="#menu3">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>
  </ul>
 
  <div class="tab-content">
 
    <div id="menu1" class="tab-pane fade">
      <h3>QUIZ</h3>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>HIGHSCORE</h3>
    </div>
    <div id="menu3" class="tab-pane fade">
      <h3>NEUES QUIZ ERSTELLEN</h3>
    </div>
  </div>
  
</div>


<?php } else { ?>
</body>
 
So z.B.:
PHP:
<body>
  
<?php 
$isAdmin = false;
$fp = fopen('Benutzer.csv', 'r');
if (!$fp) exit('datei nicht gefunden');
// fgets($fp); // zeile 1 überspringen
while (!feof($fp)) {
$line = fgetcsv($fp);
if (!$line) break; // ende oder fehler
if (!isset($line[0])) continue; // leere zeile
list($name, $pass, $id) = $line;
if ($id === 1) {
   $isAdmin = true;
   break;
}
}
fclose($fp);
if ($isAdmin) {
  $isAdminHTML1 = "<li><a href=\"#menu3\">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>";
  $isAdminHTML2 = "<div id=\"menu3\" class=\"tab-pane fade\">
    <h3>NEUES QUIZ ERSTELLEN</h3>
  </div>";
} else {
   $isAdminHTML1 = "";
   $isAdminHTML2 = "";
}
?> 
<div class="container">
  <ul class="nav nav-pills">
    <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    <?php echo $isAdminHTML1; ?>
  </ul>
  <div class="tab-content">
    <div id="menu1" class="tab-pane fade">
      <h3>QUIZ</h3>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>HIGHSCORE</h3>
    </div>
    <?php echo $isAdminHTML2; ?>
  </div>
</div>
</body>
</html>
</html>
Habe es nicht getestet, aber so kann es aussehen. Nun kann man ja erkennen wie es funktionieren sollte.
 
@Zwiebelschale Grundsätzlich ja, auch wenn Du da Schreibfehler drinnen hast und die else Variante nicht befüllt hast.
Die Variante von @DerKleene1 ist eleganter da hier nur der HTML Code durch PHP beinflusst wird welcher sich ändern soll.
Funktionieren würden aber beide Varianten.

Grüße
 
Danke schon mal. Jetzt gibt er aber
Code:
"; $HTML2 = "
NEUES QUIZ ERSTELLEN
"; } } else { $HTML1 = ""; $HTML2 = ""; } ?>
zwischen den Tabs aus?

und
Code:
$HTML1 = '<li><a data-toggle="pill" href="#menu3">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>";
bringt die Fehlermeldung: "no li element in list scope but a li end tag seen"
 
Zuletzt bearbeitet:
Zurück