Я занимаюсь созданием скрипта формы регистрации PHP для веб-сайта. Я сделал этот код, но когда я нажимаю кнопку «Отправить», я получаю уведомление: только переменные должны передаваться по ссылке в строке 13, и я зациклен на том, что делать здесь. Любая помощь очень ценится, опять же я не эксперт по PHP.
<?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; ?>
Вот
изменить это
$stmt->bindParam(':email', $_POST['email']); $stmt->bindParam(':username', $_POST['username']); $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
к этому
$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);
сообщение об ошибке ясно, хотя вам нужно назначить эти значения в переменные, а затем передать их
$ result-> bindParam (': id', $ id, PDO :: PARAM_INT );
если строка, вам нужно написать :
$ stmt-> bindParam (': username', $ _POST ['username'], PDO :: PARAM_STR );