bootstrap-tab mit php deaktivieren

#1
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>
 
#2
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 :)
 
#5
Mein Probelm ist eh
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>
 
#7
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>
 
#8
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.
 
#10
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:
#12
Kannst Du bitte deinen gesammten PHP Code zeigen?
Du musst irgendwo einen Syntaxfehler drinnen haben.

Grüße
PHP:
<html lang="eng">
<head>
    <title>Bootstrap Case</title>
</head>
<body>
    <?php
    $fp = fopen('Benutzer.csv', 'r');
    if (!$fp) exit('datei nicht gefunden');
    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 ($name === $anmelden_name && $pass === $anmelden_passwort) {
    $gefunden = true;
    break;
    }
    }
    if ($gefunden) {
    if($id == 1){
    $HTML1 = "<li><a data-toggle='pill' href='#menu3'>Hello World</a></li>";
    $HTML2 = "<div id='menu3' class='tab-pane fade'><h3>NEUE</h3></div>";
    }
    } else {
    $HTML1 = "";
    $HTML2 = "";
    }
    ?>
    <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>
            <?php echo $HTML1; ?>
        </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">
                <?php echo $HTML2; ?>
            </div>
        </div>
    </div>
</body>
und es muss .PHP statt .HTML sein? Dann sind die Tabs aber keine Tabs mehr.