3 Stimmen

PHP Verwendung von clientseitiger und serverseitiger Validierung OHNE Verwendung von Drittanbietercode

EDIT: Danke für all die Hilfe. Ich habe eine E-Mail erhalten, die besagt, dass wir die Client-Seite nicht brauchen, also habe ich diese Idee zugunsten der rechtzeitigen Fertigstellung der Aufgabe verworfen.

Bevor Sie fragen: Ja, das ist eine Auftragsarbeit. Nein, ich bin nicht auf der Suche nach jemandem kompletten Code. Ich bin ein Anfänger wird praktisch keine Erfahrung in HTML/PHP/Javascript, aber dies ist der zweite Teil der Aufgabe, so habe ich bereits einige meiner eigenen Code aus dem ersten Teil, die so sehr einfach im Vergleich zu diesem Teil war. Die Aufgabe sagt nicht ausdrücklich, dass wir eine clientseitige Validierung verwenden müssen, aber ich denke, es wäre eine gute Übung.

Ich brauche jemanden, der mir klar zeigt, wie man sowohl die client- als auch die serverseitige Validierung verwendet. Ich habe bereits die Javascript-Validierung, aber ich kann es ändern, wie es zeigt eine Warnbox für jeden Fehler. Ich KANN KEINEN Code von Drittanbietern wie jQuery verwenden, den anscheinend jeder im Internet gerne verwendet, und der Kurs, den ich mache, mag es nicht, uns tatsächlich nützliche Inhalte beizubringen, also sind wir alle auf uns selbst gestellt.

Die Daten aus dem Formular werden dann in eine Datenbank über MySQL eingegeben werden (die ich nicht freuen, zu tun), und aus der Betrachtung der minimalen Informationen von w3schools zu diesem Thema, verstehe ich, dass ich das Formular an sich selbst POST.

Das Formular selbst ist ziemlich einfach: Es enthält Name, DoB, E-Mail, Postleitzahl usw. Mein aktuelles .js verwendet nur Alpha, nur Zahlen, Datumsformat, E-Mail-Format, Optionsfelder und Kontrollkästchen und jedes Feld wird getestet, um sicherzustellen, dass es nicht leer ist.

Ich denke, was ich suche, ist eine vollständige Anleitung, wie man das macht. Meine Internetrecherchen waren erfolglos, aber immerhin habe ich noch eine Woche Zeit, bis die Arbeit fällig ist.

Jede Hilfe ist willkommen, aber einfache und klare Hilfe wäre noch besser. Bis dahin werde ich weiterhin das Internet nach Hilfe durchforsten und hier posten, wenn ich etwas Nützliches für andere mit dem gleichen Problem finde (was sicher 90% meiner Klasse sind.....)

Vielen Dank im Voraus.

4voto

UltraInstinct Punkte 41505

Lesen Sie den nachstehenden Code. Ich hoffe, die Inline-Kommentare beantworten Ihre Frage.

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>

エディトリアル : Wie mplungjan schon sagte, ist es keine gute Idee, ein Feld mit dem Namen "Name" in Formularen zu haben. Das Formularobjekt selbst könnte einen "Namen" haben, der in Konflikt geraten könnte.

1voto

Ja͢ck Punkte 165747

Da es sich um Hausaufgaben handelt, sollte ich Sie zumindest auf einige Quellen hinweisen:

Kunden-Seite

Zur Validierung:

Steigen Sie nicht gleich in AJAX ein, das ist Material für Fortgeschrittene. Erledigen Sie zuerst die Grundlagen und lassen Sie das Formular einfach an PHP übermitteln (d. h. die Seite wird aktualisiert und PHP zeichnet das Formular neu, falls es Probleme bei der Validierung gab).

Server-Seite

Zur Validierung: http://www.php.net/filter - Beispiele

Für Datenbankarbeit: http://www.php.net/pdo - Lehrgang

0voto

Moritz Punkte 4477

Für die serverseitige Validierung würden Sie die Formulardaten mit method="post" an eine PHP-Seite senden und dann auf das richtige Format prüfen. Etwa so:

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

In validate.php verwenden Sie $_POST["var_name"], wobei var_name der Name Ihrer Eingabefelder ist, um die Daten zu überprüfen. Also, zum Beispiel, etwas wie:

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

Es scheint, als ob Sie die clientseitige Validierung bereits beherrschen. Ich bin nicht ganz sicher, ob ich Ihr Problem richtig verstanden, obwohl - Lassen Sie mich wissen, wo speziell Sie Probleme haben, und ich werde versuchen, zu helfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X