1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

bootstrap-tab mit php deaktivieren

Dieses Thema im Forum "PHP" wurde erstellt von Zwiebelschale, 25. Dezember 2016.

  1. Zwiebelschale

    Zwiebelschale Grünschnabel

    Hi,

    Der Benutzer registriert sich und die Daten werden in eine CSV geschrieben:
    Code (Text):
    1. 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:
    1. $search      = $anmelden_name;
    2. $lines       = file('Benutzer.csv');
    3. $line_number = false;
    4.  
    5. while (list($key, $line) = each($lines) and !$line_number) {
    6.    $line_number = (strpos($line, $search) !== FALSE );}
    7.  
    8. if($line_number){
    9.    header('Location:  nächsteSeite.php');}
    10.  
    11. else{header('Location: alert_anmelden_NICHT_erfolgreich.php');
    12. }
    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:
    1. <!DOCTYPE html>
    2. <html lang="de">
    3.   <title>Bootstrap Case</title>
    4.   <meta charset="utf-8">
    5.   <meta name="viewport" content="width=device-width, initial-scale=1">
    6.   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    7.   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    8.   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    9. </head>
    10.  
    11. <div class="container">
    12.  
    13.   <ul class="nav nav-pills">
    14.  
    15.     <li><a data-toggle="pill" href="#menu1">x</a></li>
    16.     <li><a data-toggle="pill" href="#menu2">x</a></li>
    17.     <li><a href="#menu3">x</a></li>
    18.   </ul>
    19.  
    20.   <div class="tab-content">
    21.  
    22.     <div id="menu1" class="tab-pane fade">
    23.       <h3>x</h3>
    24.     </div>
    25.     <div id="menu2" class="tab-pane fade">
    26.       <h3>x</h3>
    27.     </div>
    28.     <div id="menu3" class="tab-pane fade">
    29.       <h3>x</h3>
    30.     </div>
    31.   </div>
    32. </div>
    33.  
    34. </body>
    35. </html>
    36. </html>
     
  2. EuroCent

    EuroCent KlappStuhl 2.0

    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:
    1. <?php
    2. $admin = 0;
    3.  
    4. if($admin == 1) header('LOCATION: index.php');
    5. else header('LOCATION: weiter.php');
    6. ?>
    weiter.php
    PHP:
    1. <?php
    2. if($admin == 1) {
    3.    
    4. }
    5. ?>
    Sollte theoretisch fuktionieren :)
     
  3. Zwiebelschale

    Zwiebelschale Grünschnabel

    Soll in beiden Fällen dieselbe Seite sein
     
  4. EuroCent

    EuroCent KlappStuhl 2.0

    Dann passe es doch einfach an :)
     
  5. Zwiebelschale

    Zwiebelschale Grünschnabel

    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:
    1.    
    2. <?php  
    3. $isAdmin = false;
    4. $fp = fopen('Benutzer.csv', 'r');
    5. if (!$fp) exit('datei nicht gefunden');
    6. // fgets($fp); // zeile 1 überspringen
    7. while (!feof($fp)) {
    8.  $line = fgetcsv($fp);
    9.  if (!$line) break; // ende oder fehler
    10.  if (!isset($line[0])) continue; // leere zeile
    11.  list($name, $pass, $id) = $line;
    12.  if ($id === 1) {
    13.    $isAdmin = true;
    14.    break;
    15.  }
    16. }
    17. fclose($fp);
    18. if ($isAdmin) {
    19.   //istAdmin
    20. } else {
    21.    //nichtAdmin
    22. }
    23.  
    24. ?>  
    25.  
    26. <div class="container">
    27.  
    28.   <ul class="nav nav-pills">
    29.  
    30.     <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    31.     <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    32.     <li><a href="#menu3">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>
    33.   </ul>
    34.  
    35.   <div class="tab-content">
    36.  
    37.     <div id="menu1" class="tab-pane fade">
    38.       <h3>QUIZ</h3>
    39.     </div>
    40.     <div id="menu2" class="tab-pane fade">
    41.       <h3>HIGHSCORE</h3>
    42.     </div>
    43.     <div id="menu3" class="tab-pane fade">
    44.       <h3>NEUES QUIZ ERSTELLEN</h3>
    45.     </div>
    46.   </div>
    47. </div>
    48.  
    49. </body>
    50. </html>
    51. </html>
     
  6. Jan-Frederik Stieler

    Jan-Frederik Stieler Monsterator Moderator

    Hi,
    Warum packst Du dein HTML nicht in die if-Abfrage rein und passt es jeweils entsprechend an?

    Gruß
     
  7. Zwiebelschale

    Zwiebelschale Grünschnabel

    Also einfach so?:

    HTML:
    1. if ($isAdmin) { ?>
    2.  
    3.     <div class="container">
    4.  
    5.   <ul class="nav nav-pills">
    6.  
    7.     <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    8.     <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    9.     <li><a href="#menu3">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>
    10.   </ul>
    11.  
    12.   <div class="tab-content">
    13.  
    14.     <div id="menu1" class="tab-pane fade">
    15.       <h3>QUIZ</h3>
    16.     </div>
    17.     <div id="menu2" class="tab-pane fade">
    18.       <h3>HIGHSCORE</h3>
    19.     </div>
    20.     <div id="menu3" class="tab-pane fade">
    21.       <h3>NEUES QUIZ ERSTELLEN</h3>
    22.     </div>
    23.   </div>
    24.  
    25. </div>
    26.  
    27.  
    28. <?php } else { ?>
    29. </body>
     
  8. DerKleene1

    DerKleene1 Mitglied

    So z.B.:
    PHP:
    1. <body>
    2.  
    3. <?php
    4. $isAdmin = false;
    5. $fp = fopen('Benutzer.csv', 'r');
    6. if (!$fp) exit('datei nicht gefunden');
    7. // fgets($fp); // zeile 1 überspringen
    8. while (!feof($fp)) {
    9. $line = fgetcsv($fp);
    10. if (!$line) break; // ende oder fehler
    11. if (!isset($line[0])) continue; // leere zeile
    12. list($name, $pass, $id) = $line;
    13. if ($id === 1) {
    14.    $isAdmin = true;
    15.    break;
    16. }
    17. }
    18. fclose($fp);
    19. if ($isAdmin) {
    20.   $isAdminHTML1 = "<li><a href=\"#menu3\">NEUES QUIZ ERSTELLEN (ADMIN)</a></li>";
    21.   $isAdminHTML2 = "<div id=\"menu3\" class=\"tab-pane fade\">
    22.    <h3>NEUES QUIZ ERSTELLEN</h3>
    23.  </div>";
    24. } else {
    25.    $isAdminHTML1 = "";
    26.    $isAdminHTML2 = "";
    27. }
    28. ?>
    29. <div class="container">
    30.   <ul class="nav nav-pills">
    31.     <li><a data-toggle="pill" href="#menu1">QUIZ</a></li>
    32.     <li><a data-toggle="pill" href="#menu2">HIGHSCORE</a></li>
    33.     <?php echo $isAdminHTML1; ?>
    34.   </ul>
    35.   <div class="tab-content">
    36.     <div id="menu1" class="tab-pane fade">
    37.       <h3>QUIZ</h3>
    38.     </div>
    39.     <div id="menu2" class="tab-pane fade">
    40.       <h3>HIGHSCORE</h3>
    41.     </div>
    42.     <?php echo $isAdminHTML2; ?>
    43.   </div>
    44. </div>
    45. </body>
    46. </html>
    47. </html>
    Habe es nicht getestet, aber so kann es aussehen. Nun kann man ja erkennen wie es funktionieren sollte.
     
  9. Jan-Frederik Stieler

    Jan-Frederik Stieler Monsterator Moderator

    @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
     
  10. Zwiebelschale

    Zwiebelschale Grünschnabel

    Danke schon mal. Jetzt gibt er aber
    Code (Text):
    1. "; $HTML2 = "
    2. NEUES QUIZ ERSTELLEN
    3. "; } } else { $HTML1 = ""; $HTML2 = ""; } ?>
    zwischen den Tabs aus?

    und
    Code (Text):
    1. $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: 19. Januar 2017
  11. Jan-Frederik Stieler

    Jan-Frederik Stieler Monsterator Moderator

    Kannst Du bitte deinen gesammten PHP Code zeigen?
    Du musst irgendwo einen Syntaxfehler drinnen haben.

    Grüße
     
  12. Zwiebelschale

    Zwiebelschale Grünschnabel

    PHP:
    1. <html lang="eng">
    2. <head>
    3.     <title>Bootstrap Case</title>
    4. </head>
    5. <body>
    6.     <?php
    7.     $fp = fopen('Benutzer.csv', 'r');
    8.     if (!$fp) exit('datei nicht gefunden');
    9.     while (!feof($fp)) {
    10.     $line = fgetcsv($fp);
    11.     if (!$line) break; // ende oder fehler
    12.     if (!isset($line[0])) continue; // leere zeile
    13.     list($name, $pass, $id) = $line;
    14.     if ($name === $anmelden_name && $pass === $anmelden_passwort) {
    15.     $gefunden = true;
    16.     break;
    17.     }
    18.     }
    19.     if ($gefunden) {
    20.     if($id == 1){
    21.     $HTML1 = "<li><a data-toggle='pill' href='#menu3'>Hello World</a></li>";
    22.     $HTML2 = "<div id='menu3' class='tab-pane fade'><h3>NEUE</h3></div>";
    23.     }
    24.     } else {
    25.     $HTML1 = "";
    26.     $HTML2 = "";
    27.     }
    28.     ?>
    29.     <div class="container">
    30.         <ul class="nav nav-pills">
    31.             <li><a data-toggle="pill" href="#menu1">x</a></li>
    32.             <li><a data-toggle="pill" href="#menu2">x</a></li>
    33.             <?php echo $HTML1; ?>
    34.         </ul>
    35.         <div class="tab-content">
    36.             <div id="menu1" class="tab-pane fade">
    37.                 <h3>x</h3>
    38.             </div>
    39.             <div id="menu2" class="tab-pane fade">
    40.                 <h3>x</h3>
    41.             </div>
    42.             <div id="menu3" class="tab-pane fade">
    43.                 <?php echo $HTML2; ?>
    44.             </div>
    45.         </div>
    46.     </div>
    47. </body>
    und es muss .PHP statt .HTML sein? Dann sind die Tabs aber keine Tabs mehr.
     
  13. Jan-Frederik Stieler

    Jan-Frederik Stieler Monsterator Moderator

    Hi,
    Also ich hab jetzt keinen Fehler gefunden.
    Wenn ich Dich jetzt richtig verstanden habe dann speicherst du deine PHP Dateien als HTML Dateien ab. Das ist falsch, außer dein Server ist entsprechend konfiguriert.
    Aber warum sind dann die Tabs keine Tabs mehr? HTML ist HTML egal ob in Php oder ner HTML Datei.
     
  14. Zwiebelschale

    Zwiebelschale Grünschnabel

    Hab den Fehler. Die Klammer in Zeile 23 muss weg und unter den Else Teil.
     
Die Seite wird geladen...