2017-04-28 1 views
-2

Ich versuche Sitzung für meine College-Website zu starten, aber der Code funktioniert nicht und zeigt keine Fehler. HierSitzung startet nicht

ist die Datei index.php:

<?php 
ob_start(); 
session_start(); 
require("connection.php"); 

if (isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])) { 


     header("Location: home.html"); 
    }else{ 

    header("Location: login.php"); 
    } 

?> 

und hier ist die login.php Datei

<?php 
require("connection.php"); 
    if($_POST) 
    { 
     $computer_code=$_POST["computer_code"]; 
     $password=$_POST["password"]; 

     //$password_hash = md5($_POST["password"]); 

     if(!empty($password) && !empty($computer_code)){ 

     //$con=new mysqli("localhost","root","","bahubali_ips"); 
    $query="select Computer_Code,Password from student_info where Computer_Code = '".$computer_code."' AND Password = '".$password."'"; 


    $result=$con->query($query); 

     if($row=$result->fetch_assoc()){ 


      if($row["Computer_Code"] == $computer_code && $row["Password"] == $password){ 
       $user_id = $row["Computer_Code"]; 
       $_SESSION['user_id'] = $user_id; 
       header("Location: index.php"); 

      } 

     }else{ 
      echo "Invalid computer_code/Password combination"; 

      die(); 
     } 


     } 
    else{ 
     echo "all fields required"; 
    } 
    } 

    ?><form action="login.php" method="POST">...........</form> 

hier, wenn ich bei der Verwendung richtigen Anmeldeinformationen melden Sie sich statt dem Start der Sitzung und Senden mich an home.html die Bedingung tritt immer falsch auf, infolgedessen werde ich immer wieder mit dem Anmeldeformular konfrontiert.

Ich habe die $_SESSION['user_id'] Variable wiederholt und es enthält die user_id, aber irgendwie ist die Sitzung noch nicht festgelegt. Was habe ich falsch gemacht?

+0

* "noch zeigt Fehler" gesehen haben * - Ich glaube nicht, Siehe Fehlerbehandlung. –

+0

ist es auch nicht sicher, ob Sie die Sitzung in allen '.php' Dateien gestartet haben. Sie leiten sie auch in eine '.html' Datei um; was ich nicht weiß warum. Wenn Sie möchten, dass Personen nicht direkt auf diese Datei zugreifen können, funktioniert das nicht, es sei denn, Sie verwenden auch Sitzungen für diese Datei und ändern ihre Dateierweiterung (oder behandeln '.html' als php). –

+0

Wenn Ihr 'require (" connection.php ")' 'session_start();' enthält, sollten Sie einen Fehler bekommen, dass die Sitzung gestartet wurde. Verwenden Sie die Fehlerberichte von PHP und debuggen Sie dies. Fügen Sie auch 'exit;' zu jedem Header hinzu. –

Antwort

0

ist Folgendes zu beachten

  1. Sie nicht brauchen ob_start() den größten Teil der Zeit-aber es ist in Ordnung
  2. Statt die Sitzung auf jeder Seite des Startens, in der derconnection.php
  3. oben zu setzen
  4. Wenn Sie die Sitzung mehr als einmal starten, erhalten Sie möglicherweise die Fehler.
  5. Im Code, den Sie gezeigt, ich nicht session_start() im login.php

Hoffen, dass diese Eingaben hilft ..

+0

Punkt # 2. Was ist, wenn ihre Verbindung ausfällt? A: Header gesendet. –

+0

In dem gegebenen Szenario wird die Sitzung verwendet, um die Benutzer-ID zu speichern. Wenn ein Verbindungsfehler auftritt, ist die Sitzung nutzlos. – Kuru

+0

@Kuru TY. Es ist eine gute Idee, session_start() in connection.php zu setzen. Nein, Sie erhalten keinen Fehler beim mehrmaligen Starten der Sitzung. – Mahi