2012-10-27 93 views
1

我正在學習PHP,如果可能的話需要一點幫助。PHP會議建議需要請

我知道我錯過了一些簡單的她,但無法弄清楚,我有以下一塊PHP將用戶從他們剛輸入用戶名和密碼的頁面轉移到下一頁該網站名爲homepage.php。這個腳本需要生成一個會話名稱,但我不確定是否要放它。

然後我需要一小段PHP然後檢查用戶名和密碼是否正確,然後加載頁面供用戶查看,這是否有意義,任何人都可以幫忙?

<?php 
$host="localhost"; // Host name 
$username="root"; // username 
$password=""; // password 
$db_name="gotswapuser"; // Database name 
$tbl_name="users"; // Table name 


mysql_connect("$host", "$username", "$password"); 
mysql_select_db("$db_name"); 


$myusername=mysql_real_escape_string($_POST['myusername']); 
$mypassword=mysql_real_escape_string($_POST['mypassword']); 

$sql="SELECT * FROM $tbl_name WHERE name='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

$count=mysql_num_rows($result); 

if($count==1){ 
    header("location:homepage.php"); 
} else { 
    header("location:subscriptionpage.php"); 
} 
?> 

回答

2

您應該使用PDO進行數據庫訪問,而不是mysql。 Mysql正在被棄用的過程中,並不是很好的做法。

要回答但是你的問題,:

使用你的代碼,你只是想對「成功」的登錄添加幾行:

if($count==1) { 
    session_start(); 
    $_SESSION["logged_in"] = 1; 
    header("location:homepage.php"); 
} else { 
    header("location:subscriptionpage.php"); 
} 

然後,網頁,上用戶應該登錄,做這樣的事情:

session_start(); 
if (! isset($_SESSION["logged_in"]) || ! $_SESSION["logged_in"]) { 
     header("location:signin.php"); 
     exit; 
} 
0

首先,您需要開始會話。見下:

session_start(); 

開始你的會話後,你可以使用$ _SESSION超全局存儲和檢索變量。見下:

$_SESSION['me'] = 'John Doe'; 
$_SESSION['you'] = 'Jane Doe'; 
$_SESSION['us'] = 'Doe Family'; 

echo $_SESSION['us']; 

只要確保始終使用session_start();在嘗試訪問這些變量之前。在PHP.net上閱讀更多信息:http://php.net/manual/en/function.session-start.php

一旦運行了session_start(),就可以使用session_id()函數輕鬆檢索會話ID。如果你還沒有使用session_start(),它將返回null。見下:

echo session_id(); // Returns session ID. 

希望這會有所幫助!祝你的項目好運。

0

你幾乎在那裏。你只需要: 1,請確保您的會話已啓動:session_start(); 2,爲您的用戶名會話變量:$_SESSION['username'] = $result[0]['username'];

if($count==1){ 
    $_SESSION['username'] = $result[0]['username']; 
    header("location:homepage.php"); 
} else { 
    header("location:subscriptionpage.php"); 
} 

幾件事情建議。在調用你的mysql語句獲取行或對象以便能夠爲你的會話引入你的用戶名之後。

2

的MySQL命令正在貶值,你應該考慮的mysqli或PDO,但除此之外,你應該在if從句

  if(found){ 
      session_start(); 
      $_SESSION['username'] = $myusername; 
       redirect user 
      } 
      rest of code..... 
啓動會話