如果sql列具有特定值,则重定向

时间:2018-10-25 06:30:40

标签: php sql

是php的新手,因此非常感谢您的帮助。我有一个页面可以为用户创建帐户,而在创建帐户时,有一个选择字段,该字段具有三个特定值,可从“ notfcode”,“ tfail”,**“ tfcode”中进行选择。

还有另一个页面check.php,它允许用户检查他的ttype。我想做的是使页面尝试读取ttype的sql表行,如果用户帐户上显示的值是“ notfcode”,它将重定向到notfcode.php页面,如果它的“ tfail”将重定向到tfail。 php,如果其为“ tfcode”,则停留在页面上。下面是我一直在努力而没有取得成功的代码。

<?php session_start();
include_once ('session.php');
require_once 'class.user.php';
if(!isset($_SESSION['acc_no'])){
header("Location: login.php");
exit(); 
}
$reg_user = new USER();

$stmt = $reg_user->runQuery("SELECT * FROM account WHERE acc_no=:acc_no");
$stmt->execute(array(":acc_no"=>$_SESSION['acc_no']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$email = $row['email'];

$temp = $reg_user->runQuery("SELECT * FROM transfer WHERE email = '$email' ORDER BY id DESC LIMIT 1");
$temp->execute(array(":acc_no"=>$_SESSION['acc_no']));
$rows = $temp->fetch(PDO::FETCH_ASSOC);

$transfertype = $row['ttype'];   

if(isset($_SESSION['acc_no'])){
    $transfertype = $row['ttype'];
    if($transfertype == nocodetf){
        header("Location: nocodetf.php");
    }
    elseif($transfertype == tfail){
        header("Location: nocodetf.php");
    }
    else {
        header("Location: check.php");
    }
}


include_once ('counter.php');
?>

页面加载后,它不执行任何操作,也没有重定向,这是我想要的。朝着正确方向的指针将不胜感激。

2 个答案:

答案 0 :(得分:1)

这是字符串。

if($transfertype == "nocodetf"){ 要么 if($transfertype == 'nocodetf'){

激活PHP错误报告比显示PHP更有效。

error_reporting(E_ALL);
ini_set('display_errors', 1);

$transfertype = "foo";

if ($transfertype == nocodetf) {  # <-- as you did it
//...
}

// <b>Warning</b>:  Use of undefined constant nocodetf - assumed 'nocodetf' (this will throw an Error in a future version of PHP) in ...

答案 1 :(得分:0)

我终于可以使用此代码解决它

<?php

$transfertype = $row['ttype'];
if($transfertype == 'nocodetf'){
    header('Location: nocodetf.php'); }
else if($transfertype == 'failtf'){
    header('Location: failtf.php');
    exit();
}

?>

问题似乎是因为我没有引用php应该尝试从sql列中获取的值。