2014-05-19 84 views
0

我不是一個程序設計師在所有的,所以我需要一些幫助wtih這種情況:檢查餅乾和設置會話

我需要cookie和session設置爲工作像這樣的轉診系統: www.mywebsite。 com /?id = affiliate

  1. 我需要chek如果會員存在數據庫中。
  2. 如果是這樣來獲取用戶名來設置一個cookie和名稱在頁面中打印。
  3. 如果不是,我會使用默認會員,如頭號會員。 餅乾必須是有效期爲30天

我的問題之一是,當一個refered顧客來我的網站不../?id=affiliate的鏈接,因爲我需要檢查是否有註冊一些餅乾如果不是用默認會員設置一個全新的cookie。

我寫了這段代碼,但我110%確定它不正確。 請你請看看並提出一些建議。我很感激。

代碼:

$id = $_POST("id"); 
if ($_POST("id") = null) { 
    if(isset($_COOKIE['pro'] )) 
    { 
     $id = $_COOKIE['pro']; 
    }else{ 
     $id = "defaultaffiliate" 
    } 
} 
session_start(); 
$rs = mysql_query("select * from users where Username='$id'"); 
$arr=mysql_fetch_array($rs); 
if(mysql_num_rows($rs) > 0){ 
    $uid=$arr['id']; 
    $_SESSION["name"]=$arr['Name']; 
    setcookie("pro", $uid, time()+30 * 24 * 3600); 
}else{ 
    $uid='claudioxerez'; 
    $_SESSION["name"]='Claudio Xerez'; 
    setcookie("pro", $uid, time()+30 * 24 * 3600); 
} 

回答

0

對於設置會話裏的Cookie:

的config.php:

$SERVER="localhost"; 
    $DB_NAME="********"; 
    $USERNAME="*******"; 
    $PASSWORD="*******"; 


$CONN=mysql_connect($SERVER,$USERNAME,$PASSWORD); 
mysql_query("set names UTF8",$CONN); 
if(!$CONN) 
{ 
    die('ERROR IN CONNECT TO DATABASE!'.mysqli_connect_error());  
    mysql_close(); 
} 
else 
{ 
    mysql_select_db($DB_NAME,$CONN); 
} 

的login.php:

<form enctype="multipart/form-data" method="post" action="Config/Checklogin.php"> 
    <input name="txtUsername" type="text" id="txtUsername" autocomplete="off" /> 
    <input name="txtPassword" type="password" id="txtPassword" /> 
    <p>Remember ME .</p><input name="chkRemember" id="chkRemember" type="checkbox"  />< 
    <input type="submit" value="Submit" /> 
</form> 

Config/Checklogin.php:

session_start(); 
     include("Config.php"); 
if(!empty($_POST["txtUsername"])&& !empty($_POST["txtPassword"])) 
{ 

     $User=$_POST["txtUsername"]; 
     $PASSWORD=$_POST["txtPassword"]; 
      $Remember=$_POST["chkRemember"]; 
      setSession($User,$PASSWORD,$Remember); 
} 
if( (ctype_alnum($User)) ) 
{ 
     setSession($User,$PASSWORD,$Remember); // --> setSession is a function 
} 
else 
{ 

header("Location:../Login.php");   
} 
//------------------------ FUNCTION : 
function setSession($YOURUSERNAME,$YOURPASSWORD,$Remember) 
{ 


    /* ========================================================= */ 
    $sel="SELECT * FROM TBL_USERS WHERE USERNAME='".SAFE($YOURUSERNAME)."'". 
    "AND PASSWORD= '".SAFE($YOURPASSWORD)."'"; 

    //================================================= 



    $Result=QUERY($sel); 
    $Row=mysql_num_rows($Result); 

    if($Row==1) 
    { 
     if($Remember=='on') 
     { 
      setcookie("user", $YOURUSERNAME, time()+3600,"/"); // for an houre 
      header("location:../index.php"); 

     } 
     else if($Remember==NULL) 
     { 
       $_SESSION["user"]=$YOURUSERNAME; 
       header("location:../index.php"); 
     } 
    } 
    else 
    { 
      header("location:../login.php");  
    } 
+0

嗨@ Mohammad.Amin,可能是我沒有正確解釋我需要執行什麼。實際上這個代碼是跟蹤銷售不登錄。每個會員都有自己的跟蹤代碼,這是通過URL'../?id=affiliate'傳遞的,所以我需要選擇這個ID,看看是否有任何會員註冊,以信貸他/她的交易。我需要設置一個cookie來設置會話的原因是我會有許多會員推廣相同的產品和頁面。 – user3651297