dongpu3792 2017-10-27 00:07
浏览 39
已采纳

在使用数组条件(实现为Login)php的会话中使其成为true或false

I want to go generate Login form with menu condition (from database), but in session if i always problem Error:

Fatal error: Can't use function return value in write context in

Notes : On line 44,45 are $_SESSION['barang'] and $_SESSION['transaksi']

The code is:

$sql = "SELECT * FROM user WHERE username = '$_POST[username]' AND password = '$_POST[password]'"; $result = mysql_query($sql); $temukan = mysql_num_rows($result); if ($temukan > 0) {  $log = mysql_fetch_assoc($result);  $_SESSION['username'] = $_POST['username'];  $hak_akses = explode(", ", $log['hak_akses']);  $_SESSION['barang'] = !empty(in_array("barang", $hak_akses)) ? "TRUE" : "FALSE";  $_SESSION['transaksi'] = !empty(in_array("transaksi", $hak_akses)) ? "TRUE" : "FALSE";  header("location:halaman_utama.php"); } else {  echo"Gagal Login ..."; }
  • 写回答

1条回答 默认 最新

  • doujia9204 2017-10-27 01:07
    关注

    Your first step should be to properly style your code so that others (and yourself!) can easily read it.

    $sql = "SELECT * FROM user WHERE username = '$_POST[username]' AND password = '$_POST[password]'";
    
    $result = mysql_query($sql);
    
    $temukan = mysql_num_rows($result);
    
    if ($temukan > 0) {
        $log = mysql_fetch_assoc($result);
        $_SESSION['username'] = $_POST['username'];
        $hak_akses = explode(", ", $log['hak_akses']);
    
        $_SESSION['barang'] = !empty(in_array("barang", $hak_akses)) ? "TRUE" : "FALSE";
        $_SESSION['transaksi'] = !empty(in_array("transaksi", $hak_akses)) ? "TRUE" : "FALSE";
    
        header("location:halaman_utama.php");
    } else {
        echo"Gagal Login ...";
    }
    

    The function in_array() returns TRUE or FALSE already, so you probably want something more like:

    $_SESSION['barang'] = in_array("barang", $hak_akses) ? "TRUE" : "FALSE";

    $_SESSION['transaksi'] = in_array("transaksi", $hak_akses) ? "TRUE" : "FALSE";

    Unless you need to store the actual strings TRUE or FALSE in the $_SESSION variable, then an even more simple solution would be:

    $_SESSION['barang'] = in_array("barang", $hak_akses);

    $_SESSION['transaksi'] = in_array("transaksi", $hak_akses);

    This will will store 1 if the the string is in the array or 0 if it is not.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘