Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста вопрос по PHP

King Few Ученик (184), на голосовании 6 месяцев назад
Я написал код смены пароля, а у меня ошибка:
Fatal error: Uncaught Error: Class name must be a valid object or a string in D:\server\openserver\OSPanel\domains\localhost\chps1.php:68 Stack trace: #0 {main} thrown in D:\server\openserver\OSPanel\domains\localhost\chps1.php on line 68
Как можно исправить?
И если какие-то ещё ошибки наёдете, исправите пожалуйста

Вот код:
<?php
require "db.php";

$errors = array();
if ($_POST["password"] == $_POST['password_confirmation']) {
$password_hash = password_hash($_POST["password"], PASSWORD_DEFAULT);
$sql = "UPDATE user
SET password_hash = ?
WHERE id = ?";

$stmt = $mysqli->prepare($sql);

$stmt->bind_param("ss", $password_hash, $user["id"]);

$stmt->execute();

echo "Пароль изменён!";
} else {
echo "Пароли не совподают";
}

?>
Дополнен 7 месяцев назад
вроде, ошибку исправил, появляется новая: Fatal error: Uncaught Error: Call to a member function bind_param() on bool in D:\server\openserver\OSPanel\domains\localhost\chps1.php:68 Stack trace: #0 {main} thrown in D:\server\openserver\OSPanel\domains\localhost\chps1.php on line 68
Голосование за лучший ответ
Павел Знаток (331) 7 месяцев назад
Не вижу инициализации переменной $mysqli в твоем коде.
Убедись в что в db.php все правильно проинициализировано и соединение с базой установлено.
Если проблемы останутся скинь сюда код db.php, проблема скорее всего в нем.
King FewУченик (184) 7 месяцев назад
 
require 'libs/rb.php';
R::setup('mysql:host=localhost;dbname=Regist', 'root', '');

?>

Код db.php
King FewУченик (184) 7 месяцев назад
я ,вроде, исправил ту ошибку, теперь появляется другая: Fatal error: Uncaught Error: Call to a member function bind_param() on bool in D:\server\openserver\OSPanel\domains\localhost\chps1.php:68 Stack trace: #0 {main} thrown in D:\server\openserver\OSPanel\domains\localhost\chps1.php on line 68

Не знаете , как исправить?
ПавелЗнаток (331) 7 месяцев назад
Напишите обновленный код, посмотрю.
ПавелЗнаток (331) 7 месяцев назад
Судя по старому коду не понятно откуда взялась переменная $user["id"].
King Few Ученик (184) Павел, <?php require 'libs/rb.php'; R::setup('mysql:host=localhost;dbname=Register', 'root', ''); $sql = "SELECT * FROM users WHERE id = {$_SESSION["user_id"]}"; $mysqli = require __DIR__ . "/database.php"; session_start(); ?>
ПавелЗнаток (331) 7 месяцев назад
Зачем два подключаешься к базе данных? Они разные?
session_start() должна быть в самом начале.
Где выполняется запрос $sql из db.php?
И также остается вопрос откуда взялась переменная $user["id"], в твоем коде нигде нет ее инициализации.
Похожие вопросы