3

ここで初めて。これがうまくいくことを祈りましょう!

私は PHP が初めてで、ユーザーが編集可能なコンテンツを含む独自のページを持つサイトを作成しようとしています。ログインシステムを中途半端に動かしました。ユーザー名とパスワードは正しく認識されますが、$_SESSION 変数が格納されていないようです。最初は、ユーザー名(それ自体が変数)を $_SESSION 変数にしようとしていたためだと思っていましたが、絶対的なものに設定した場合でも、ユーザーがログインしているかどうかを確認するコードは、それらを「あなたはログインしていません」ページ。これが私の検証phpコードです:

<?php

$host="xxxx.ipagemysql.com";
$username="xxxxx";
$password="xxxxxx";
$db_name="farmers";
$tbl_name="users";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$farmeruser=$_POST['farmeruser'];
$farmerpw=$_POST['farmerpw'];

$sql="SELECT * FROM ".$tbl_name." WHERE farmeruser='".$farmeruser."' and farmerpw='".$farmerpw."';";

$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

session_start();
$_SESSION['member'] = "affirmative";
header("location:succesful_login.php");
}
else {
echo "Wrong Username or Password";
}
?>

そして、ユーザーがログインしていることを決して認識しない私のページは次のとおりです。

<?php
session_start();
if($_SESSION['member'] == "affirmative")
{
echo
"Welcome!";
}
else {
header('Location: http://www.leukosweb.com/user_not_recognized.php');
}
?>

これが機能しない理由はありますか?

PS。ユーザーのログイン名を「肯定」に変更したいのですが。ログイン検証ページで変数を使用して $_SESSION 'member' 変数を設定するのを手伝ってくれるなら、それも素晴らしいことです!

4

5 に答える 5

1

session_start()ユーザーのブラウザにクッキーを追加する必要があり、最初のスペースの前にスペースがある場合<?php、ブラウザに出力され、クッキーの設定が台無しになります。session_start()を2 行目に移動します

<?php
session_start();

ブラウザの Cookie を確認して、PHP_SESSION などの Cookie があるかどうかを確認できる余分なスペースがないことを確認してください。

print session_start();

セッションを作成できた場合は返されるはずtrueです。そうでない場合は、PHP 構成とセッションの作成に問題がある可能性があります。

これも修正が必要

header("location:succesful_login.php");

する必要があります

header("Location: succesful_login.php");

于 2012-11-16T02:29:14.813 に答える
1

Ipage に移動し、アカウントにログインします。
CGI とスクリプト化された言語サポートに移動します そこで
PHP スクリプトを選択します
ctrl +f を押して save_path を見つけて php.ini ファイルを編集し、
`session.save_path = "/var/php_sessions"`

`session.save_path = "/tmp"に変更します`

于 2015-01-19T05:23:36.460 に答える
0

さて、アナド・パルの答えは正しいものではありませんでしたが、それは私を正しい方向に導きました. 次の行で iPage アカウントの php.ini ファイルを変更する必要があることがわかりました

session.save_path = "/var/php_sessions"

session.save_path = "/tmp"

現在、すべてが正常に機能しています。ありがとう!皮肉なことに、それは私自身のコードではありませんでしたが、セッションを保存するための ipage のデフォルトは機能しません >.<

于 2012-11-16T14:12:31.763 に答える
0

何が問題なのかを確認するには、いくつかのことを試す必要があります。次の行を見てみましょう。

session_start();
$_SESSION['member'] = "affirmative";
header("location:succesful_login.php");

ヘッダーの場所のリダイレクトをコメントアウトします。$_SESSION['member'] が肯定に設定された後、その変数をエコーし​​て、その内容を確認します。

echo "DBUG: ".$_SESSION['member']. "<br />";

最初にそれをテストして、それが機能するようにしましょう。それから、要求したユーザー名で設定できます。

$_SESSION['member'] = $farmeruser;

しかし、その $farmeruser は $_GET から直接です... SQL インジェクションを防止した後、行からユーザー名を取得したい場合があります。

設定した直後にそのコードをチェックして、それが機能しているかどうかを確認しましょう。また、ページの上部に session_start() を配置するのも好きです。接続データベースの詳細を別のインクルード ファイルにスローします。

于 2012-11-16T05:31:50.587 に答える