nur einmal eine session starten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nur einmal eine session starten

    Hallo,
    ich bekomme ständig eine Fehlermeldung:
    Cannot start session when header...
    Mittlerweile habe ich auch herausgefunden, woran es liegt, nur habe ich momentan ein Blackout und komme nicht weiter.
    Hier ert einmal der Code:
    PHP-Code:
    <?php
        
    if(isset($_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :user AND permission = 1 "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    session_start();
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/index_de_search.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }  
        }
    ?>
    <?php
        
    if(isset($_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM accounts_business WHERE USERNAME = :user AND permission = 1 "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    session_start();
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/index_de_business.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }      
        }
    ?>
    <?php
        
    if(isset($_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM backend_login WHERE USERNAME = :user "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    session_start();
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/backend/master.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }
        }
    ?>
    Ich würde gerne diesen Code zusammenfassen, damit die session nur einmal startet. Könnte da mir jemand behilflich sein. Vielen Dank.
    Zuletzt geändert von omroettger; 23.05.2020, 10:59.

  • #2
    hey omroettger,


    die Fehlermeldung kommt daher das du in deinem Script dreimal session_start(); machst, Dabei sollte das session_start() nur einmal vorkommen und zwar am anfang der Datei. Also direkt nach dem <?php.


    Es genügt wenn du es einmal aufrufst, so kannst du es in der Datei verwenden.


    Ich weiss nicht genau wie dein komplette Script aussieht aber ich mache das so das ich beim index.php einmal den session_start() aufrufe und dann kann ich es durchs einbinden also include oder require in meinen kompletten Script nutzen.


    Mfg
    Flavaslava




    PHP-Code:
     <?php    session_start();
        if(isset(
    $_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :user AND permission = 1 "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/index_de_search.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }  
        }

        if(isset(
    $_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM accounts_business WHERE USERNAME = :user AND permission = 1 "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/index_de_business.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }      
        }
        if(isset(
    $_POST["submit"])){
          require(
    "mysql.php");
          
    $stmt $mysql->prepare("SELECT * FROM backend_login WHERE USERNAME = :user "); //Username überprüfen
          
    $stmt->bindParam(":user"$_POST["username"]);
          
    $stmt->execute();
          
    $count $stmt->rowCount();
          if(
    $count == 1){
            
    //Username ist frei
            
    $row $stmt->fetch();
            if(
    password_verify($_POST["pw"], $row["PASSWORD"])){
              
    $_SESSION["username"] = $row["USERNAME"];
              
    header("Location: /languages/de_de/search_login/backend/master.php");
            } else {
              echo 
    "Der Login ist fehlgeschlagen";
            }
          } else {
            echo 
    "Der Login ist fehlgeschlagen";
          }
        }
    ?>

    Kommentar


    • #3
      Hallo Flavaslava,

      super, das ist ganz genau, was ich gesucht habe. Vielen Dank. Manchmal sieht man den Wald vor lauter Bäumen nicht.

      Kommentar

      Lädt...
      X