1

ログイン システム/ログアウト システムに問題があります。

だから問題は、ログインできないことです。正しいユーザー名とパスワードを入力すると、index.php にリダイレクトされますが、実際にはログアウトした後にのみ発生します。エラーは login_success.php のif (!isset($_SESSION['mittbrukarnamn']))行 (mittbrukarnamn = myusername) にあると思いますが、これにより上記の問題が発生しますが、を削除すると、!もうissetfalse ではなくなり、ログインできますが、logout.php はできません」仕事"。

if ($_POST['mittbrukarnamn'] && $_POST['mittpassord'])また、IE 9 で間違ったユーザー名またはパスワードを入力した場合、またはユーザー名またはパスワードを入力しなかった場合に始まる 19 行目のエラーも発生します。しかし、Google Chrome ではそのエラーは発生しません。これが安全なシステムかどうか教えてもらえますか? パスワードを MD5 に変換するコード行と管理者ユーザー ページを後で追加する予定です。

ここにcheck.phpがあります

    <title>Login side</title>

<?php
session_start();

// 'vert' er det same som 'host' på engelsk (ikkje så viktig).
    $vert = "localhost";
    $brukarnamn = "root";
    $passord = "";
    $db_namn = "login";
    $tbl_namn = "members";

// Tilkobling til MySQL databasen.
    mysql_connect("$vert", "$brukarnamn", "$passord") or die ("Kan dessverre ikkje koble til databasen.");
    mysql_select_db("$db_namn") or die ("Kan ikkje finna den ynkjande tabellen 'namn'.");
?>

<?php
    if ($_POST['mittbrukarnamn'] && $_POST['mittpassord']) {

      $mittbrukarnamn = $_POST['mittbrukarnamn'];
      $mittpassord = $_POST['mittpassord'];

      $sql = "SELECT * FROM $tbl_namn WHERE `brukarnamn` = '$mittbrukarnamn' AND `passord` = '$mittpassord'";
// '$res' forkorting for 'resultat'.
      $res = mysql_query($sql);

// '$tell' er skreve på norsk, og er det same som 'count' på engelsk (f.eks. og telja til 10). Slek ein ikkje     trur da er 'tell' på engelsk; (ikkje så viktig).
      $tell = mysql_num_rows($res);

      if ($tell == 1) {
        $_SESSION['mittbrukarnamn'];
        $_SESSION['mittpassord'];
        header ("location: login_success.php");
  } else {
        echo "Brukarnamnet eller passordet er feil.";
        header ("refresh: 2; index.php");
  }

  } else {
        echo "Vennligst tast inn eit brukarnamn og eit passord.";
        header ("refresh: 2; index.php");
  }
?>

そして login_success.php

<title>Medlem side</title>

<?php
  session_start();
    if (!isset($_SESSION['mittbrukarnamn'])) {
        header("location: index.php");
}
?>

<html>
<body>
Du er innlogga.<br />
<a href="logout.php"> Logg ut</a>
</body>
</html>

問題が何であるかを明確にしたことを願っています。回答ありがとうございます:)

このテキストの一部はノルウェー語です。(mittbrukarnamn = myusername) (mittpassord = mypassword)

4

5 に答える 5

0
<?php
  session_start();
?>

<title>Medlem side</title>

いいえ

<title>Medlem side</title>

<?php
  session_start();

出力の前にセッションを開始する必要があります。

ログインサイトも同様。

エラーは発生しませんでしたか?

2番。スクリプトは、Mysql インジェクション攻撃に対して耐性がありません。PHP Mysql インジェクション フレーズで google を使用します。

于 2013-01-27T17:06:09.787 に答える
0

ノートンの回答への追加: ファイルの先頭に session_start() を配置した後、

に置き換え$_SESSION['mittbrukarnamn'];$_SESSION['mittbrukarnamn']='';、セッション変数を設定します。あなたが今していることは、セッション変数を設定しません。$_SESSION['mittbrukarnamn']

于 2013-01-27T17:16:04.030 に答える
0

phpファイルの先頭にコードを含めlogin_success.phpます。session変数はそのファイルの最初のものでなければなりません。

于 2013-01-27T17:08:25.717 に答える
0

あなたが登録とログインと PHP を初めて使用することを考慮して、これを見ることをお勧めします。それはあなたの疑問をすべてクリアするはずです!

http://www.youtube.com/course?list=ECE134D877783367C7

于 2013-01-27T17:08:33.260 に答える