0

Wordpress Multisite では、ユーザーの許可レベル (permID) とサイト (virkID) の後でユーザーをリダイレクトしようとしています。したがって、サイト A の通常のユーザーの場合、アクセス許可レベル 3 でサイト A にリダイレクトされます。

カスタムログインページに次のコードがあります。

<?php if(isset($_POST['submitlogin']))
        {
            $brugerUsername=$_POST['brugerUsername'];
            $brugerPassword=$_POST['brugerPassword'];

            $sql="SELECT * FROM virksomheder 
            INNER JOIN brugere ON virksomheder.virkID = brugere.virkID 
            WHERE brugerUsername = '$brugerUsername' and brugerPassword = '$brugerPassword'";
            $result=mysql_query($sql);
            if(mysql_num_rows($result) > 0) 
            {
               while($row = mysql_fetch_array($result)) 
               {
               $_SESSION['brugerUsername']=$_POST['brugerUsername'];
               $_SESSION['brugerPassword']=$_POST['brugerPassword'];
               $_SESSION['permID']=$row['permID'];
               $_SESSION['virkID']=$row['virkID'];
               $_SESSION['virkNavn']=$row['virkNavn'];
               $_SESSION['virkUrl']=$row['virkUrl'];
               $_SESSION['holdID']=$row['holdID'];
               $_SESSION['brugerID']=$row['brugerID'];
               $_SESSION['brugerCpr']=$row['brugerCpr'];
               $_SESSION['brugerNavn']=$row['brugerNavn'];
               $_SESSION['brugerAfd']=$row['brugerAfd'];
               $_SESSION['display_name']=$row['display_name'];
               $_SESSION['hoejde']=$row['hoejde'];
               $_SESSION['vaegtstart']=$row['vaegtstart'];
               $_SESSION['bmistart']=$row['bmistart'];
               $_SESSION['vaegtslut']=$row['vaegtslut'];
               $_SESSION['bmislut']=$row['bmislut'];
               $_SESSION['vaegtnu']=$row['vaegtnu'];
               $_SESSION['bminu']=$row['bminu'];    

            //REDIRECT USER WHERE virkID = '$virkID'
            /*<META http-equiv="refresh" content="0;URL=<?php $row['virkUrl']; ?>/status/"> */


                    if (($row['permID'] == '3') and ($row['virkID'] == '1')){
                ?> 
                <META http-equiv="refresh" content="0;URL=http://mahogni.com/afs/status/"> 
                <?php
                    }  
                    if ($row['permID'] == '2'){
                ?> 
                <META http-equiv="refresh" content="0;URL=http://mahogni.com/afs/coachsite/">  
                <?php 
                    } 
                    if ($row['permID'] == '1'){
                ?> 
                <META http-equiv="refresh" content="0;URL=http://mahogni.com/afs/adminsite/">  
                <?php 
                    }   
               }  
            }
            else
            {           
                echo "<tr>";
                echo "<td colspan='2' height='45'>";
                echo "Ups! not correct";
                echo "</td>";
                echo "</tr>";               
            }           
                }
            ?>

誰がそれがどのように行われたか教えてもらえますか?? ありがとうございました

4

1 に答える 1

0

本当の答えではありません:

あなたのコードは悪い振る舞いでいっぱいです。

  1. $_POSTSQL インジェクションの機は熟しています。
  2. WordPress を使用しているglobal $wpdbため、データベース接続に使用する必要があります。
  3. mysql_*関数は非推奨です。使用しないでください。上記を参照してください。
  4. PHP リダイレクトは次のように行われます。header('Location: http://yoururl.com/whaterver');
  5. WordPress には、サイトごとに設定できる役割と機能の形式で独自のユーザー レベルがあります。これをより管理しやすくするためのプラグインがあります。
于 2012-12-20T10:48:08.973 に答える