2016-04-08 7 views
0

Ich befolge ein Tutorial, das ein Registrierungs- und Anmeldesystem erstellt. Ich mache alles gleich, aber ich bekomme immer noch einen merkwürdigen Strict Standards Fehler, wenn ich auf meinem Formular submit drücke.Fehler bei strikten Standards beim Speichern von Registerdaten

<?php 

require 'pdoconnect.php'; 

$message = ''; 

if(!empty($_POST['email']) && !empty($_POST['password'])): 


// Enter the new user in the database 
$sql = "INSERT INTO users (email, password) VALUES (:email, :password)"; 
$stmt = $conn->prepare($sql); 

$stmt->bindParam(':email', $_POST['email']); 
$stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 

if($stmt->execute()): 
    $message = 'Successfully created new user'; 
else: 
    $message = 'Sorry there must have been an issue creating your account'; 
endif; 

endif; 

?> 

Es sagt

strenge Standards: Nur Variablen mit Bezug auf Linie 14 (Linie mit Passwort-Hash) übergeben werden sollen.

Ich habe überall nach einer Lösung gesucht, aber ich finde keine.

+0

Sie sollten das Passwort Hash * vor * Sie verwenden den Hash in 'bindParam()' –

Antwort

1

Hash das Passwort vor Sie es binden:

// Enter the new user in the database 
$sql = "INSERT INTO users (email, password) VALUES (:email, :password)"; 
$stmt = $conn->prepare($sql); 

$hashedPass = password_hash($_POST['password'], PASSWORD_BCRYPT); 
$stmt->bindParam(':email', $_POST['email']); 
$stmt->bindParam(':password', $hashedPass); 

Sie nicht, eine Funktion zu einem gebundenen Parameter übergeben können, können Sie nur eine Variable übergeben.

+1

Vielen Dank! Passwörter sind jetzt sicher in der Datenbank gehasht :) – SmashingJummy

+1

naja gut gut ... schau dir Mr. Fancy Pants an. Jetzt müssen wir dich Mr. "Hot" Hose Sam nennen. –

+1

* Ich Gotcho 'Hot Pants richtig hea' Ralph! * @ Fred-ii- –

Verwandte Themen