Warum funktioniert mein PHP-Code nicht?


Beste Antwort

Das Wichtigste zuerst…

Übergeben Sie niemals vom Benutzer bereitgestellte Daten direkt an die Datenbank. Es gibt keinen Grund, warum dies eine gute Idee ist.

$name = mysqli\_real\_escape\_string($mysqli, $\_POST["name"]);

$pass = mysqli\_real\_escape\_string($mysqli, $\_POST["password"]);

Wenn Sie real\_escape\_string() verwenden, wird verhindert, dass Ihr Skript mit einer SQL-Injection gehackt wird. Wenn Sie die Werte an anderer Stelle verwenden müssen, können Sie sie beim Erstellen Ihrer Abfrage maskieren.

$name = $\_POST["name"];

$sql = "SELECT * FROM users WHERE username = "".mysqli\_real\_escape\_string($mysqli, $name).""";

Führen Sie jedes Mal etwas Ähnliches aus, wenn Sie eine SQL-Abfrage erstellen. Bei Ihrer INSERT -Abfrage sollten auch Werte maskiert werden, indem entweder der in der Variablen gespeicherte Wert oder beim Erstellen der Abfrage maskiert wird.

Warum Sie „gute Arbeit“ sehen, ohne Daten einzugeben …

Sie stellen nie sicher, dass es tatsächlich gibt ist Eingabe. Ihr Skript wird versuchen, mit der Datenbank zu interagieren, auch wenn der Benutzer das Formular noch nicht ausgefüllt hat.

if(isset($\_POST["username"]) && isset($\_POST["password")) {

// put the rest of your script here

}

?>

Warum keine Datenbankeinträge erstellt werden.

Hmm ... ich bin mir nicht sicher. Zumal es heißt, dass funktioniert hat.

Versuchen Sie, die obigen Änderungen vorzunehmen, und geben Sie dann einen Kommentar zu dieser Antwort ab, um mich zu informieren, ob dies der Fall ist eine Änderung und was diese Änderung ist und wir können von dort aus gehen.

Überprüfen Sie auch Ihre Serverprotokolle, um festzustellen, ob dort Fehler vorliegen. Wenn Sie dies nicht tun können oder Fehler deaktiviert sind, können Sie versuchen, dies oben in Ihrem Skript hinzuzufügen:

ini\_set("error\_reporting", E\_ALL);

ini\_set("html\_errors", true);

ini\_set("display\_errors", "stdout");

Übrigens…

Die for -Attribute Ihrer Labels sollten auf die ID eines Elements verweisen.

Sie haben…

Sie sollten ...

Antwort

php

$ host = "AAAAAA"; $ user = "AAAAA"; $ pass = "AAAAAA"; $ db = "AAAAA";

$ connect = mssql\_connect ($ host, $ user, $ pass) oder die ("Verbindung nicht möglich"); $ database = mssql\_select\_db ($ db, $ connect) oder die ("Verbindung zur ausgewählten Datenbank kann nicht hergestellt werden");

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["email"]; $ firstname = S\_POST ["Vorname"]; $ lastname = S\_POST ["lastname"]; $ pwd = S\_POST ["pwd"];

if trim($firstname) == "" || trim($lastname)=="" || trim($pwd)== ""

{

echo "You must enter both a firstname, lastname and password!!";

}

else

{

$sql = "INSERT INTO users ([email],[first\_name],[last\_name],[password])VALUES("$email","$firstname","$lastname","$pwd")";

$result = mssql\_query($sql);

if(!$result)

{

echo mssql\_error();

exit;

}

mssql\_free\_result($result);

mssql\_close();

echo "Data successfully inserted!!";

}

}

E-Mail:
Vorname:
Nachname:
Passwort:
ingabe type = "submit" name = "submit" value = "Register"

?>

so dass die php co de Ich gab Ihnen ursprünglich nur ein Beispiel, sogar ein einfacher Echo-Code funktioniert nicht. Nun, ich habe den Code auf Notepad ++ geschrieben und ihn hochgeladen, indem ich den Code in kompozer eingefügt habe. siehe mir wurde gesagt, dass es mit der Erweiterung .php anstelle von hmtl hochgeladen werden muss und das ist der Grund, warum es nicht funktioniert. Aber ich finde das verwirrend. Wie kann ich es an einen bestimmten Link auf meiner Indexseite anhängen? Bitte beraten Sie und lassen Sie mich wissen, was Sie denken. schätze es

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.