2014-01-28 286 views
2

註銷會議上,我想創建登錄和註銷會話創建登錄和PHP和數據庫

我在MySQL數據庫表看上去就像命名爲loginproc.php這

CREATE TABLE members ( 
id int(10) NOT NULL auto_increment, 
username varchar(20) NOT NULL, 
password varchar(20) NOT NULL, PRIMARY KEY (id)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 

MySQL連接

<?php 

// Inialize session 
session_start(); 

// Include database connection settings 
$hostname = 'localhost';  // Your MySQL hostname. Usualy named as 'localhost',     so you're NOT necessary to change this even this script has already  online on the internet. 
$dbname = 'database'; // Your database name. 
$username = 'root';    // Your database username. 
$password = '';     // Your database password. If your database has no   password, leave it empty. 

// Let's connect to host 
mysql_connect($hostname, $username, $password) or DIE('Connection to host is failed,  perhaps the service is down!'); 
/Select the database 
mysql_select_db($dbname) or DIE('Database name is not available!'); 


// Retrieve username and password from database according to user's input 

$login = mysql_query("SELECT count(*) FROM members WHERE (username = '" .  mysql_real_escape_string($_POST['user']) . "') and (password = '" .  mysql_real_escape_string(md5($_POST['pass'])) . "')"); 
$result=mysql_fetch_array($login); 
// Check username and password match 

if (mysql_num_rows($result) == 1) { 
// Set username session variable 
$_SESSION['username'] = $_POST['user']; 

// Jump to secured page 
header('Location: securedpage.php'); 
} 
else { 
// Jump to login page 
header('Location:career.php'); 
} 

?> 

然後securedpage.php

創建
<?php 

// Inialize session 
session_start(); 

// Check, if username session is NOT set then this page will jump to login page 
if (!isset($_SESSION['user'])) { 
header('Location: career.php'); 
} 

?> 
<html> 

<head> 
<title>Secured Page</title> 
</head> 

<body> 

<p>This is secured page with session: <b><?php echo $_SESSION['username']; ?></b> 
<br>You can put your restricted information here.</p> 
<p><a href="logout.php">Logout</a></p> 

</body> 

</html> 

的index.php

<html> 
<head> 
</head> 
<body> 

<form action="loginproc.php" method="post"> 




       UserName:<input type="text" name="user" > 

    <p> &nbsp;</p> 
    Password:<input type="password" name="pass" > 
<p>&nbsp;</p> 

    <input type="submit" value=" Login Here " > 
    &nbsp; 
    <span class="style30">| New?</span> 
    <a href="signup.php"><span class="style32">Start Here</span> 

</form></body></html> 

,最後註銷命名爲logout.php頁面

<?php 

    // Inialize session 
    session_start(); 

// Delete certain session 
    unset($_SESSION['username']); 
    // Delete all session variables 
    // session_destroy(); 

// Jump to login page 
header('Location: index.php'); 

    ?> 

現在我的問題是,當我輸入用戶名和密碼,它會留只有在index.php,它不會進入另一個頁面。請看看這段代碼,並告訴我什麼時候我做錯了。

謝謝。

+0

的'index.php'代碼看起來好像沒什麼問題。在index.php中還有沒有其他的代碼在這裏粘貼?另外這行'loginproc.php'中的'/選擇數據庫'沒有被正確評論,並且會被解釋爲一個語句。 –

+0

如果這是你的實際代碼,該行'/選擇database'缺少一個'/'所以嘗試將其更改爲'//選擇database' - 這種類型的PHP評論需要2個''//它 –

+0

不'$ _SESSION [「用戶」]'是'$ _SESSION [「用戶名」]' –

回答

2

不要使用此行

$result=mysql_fetch_array($login); 

這將結果取到$結果作爲數組,後來自己使用的是mysql_num_rows()函數(用於資源,即你的情況$登錄)

你下面的代碼

 $login = mysql_query("SELECT count(*) FROM members WHERE (username = '" .  mysql_real_escape_string($_POST['user']) . "') and (password = '" .  mysql_real_escape_string(md5($_POST['pass'])) . "')"); 

     // Check username and password match 

     if (mysql_num_rows($login) == 1) { 
     // Set username session variable 
     $_SESSION['username'] = $_POST['user']; 

     // Jump to secured page 
     header('Location: securedpage.php'); 
     } 
     else { 
     // Jump to login page 
     header('Location:career.php'); 
     } 
0

我看到兩個問題:

  1. mysql_num_rowsresource類型爲參數。您傳遞的結果是mysql_fetch_array,它可以是數組或FALSE。
  2. 您使用的是不推薦使用的mysql擴展名。對於新代碼,您應該使用MySQLiPDO

要解決在點1 mysql_num_rows問題,請使用if (mysql_num_rows($login)) {

$login = mysql_query("SELECT count(*) FROM members WHERE (username = '" .  mysql_real_escape_string($_POST['user']) . "') and (password = '" .  mysql_real_escape_string(md5($_POST['pass'])) . "')"); 
$result=mysql_fetch_array($login); 
// Check username and password match 

if (mysql_num_rows($login) == 1) { 
+0

查詢的var_dump(),但這樣做仍然呈現像mysqli_num_rows錯誤()預計參數1是mysqli_result,在第24行給出的F:\ wamp \ www \ iwebtechnik \ loginproc.php中給出的布爾值 – user3242335

+0

這是因爲您的查詢失敗。嘗試在MySQL客戶端中執行生成的查詢。 – vee

1

我對你的問題的解決方案。你必須一點修改代碼如下所述 -

<?php 

// Inialize會議

session_start(); 

//----***Use variabel to capture start time *****------ 

//檢查,如果用戶名會話也不會設置這個頁面會跳轉到登錄頁面

if (!isset($_SESSION['user'])) { 
header('Location: career.php'); 
} 

?> 

And in logout page add one entry as - 

<?php 

// Inialize會議

session_start(); 

//刪除某些會話

unset($_SESSION['username']); 


//---****Use end time variable --------- 
// Subtract previous start time variable and end time variale 

//刪除所有會話變量

// session_destroy(); ?

// Jump to login page 

    header('Location: index.php'); 

>

+0

mysqli_num_rows()期望在F中給出的參數1被mysqli_result,布爾:\瓦帕\ WWW \ iwebtechnik \ loginproc.php上線24 – user3242335

+0

問題是與查詢..其不執行。請分享你的查詢 – Partap

+0

「來自會員的WHERE SELECT COUNT(*)(用戶名=「」。mysql_real_escape_string($ _ POST [ '用戶'])。「')和(密碼= '」。mysql_real_escape_string(MD5($ _ POST [' 通']))。「')」); – user3242335

1

您在這裏有一個問題:

$login = mysql_query("SELECT count(*) FROM members WHERE (username = '". mysql_real_escape_string($_POST['user']) . "') and (password = '" .  mysql_real_escape_string(md5($_POST['pass'])) . "')"); 
$result=mysql_fetch_array($login); 
// Check username and password match 

if (mysql_num_rows($result) == 1) { 

您的查詢將始終檢索上mysql_num_rows($結果) 1行,因爲它檢索用戶的計數與條件,如果沒有一個匹配用戶名和密碼,查詢檢索

|count(*)| 
+--------+ 
|0  | 

,這是1行

0
  index.php 

      <!DOCTYPE html> 
      <html > 
       <head> 
       <meta charset="UTF-8"> 
       <title></title> 
       <link rel="stylesheet" href="css/style.css"> 
       <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700,800' rel='stylesheet' type='text/css'> 
       <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png"> 
       <style> 
       .head{ 
       margin:auto; 
       margin-top: 40px; 
       margin-bottom: 40px; 
       width: 500px; 
       height: 50px; 
       text-align:center; 
      } 
       </style> 


       </head> 

       <body> 


        <div class="head"><h1> <span class="strong"></span></h1></div> 
       <div style="padding:0;" align="center" class="login-page"> 
        <img src="img/oms.png"><br><br> 
       <div class="form" > 


       <form class="login-form" name="frm" action="Logging.php" method="POST"> 
        <input type="text" placeholder="username" name="usrname"/> 
        <input type="password" placeholder="password" name="password"/> 
         <button type="submit" onclick="return logincheck()">login</button> 

        <p class="message"> Forgot Password <a href="forgotpass1.php">Click here</a></p> 
       </form> 
       </div> 
      </div> 
       <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 

       <script type="text/javascript"> 

       function logincheck() 
        { 
        var x = document.frm.usrname.value; 
        var y = document.frm.password.value; 
        if(x =="" || x == null){ 
        alert("Enter the Username "); 
        return false; 
        } 
        else if(y=="" || y == null){ 
        alert("Enter the Password "); 
        return false; 
        }else{ 
        return true; 
        } 
        } 




       $('.message a').click(function(){ 
       $('form').animate({height: "toggle", opacity: "toggle"}, "slow"); 
      }); 
       </script> 




       </body> 
       <?php include 'footer1.php';?> 
      </html> 


      Logging.php 

      <!DOCTYPE html> 
      <html > 
       <head> 
       <meta charset="UTF-8"> 
       <title></title> 
       <link rel="stylesheet" href="css/style.css"> 
       <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700,800' rel='stylesheet' type='text/css'> 
       <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png"> 
       <style> 
       .head{ 
       margin:auto; 
       margin-top: 40px; 
       margin-bottom: 40px; 
       width: 500px; 
       height: 50px; 
       text-align:center; 
      } 
       </style> 


       </head> 

       <body> 


        <div class="head"><h1> <span class="strong"></span></h1></div> 
       <div style="padding:0;" align="center" class="login-page"> 
        <img src="img/oms.png"><br><br> 
       <div class="form" > 


       <form class="login-form" name="frm" action="Logging.php" method="POST"> 
        <input type="text" placeholder="username" name="usrname"/> 
        <input type="password" placeholder="password" name="password"/> 
         <button type="submit" onclick="return logincheck()">login</button> 

        <p class="message"> Forgot Password <a href="forgotpass1.php">Click here</a></p> 
       </form> 
       </div> 
      </div> 
       <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 

       <script type="text/javascript"> 

       function logincheck() 
        { 
        var x = document.frm.usrname.value; 
        var y = document.frm.password.value; 
        if(x =="" || x == null){ 
        alert("Enter the Username "); 
        return false; 
        } 
        else if(y=="" || y == null){ 
        alert("Enter the Password "); 
        return false; 
        }else{ 
        return true; 
        } 
        } 




       $('.message a').click(function(){ 
       $('form').animate({height: "toggle", opacity: "toggle"}, "slow"); 
      }); 
       </script> 




       </body> 
       <?php include 'footer1.php';?> 
      </html> 

     Logout.php 

     <?php 

     include 'header.php'; 
     include 'footer.php'; 




     session_destroy(); 

     echo "<script>alert('Successfully Logged Out');window.location.href='index.php'</script>"; 

     ?> 

    forgotpass1.php 

    <!DOCTYPE html> 
    <html > 
     <head> 
     <meta charset="UTF-8"> 
     <title></title> 
     <link rel="stylesheet" href="css/style.css"> 
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700,800' rel='stylesheet' type='text/css'> 
     <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png"> 
     <style> 
     .head{ 
     margin:auto; 
     margin-top: 40px; 
     margin-bottom: 40px; 
     width: 500px; 
     height: 50px; 
     text-align:center; 
    } 
     </style> 


     </head> 

     <body> 


      <div class="head"><h1> <span class="strong"></span></h1></div> 
     <div style="padding:0;" align="center" class="login-page"> 
      <img src="img/oms.png"><br><br> 
     <div class="form" > 


     <form class="login-form" name="frm" action="validateemail1.php" method="POST"> 
      <input type="text" placeholder="Email" name="email"/> 
      <table width="100%"> 
      <tr><td align="left"> 
       <button type="submit" name="Back" value="Back" onclick="history.go(-1);" >Back</button></td><td>&nbsp </td><td align="left"> <button type="submit" name="submit" onclick="return logincheck()">Send Email</button></td></tr></table> 

     </form> 
     </div> 
    </div> 
     <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 

     <script type="text/javascript"> 

     function logincheck() 
      { 

      var y = document.frm.email.value; 
      if(y=="" || y == null){ 
      alert("Enter the Email "); 
      return false; 
      }else{ 
      return true; 
      } 
      } 




     $('.message a').click(function(){ 
     $('form').animate({height: "toggle", opacity: "toggle"}, "slow"); 
    }); 
     </script> 




     </body> 
    </html> 
    <?php include 'footer1.php';?> 


    validateemail1.php 

    <?php 
    include 'dbConfig.php'; 


    if (isset($_POST['submit'])){ 
    $email=$_POST['email']; 


    $n=0; 

        $query=mysqli_query($con,"SELECT * FROM signup where email ='".$email."'"); 

        while($row=mysqli_fetch_array($query)) 
        { 
        $db_email=$row['email']; 
        if($db_email==$email) 
        {    
        $n++; 
        $to=$row['email']; 
        $subject = "Your Password "; 
        $txtn = '<table align="center" border="0" cellpadding="0" cellspacing="0" width="1000"> 
     <tr> 
      <td align="center" bgcolor="#2ce0e8" style="padding: 7px 0 10px 0;background:#f55322 "> 
       <img src="http://saiss.co.in/supreme_oms/img/oms.png" alt="http://saiss.co.in/supreme_oms/index" width="84" height="36" style="display: block;" /> 
      </td> 
     </tr> 
     <td bgcolor="#ffffff" style="padding: 20px 0 30px 0"><center>Hi ,'.$row["username"].'<br> 
     Your password is: '.$row["password"].'<br> <a href="http://saiss.co.in/supreme_oms/index.php">Click to Login</a></center> 
     </td> 
     <tr> 
      <td bgcolor="#f55322" style="padding: 25px 0px 18px 23px;color: #fff;font-size: 12px;"> 
       &copy; <?php echo date("Y"); ?> OMS All RIGHTS RESERVED. 
      </td> 
      <td align="right"> 
      </td> 
     </tr> 
    </table>'; 

     $headers = "MIME-Version: 1.0" . "\r\n"; 
      $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
      $headers .= 'From: <OMS>' . "\r\n"; 


        mail($to,$subject,$txtn,$headers); 
        echo "<script>alert('We Sent Password To Your Email Address');window.location.href='index.php';</script>"; 
        } 
        } 
        if($n==0) 
        { 
        echo "<script>alert('Your email is Not Matching with our database');window.location.href='index.php';</script>"; 
        } 
        }    
    ?> 
Logging.php 
<?php 
session_start(); 
include 'dbConfig.php'; 
$logname = $_POST['usrname']; 
$logpass = $_POST['password']; 

if(isset($_POST['usrname'])) { 
    $name = $_POST['usrname']; 
} 

if(isset($_POST['password'])) { 
    $name = $_POST['password']; 
} 
if($logname != null && trim($logname) !="" && trim($logpass) !="" && $logpass !=null) 
{ 
    $getvalue =""; 
    $sql_query = "Select * from signup where username='".$logname."'and password ='".$logpass."'"; 
    $changepass=""; 
    $result_set = mysqli_query($con,$sql_query); 

    if(mysqli_num_rows($result_set)==0){ 
     echo "<script>alert('Invalid Username/Password');window.location.href='index.php'</script>";   
    }else{ 
     while($row=mysqli_fetch_row($result_set)) 
     { 
     $getvalue = $row[0]; 
     $changepass = $row[3]; 
     } 
     $_SESSION["usrnam"] = $getvalue; 
     if($changepass=="Y"){ 
      echo "<script>window.location.href='changepassword.php'</script>"; 
     }else 
     { 
     echo "<script>window.location.href='dashboard.php'</script>"; 
     } 
    } 

}else{ 
    echo "<script>alert('Invalid Username/Password');window.location.href='index.php'</script>";   
} 
?>