<?php
session_start();
$_SESSION['message'] = '';
$mysqli = new mysqli("192.99.56.236", "root", "fakepass", "thesucc");
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//two passwords maching
if($_POST['password'] == $_POST['confirmpassword']) {
$username = $mysqli->real_escape_string($_POST['username']);
$email = $mysqli->real_escape_string($_POST['email']);
$password = md5($_POST['password']); //md5 is hash
$avatar_path = $mysqli->real_escape_string('images/'.$_FILES['avatar']['name']);
//make sure fike is image
if (preg_match("!image!", $_FILES['avatar']['type'])) {
//copy image to images folder
if (copy($_FILES['avatar']['tmp_name'], $avatar_path)) {
$_SESSION['username'] = $username;
$_SESSION['avatar'] = $avatar_path;
$sql = "INSERT INTO users (username, email, password, avatar) "
. "VALUES ('$username', '$email', '$password', '$avatar_path')";
//if the query success, redirect to welcome.php, done!
if ($mysqli->query($sql) === true) {
$_SESSION['message'] = "Registration succesfull! Added $username to the database!";
header("location: welcome.php");
} else {
$_SESSION['message'] = "User could not be created!";
}
} else {
$_SESSION['message'] = "File upload failed!";
}
} else {
$_SESSION['message'] = "Please only upload image files!";
}
} else {
$_SESSION['message'] = "Passwords do not match!";
}
}
?>
erstellt é könnte dies ist mein Code, der MySQL-Info geändert wird, aber ich weiß, dass ich es hatte Korrekt habe ich oft überprüft. Ich habe durch eine Menge sah, und ich kann nicht scheinen, um herauszufinden, was das Problem ist, aber ich denke, ive es verengt, um etwas nach unten zu tun mit den Variablen in der Lage zu schreiben nicht in mysql
** WARNUNG **: Schicht Ihre eigene Zugangskontrolle zu schreiben ist nicht einfach, und es gibt viele Möglichkeiten, die es falsch schwer zu bekommen. Bitte schreiben Sie nicht Ihr eigenes Authentifizierungssystem, wenn Sie ein modernes [Entwicklungsframework] (http://codegeekz.com/best-php-frameworks-for-developers/) wie [Laravel] (http://laravel.com/) verfügt über ein integriertes [Authentifizierungssystem] (https://laravel.com/docs/5.4/authentication). Am absolutesten folgen Sie [empfohlene Best Practices für die Sicherheit] (http://www.phptherightway.com/#security) und ** speichern Sie niemals Passwörter mit einem nutzlos schwachen Hash wie SHA1 oder MD5 **. – tadman
** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie ** NICHT manuelle Entschlüsselung und String-Interpolation oder Verkettung, um dies zu erreichen, da Sie schwerwiegende [SQL-Injektionsfehler] (http://bobby-tables.com/) erstellen werden. Versehentlich ungenutzte Daten sind ein ernstes Risiko. Die Verwendung von gebundenen Parametern ist weniger ausführlich und einfacher zu überprüfen, um zu überprüfen, ob Sie es richtig machen. – tadman
Mehr als wahrscheinlich hat etwas mit Ihrer Verbindung zu tun (es wird abgelehnt usw.). Setzen Sie Folgendes nach Ihrer Verbindung, um den Fehler zu bestimmen (falls es einen gibt): 'if ($ mysqli-> connect_error) sterben ('Connect Fehler ('. $ Mysqli-> connect_errno. ')'. $ Mysqli-> connect_error); ' – Enstage