3
4

4 に答える 4

5

Before you extract values from $_POST, you should check if they exist. You could use the isset function for this (http://php.net/manual/en/function.isset.php)

于 2012-12-04T16:36:06.000 に答える
2

設定されていない投稿変数を読み込もうとしているため、エラーが発生しています。それらはフォーム送信時にのみ設定されます。PHPコードを下部にラップします

if ($_SERVER['REQUEST_METHOD'] === 'POST') { ... }

また、コードは SQL インジェクションに適しています。少なくともmysql_real_escape_string、ポスト変数を SQL クエリで使用する前に使用してください。mysql_real_escape_string本番サイトには十分ではありませんが、クラスで余分なポイントを獲得できるはずです。

于 2012-12-04T16:45:26.587 に答える
0

まず、

mysql_connect() に $ を付けてはなりません。これは変数ではなく、定義済みの関数です。$ を削除して、データベースに正しく接続します。

このドキュメントの先頭に XML タグがあるのはなぜですか? これは HTML/PHP です。HTML doctype で十分です。

215 行目から、次のように更新します。

if (isset($_POST)) {
    $Name = $_POST['Name'];
    $Surname = $_POST['Surname'];

    $Username = $_POST['Username'];

    $Email = $_POST['Email'];
    $C_Email = $_POST['C_Email'];

    $Password = $_POST['password'];
    $C_Password = $_POST['c_password'];

    $SecQ = $_POST['SecQ'];
    $SecA = $_POST['SecA'];
}

POST 変数はフォームから来ており、それらが存在するかどうかを確認する必要があります。存在しない場合、PHP は NOTICE エラーを返します。これらの通知を無効にするには、error_reporting(0); を配置します。文書の上部にあります。開発目的のために、これらを表示しておくことをお勧めします。

フォームが送信されたという条件の下でのみ、データベースと対話 (挿入、チェック) する必要があります。そうしないと、PHP はユーザーからの入力なしでこれらすべての操作を実行します。次のように IF ステートメントを使用するのが最善です。

if (isset($_POST['submit']) {
// blah blah
// check if user exists, check if fields are blank
// insert the user if all of this stuff checks out..
} else {
// just display the form
}

素晴らしいフォームのチュートリアル: http://php.about.com/od/learnphp/ss/php_forms.htm

于 2012-12-04T16:42:29.833 に答える
0

このページをどのように読み込んでいますか? POSTでロードするものはありますか?そうでない場合、 $name = $_POST['Name']; 割り当てには、POST の「名前」がありません。

于 2012-12-04T16:36:18.007 に答える