Ich schreibe eine PHP-Seite, die auf einem Server ausgeführt wird und akzeptiert einige POST-Parameter und fügt sie zu einem Server nach Validierung mit REGEX. Aus irgendeinem Grund zeigt mein Server (mit WAMP-Server) eine leere Ergebnismenge an, nachdem der Code erfolgreich ausgeführt wurde und nachdem ich am Ende auf die Seite umgeleitet wurde.WAMP Server mySQL-Datentyp? MySQL-Datenbank wird nicht in PHP aktualisiert?
Ich denke, es könnte mein Code sein, aber es könnte auch die Art sein, wie der Server eingerichtet wird, derzeit sind alle meine Spalten vom Typ "int (11)" und ich weiß nicht, welchen Typ ich wählen soll.
<?php
if(isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["pnumber"])){
$name = $_POST["name"];
$number = $_POST["pnumber"];
$email = $_POST["email"];
$db = new PDO("mysql:dbname=daythree", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(preg_match("/^[0-9]{10}$/", $number) &&
preg_match("/^[A-Za-z]{2,}[\sA-Za-z]*$/", $name) &&
preg_match("/^[A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z.]{2,4}$/", $email)){
$sql = "INSERT INTO daythree ('name', 'email', 'number') VALUES ('. $name .', '. $email. ', '. $number .')";
header("Location: evilmasterminds.php");
die();
}
}
Vielen Dank und Entschuldigung für irgendwelche Probleme.
'Int' ist nicht die richtige Wahl für' name' zu gehen und 'email' und die SQL-Anweisung falsch ist - sollte vielleicht mehr wie '$ sql =" INSERT INTO daythree ('Name', 'E-Mail', 'Nummer') VALUES ('{$ name}', '{$ email}', '{$ number}') ";' – RamRaider
und warum, wenn Sie mit PDO arbeiten, verwenden Sie keine vorbereiteten Anweisungen - Sie negieren die eine Sache, die vor böswilliger SQL-Injektion schützt, indem Sie POST-Variablen in den SQL einbetten? Verwenden Sie keine einfachen Anführungszeichen um Spaltennamen - verwenden Sie stattdessen den Backtick! – RamRaider
Ich habe die $ sql-Zeile zu diesem geändert; Ich habe nur seit ein paar Monaten programmiert und dies ist mehr als ein Experiment für mich, Datenbanken für den persönlichen Gebrauch zu bearbeiten, so bin ich nicht besorgt über die Sicherheitsseite :) Auch, danke für die Hilfe! :) Übrigens, was soll ich Int ändern? Es gibt ziemlich viele Optionen und ich bin mir nicht sicher, welches wäre richtig :( – JsDart