2014-02-05 62 views
0

我们正试图完成/修复下面的代码,我们似乎无法做到以下几点。SQL/PHP如果显示其他

  • 检查 'Check_Activation' 是数据库中设置为 'NULL'
  • IF值为NULL直接用户的一种形式(1,2,3)
  • 最后,如果' Check_Activation'已经被激活并且不是'NULL',以防止用户访问3种形式之一。

我基本知道它的存在,但我们似乎无法弄清楚最后的错误。

请快速浏览下面的代码,如果有人注意到任何不正确的东西,请通知我们。

Paste Bucket/Version
Website URL

<?php 

$username = $_POST['username']; 
$activation_code = $_POST['activation_code']; 
$activation_codeurl = $activation_code; 
$usernameurl = $username; 

$db_host = "localhost"; 
$db_name = "aardvark"; 
$db_use = "aardvark"; 
$db_pass = "aardvark"; 

$con = mysql_connect("localhost", $db_use, $db_pass); 
if (!$con){ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db($db_name, $con); 

$checkcustomer = mysql_query("SELECT `Check_Activation` FROM `members` WHERE `Username` = '".$username."' & `Activation` = '".$activation_code."'; "); 

    $array = mysql_fetch_array($checkcustomer); 
    if (is_null($array['Check_Activation'])) { 
      $username = substr($username, 0, 1); 
      if($username == '1') { 
       $redirect_url='form-one.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl; 
      } elseif($username == '2') { 
       $redirect_url='form-two.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl;    
      } elseif($username == '3') { 
       $redirect_url='form-three.php?membernumber='.$usernameurl.'&activation_code='.$activation_codeurl; 
      } 
      header("Location:". $redirect_url); 
    } 
    else 
    { 
?> 

Database Structure

+0

您应该使用PHP的MySQLi扩展,因为MySQL扩展因安全问题已被弃用。 –

回答

2

试试这个,你需要获取从表中的行,然后你可以检查值,

$val = mysql_fetch_array($checkcustomer); 
if (is_null($val['Check_Activation'])) 

,而不是

$val = mysql_query($checkcustomer); 
if ($val == 'NULL') 

注:使用mysqli_ *函数或PDO而不是使用mysql_ *函数(不建议使用)

0

之前,我进入你的所要完成的技术性,我有一些建议,为您的代码一般。您应该避免使用mysql api,因为它已过时,请改用mysqli api。我认为你也会发现它更易于使用。

现在的代码: 你有这一行代码,这似乎是不正确的,$ checkcustomer是从以前的查询的结果集,那么你为什么重新运行一个查询?

$val = mysql_query($checkcustomer); 

你已经有了结果集,以便做到这一点:

$array = mysql_fetch_array($checkcustomer); 

再取Check_Aviation的价值;

if (is_null($array['Check_Aviation'])) { 
    //Do Something 
} 

应该解决您的问题

+0

我尝试了Krish R和LagMasters两个例子,但我似乎无法得到这个工作,无论你在表单中输入什么,它仍然允许用户访问下一个表单 - http://awkreativ.com/freelance/analogue/barrio_activation/ – Delete

+0

有任何错误?或者它只是去下一个头集? –

相关问题