0

かなり基本的なログインページがあります。PHPの内外を学びながらプロトタイプを開発しています。

MySql データベースでは、ユーザー ID、ユーザー名、パスコード、タレント、顧客のようになっています。才能と顧客はどちらもバイナリであり、どちらか一方だけが True になります。

だから私がやろうとしているのは、才能 = 1 の場合は index.php に送信し、顧客 = 1 の場合はRecruiter.php に送信することです。

基本的なことは 90% 確実ですが、才能と顧客をチェックするために追加の if を追加したため、スクリプトが壊れてしまいました :)

最後に、各ページでこのチェックを実行して、顧客がタレント ページにアクセスしたり、その逆を行ったりしないようにする必要があります。

私は正しい軌道に乗っていますか??

私の現在のスクリプトはこれを行います:

     <?php
        include("resource/config.php");
        if($_SERVER["REQUEST_METHOD"] == "POST")
        {
        // username and password sent from Form 
            $myusername=addslashes($_POST['username']); 
            $mypassword=addslashes($_POST['password']); 

            $sql="SELECT UserID, talent, customer FROM useradmin WHERE username='$myusername' and passcode='$mypassword'";
            $result=mysql_query($sql);
            $row=mysql_fetch_array($result);
            $active=$row['active'];
            $count=mysql_num_rows($result);
        // If result matched $myusername and $mypassword, table row must be 1 row

        if ($row['talent']==1) {
                if ($count==1) {
                    $_SESSION['login_user']=$myusername;
                    header("location: index.php");
                }
                else {
                    $error="Your Email or Password is invalid";
                }
            }    
        elseif ($row['customer']==1) {
                if ($count==1) {
                    $_SESSION['login_user']=$myusername;
                    header("location: recruiter.php");
                }
                else {
                    $error="Your Email or Password is invalid";
                }
            }

        else {
            $error="Your Login Name or Password is invalid";
            }
        }
    ?>

また、ログインしているユーザーだけがアクセスできるようにするために、これをすべてのページの上部に配置しています。

<?php
session_start();
include('config.php');
$user_check=$_SESSION['login_user'];

$ses_sql=mysql_query("select username from useradmin where username='$user_check' ");

$row=mysql_fetch_array($ses_sql);

$login_session=$row['username'];

if(!isset($login_session)) {
     header("Location: login.php");
  }
?>
4

2 に答える 2

2

次のような単純な比較はできません。

if (['talent']==1)

おそらく次のように比較したいと思うでしょう:

if ($row['talent']==1)

本質的に、あなたがしていたことは、配列をtalentagainstの単一要素と比較することでした1

于 2013-09-11T19:49:27.947 に答える
1

それはあるべきでif ($row['talent']==1)あり、elseif ($row['customer']==1)

于 2013-09-11T19:49:04.930 に答える