3

編集:すべての助けに感謝します。クライアント側は必要ないというメールを受け取ったので、実際に時間通りに課題を完了することを優先して、そのアイデアを破棄しました。

あなたが尋ねる前に、はい、これは割り当て作業です。いいえ、誰かの完全なコードを探しているわけではありません。私は初心者で、HTML/PHP/javascript の経験はほとんどありませんが、これは課題の第 2 部なので、第 1 部からの独自のコードをいくつか持っているので、この部に比べて非常に簡単でした。このタスクでは、クライアント側の検証を使用する必要があると具体的には述べていませんが、それは良い習慣になると思います。

クライアント側とサーバー側の両方の検証の使用方法を明確に示してくれる人が必要です。私はすでに JavaScript 検証を行っていますが、すべてのエラーに対してアラート ボックスが表示されるので、それを変更できます。インターネット上の誰もが好んで使用するように見える jQuery のようなサード パーティ コードは使用できません。

フォームからのデータは、MySQL を介してデータベースに入力されます (これを行うのは楽しみではありません)。このトピックに関する w3schools からの最小限の情報を見て、フォームをそれ自体に POST する必要があることを理解しました。

フォーム自体は非常にシンプルです。名前、生年月日、電子メール、郵便番号などが含まれています。現在の .js は、アルファのみ、数字のみ、日付形式、電子メール形式、ラジオ ボタン、チェック ボックス チェックを使用し、すべてのフィールドがテストされて、それが正しいことを確認します。空じゃない。

私が求めているのは、これを行う方法に関する完全なチュートリアルだと思います。私のインターネット検索は実りがありませんでしたが、少なくとも期限まであと 1 週間あります。

どんな助けでも大歓迎ですが、シンプルで明確な助けはさらにそうです。それまでは助けを求めてインターネットを徘徊し続け、同じ問題を抱えている他の人に役立つものを見つけたら、ここに投稿します(私のクラスの90%であると確信しています.....)

前もって感謝します。

4

3 に答える 3

4

以下のコードを読んでください。インライン コメントがあなたの質問に答えてくれることを願っています。

add_record.php

<?php
if(isset($_POST['name'])) {

  //get post data
  $name = trim($_POST['person_name']);
  $email = trim($_POST['email']);
  $message = trim($_POST['message']);

  //This is server-side check!
  if (strlen($name) > 10){
    echo "FAILED! You tried to submit a name which is greater than 10 chars."
  }else{
    //insert to the database here..

    //and send out a "success message or render HTML
    echo "SUCCESS!";
  }
}else {
    echo "Error! Proper parameters were not provided!";
}

a.html

<html>
<head>
<script type="text/javascript">
function checkForm(){
    //client side (JS) validation. This happens before submitting.
    var name = document.forms[0].person_name.value;
    if (name.length > 10){
        alert("Name is too long");
        return false;
    }
    //do some more checks here..
    //return true if all checks have passed, false otherwise.

    //the return value of this function is checked before submit. The form is submitted only when this function returns a true.
    return true;
}
</script>
</head>
<body>
<form action="add_record.php" method="POST" onsubmit="return checkForm()">
Name: <input type="text" name="person_name"/>
Email: <input type="text" name="email"/>
Message: <input type="text" name="message"/>
<input type="submit"/>
</form>
</body>
</html>

EDIT : mplungjan が指摘したように、フォーム内に「name」という名前のフィールドを持つことはお勧めできません。フォーム オブジェクト自体に、競合する可能性のある「名前」がある場合があります。

于 2012-05-23T09:14:35.127 に答える
1

宿題なので、少なくともいくつかのリソースを紹介する必要があります。

クライアント側

検証用:

すぐに AJAX に飛びつかないでください。それは高度な資料です。最初に基本的なことを行ってから、フォームを PHP に送信します (つまり、検証の問題があれば、ページが更新され、PHP がフォームを再描画します)。

サーバ側

検証用: http://www.php.net/filter -

データベース作業用: http://www.php.net/pdo -チュートリアル

于 2012-05-23T08:57:06.640 に答える
0

サーバー側の検証では、method="post" を使用してフォーム データを php ページに送信し、正しい形式を確認します。何かのようなもの:

<form action="validate.php" method="post">
<!-- form fields -->
</form>

validate.php では、$_POST["var_name"] を使用します。ここで、var_name は入力フィールドの名前で、データをチェックします。たとえば、次のようなものです。

$age = $_POST["age"];
if (ctype_digit($age) && $age > 0) {
    // correct format
}

すでにクライアント側の検証を把握しているようです。ただし、問題を正しく理解できたかどうかはよくわかりません。具体的にどこで問題が発生しているかをお知らせいただければ、お手伝いいたします。

于 2012-05-23T08:55:52.233 に答える