2014-05-19 83 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