-1

PHPを始めたばかりなので、わかりにくかったらすみません。

HTML でレイアウトし、CSS でスタイリングして、インデックス ページ (index.php) を作成しました。

何を調べたり、何をする必要があるかについての基本的な考えを得るために、いくつかの「質問」があります。

私のホームページ (index.php) には、サインアップとログインのフォームがあります。サインアップフォームについてはまだ心配していませんが、ログインフォームについてはもっと心配しています. これを行う方法に関するチュートリアルも見つけましたが、それは私が望んでいる方法とは少し異なります。

ユーザーがログインしてコントロールパネルに移動する必要があります(おそらくcontrol.php)。それはかなり単純なことだと思います。しかし、ユーザーがエラーを起こした場合は、エラー メッセージをインデックス ページ (ログイン フォームの下) に表示する必要があります。フォームにアクションを設定するには、login.php という名前の別のページを作成する必要がありますか、それともアクションを index.php に設定し、ログイン コードをホームページに配置する必要がありますか。

もう一つは言語チェンジャーです。まず、このウェブサイトをフランス語、スペイン語、そしてもちろん英語で提供しています。onchange がすべてのテキスト (.InnerHTML を使用) をその特定の言語に変更する JavaScript 関数を実行する選択ボックスがありますが、ユーザーが Web サイトにアクセスするたびにそれを行う必要がないようにしたいと考えています。そのためにCookieを使用していると思います。しかし、どうすればこれを行うことができますか?「フォーム」を使用して、(ページの読み込み時に) どの言語を確認して www.mysite.com/index.php?english にアクセスできるようにするか..どうやってこれをするの?Javascript 関数を保持できますか、それとも PHP (テキスト チェンジャー) に再コーディングする必要がありますか?

コメント、回答、または提案をお待ちしております。

ありがとう!-ライアン

4

2 に答える 2

0

構造は完全にあなた次第です。すべてを 1 ページにまとめることも、すべて (インデックス、ログイン、コントロール、エラーなど) を多数のページにまとめることもできます。ウェブサイトが成長したら、何が最適かを判断する必要があります。

言語の変更については、Javascript を拡張して言語 Cookie を設定することもできます。そして、すべてのページの上部で (コードを繰り返す必要がないように、インクルード ファイルまたは構成ファイルについて考える良い機会です)、その Cookie を確認する必要があります。それが存在し、適切な値を持っている場合は、ページの読み込み後に Javascript をトリガーして変更するか、PHP を使用して翻訳されたページを自動的に生成します。

于 2013-01-28T00:41:52.080 に答える
-1

理想的には、独自のコードが表示されます...しかし...

ユーザーがログインしてコントロールパネル(おそらくcontrol.php)に移動する必要があります。かなり簡単だと思います。

1)HTMLフォームに名前を付け、index.phpのアクションを与える必要があります。

参照:http ://www.w3schools.com/tags/tag_form.asp

<form action="index.php" method="post">

2)ユーザー名とログインボックスに適切なIDと名前を付けます。

参照:http ://www.w3schools.com/tags/att_input_name.asp

<input type="text" name="name"><br>
<input type="text" name="password"><br>

3)インラインPHPを使用してDivタグを追加し、ユーザー名またはパスワードが正しくないかどうかをユーザーに知らせます。

参照:http ://www.w3schools.com/php/default.asp

<div><?PHP echo $ErrorText ?></div>

4)送信ボタンを追加します

<input type="submit" value="Login">

5)フォームが送信されたときにログインボックスとパスワードボックスのPostBack値を読み取るPHPを追加します。

参照:http ://www.w3schools.com/php/php_post.asp

$UserName = $_POST['name'];
$Password= $_POST['password'];

6)ユーザー名とパスワードを確認するためのコードとSQ​​Lを追加します。

参照: http: //php.net/manual/en/mysqli.quickstart.php

$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    die();
}

if (!($stmt = $mysqli->prepare("SELECT * FROM Users WHERE UserName = '$UserName'))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    die();
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    die();
}

if (!($res = $stmt->get_result())) {
    echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
    die();
}

if ($res->row_count > 1) {
    echo "Too many users!";
    die();
    }

$row = $res->fetch_assoc();

7)パスワードを確認し、正しい場合はコントロールパネルにリダイレクトし、そうでない場合はエラーを報告します。

if ($row['Password'] == $Password)
{
    header('Location: http://www.example.com/control.php');
}
else
{
    $ErrorText = "Incorrect Username or Password!";
}

ユーザー情報をCookieまたはセッションとして保存する必要があります。この情報については、以下を参照してください。http://www.w3schools.com/php/php_cookies.aspおよびhttp://www.w3schools.com/php/php_sessions.asp

言語チェンジャーの場合、Shomzが言うように、これを行うには多くの方法があります。ただし、ここではPHPを使用してすべてのテキストを表示するのが最善の方法です。

注意してください...私は上記のコードのいずれもテストしていないので、奇妙なエラーがあるかもしれません...しかし、これはとにかくあなたを動かすはずです!

于 2013-01-28T11:11:20.547 に答える