2016-07-23 7 views
0

Ich übe das Erstellen eines PHP-Registrierungsformulars für eine Website. Ich habe diesen Code gemacht, aber wenn ich auf den Submit-Button klicke, bekomme ich den Hinweis: In Zeile 13 sollten nur Variablen als Referenz übergeben werden, und ich bleibe dran, was ich hier tun soll. Jede Hilfe wird sehr geschätzt, wieder bin ich kein PHP-Experte.Nur Variablen sollten durch Verweis in ... in Zeile 13 übergeben werden. Fehler

<?php 

require 'database.php'; 

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

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

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

    if($stmt->execute()): 
     die('Success'); 
    else: 
     die('Fail'); 
    endif; 
endif; 

?> 

hier

+0

Gute Referenz für, wenn Sie PHP-Fehler erhalten http://StackOverflow.com/Questions/12769982/Reference-What-Does-This-error-Mean-in-PHP – Terminus

Antwort

2

Änderung dieser

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

dieser

$email = $_POST['email']; 
$username = $_POST['username']; 
$password = password_hash($_POST['password'], PASSWORD_BCRYPT); 

$stmt->bindParam(':email', $email); 
$stmt->bindParam(':username', $username); 
$stmt->bindParam(':password',$password); 

die Fehlermeldung ist klar, wenn man diese Werte in Variablen zuweisen müssen sie dann

0
passieren

$ result-> bindParam (': id', $ id, PDO :: PARAM_INT);

wenn Zeichenfolge, müssen Sie schreiben:
$ stmt-> bindParam (': username', $ _POST [ 'username'], PDO :: PARAM_STR);

Verwandte Themen