2016-11-06 7 views
0

mysqlデータベースのユーザレベルでリンクが一致するかどうかチェックしています。

これは私の現在のコードです:

<?php 

$mysqli = new mysqli('host', 'name', 'psw', 'db'); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
if ($result = $mysqli->query("SELECT user_level FROM users WHERE user_level = 1 ")) { 

    $row_cnt = $result->num_rows; 

    printf("Result set has %d rows.\n", $row_cnt); 
    } 
    /* until here everything works fine - the code below seems to be not working */ 

if ($result == $_SESSION['userlevel']) { 

    $link = 'AdminLayout.php'; 
    printf ('<a href="' .$link. '">Adminpanel </a>'); 
    /* close result set */ 
    $result->close(); 


} 

/* close connection */ 
$mysqli->close(); 
?> 

printf("Result set has %d rows.\n", $row_cnt);は、接続が機能しているかどうかをチェックするだけで、それを検出することをUSER_LEVEL =

1.私は、私のログインフォームで$_SESSION['userlevel']とを保存します:

if(isset($_POST['submitted'])) 
{ 
session_start(); 

$mysqli = new mysqli('host', 'name', 'psw', 'db'); 


if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
else ($result = $mysqli->query("SELECT user_level FROM users WHERE user_level = 1 ")) { 
if (mysqli_num_rows($result == 1) { 
$ulevel = $mysqli_fetch_array($result); 
    $ulevel = $_SESSION['userlevel']; 
    } 
} 
} 
?> 

残念ながら私のログインフォームはこれらの行が追加されても機能しません。

誰でも手伝ってもらえますか?ログインしたアカウントのユーザーレベルを正しく保存して、別のサイトに呼び戻すにはどうすればよいですか?

短いストーリー:MySQL DBのuserlevelをチェックして、ログインしたユーザーが一致した場合にリンクを表示したいと考えています。

+0

あなたはmysqliの持つ特定の問題がある場合は、ダウンこの非常に問題にあなたの質問を絞り込むください。同じことがmysqlと同じです。具体的にしてください。 「ここで私のコードは動作しません」という質問は、トピックのものです –

+0

問題は、間違いの場所がわからないため、正しく指定する方法がわかりません。私は単にセッションにユーザレベルを保存して別のサイトでチェックし、リンクを「アクティブにする」ことを望みます。しかし、とにかく '$ ulevel = $ _SESSION ['userlevel'];'に保存しようとすると、私のloginformはもう表示されません。 – pr0cz

+0

誰も知っている人はいません。同時に、コードを実行して問題のある場所を確認することができます。さらに、コードと環境にアクセスできるのはあなただけです。だからそれを実行し、すべてのステップで状態をチェックしてください。 –

答えて

-1

コードを次のように修正してください。 ログインページ:

if(isset($_POST['submitted'])) 
{ 
session_start(); 

$mysqli = new mysqli('host', 'name', 'psw', 'db'); 


if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
elseif ($result = $mysqli->query("SELECT user_level FROM users WHERE user_level = 1 ")) { 
if (mysqli_num_rows($result) == 1) { 
$_SESSION['userlevel'] = $mysqli_fetch_array($result); 
    } 
} 
} 
?> 

およびその他のコード:

<?php 

$mysqli = new mysqli('host', 'name', 'psw', 'db'); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
if ($result = $mysqli->query("SELECT user_level FROM users WHERE user_level = 1 ")) { 

    $row_cnt = mysqli_num_rows($result); 
    $result = mysqli_fetch_array($result); 

    printf("Result set has %d rows.\n", $row_cnt); 
    } 
    /* until here everything works fine - the code below seems to be not working */ 

if ($result == $_SESSION['userlevel']) { 

    $link = 'AdminLayout.php'; 
    printf ('<a href="' .$link. '">Adminpanel </a>'); 
    /* close result set */ 
    $result->close(); 
} 
+0

ログインフォームが再び機能します。ありがとうございます!しかしリンクはまだ表示されていません。 – pr0cz

関連する問題