Таким образом, проблема заключается в том, что я хочу создавать каждый раз, когда пользователь нажимает логин. Значение в базе данных изменяется на 1, но всякий раз, когда я использую UPDATE, мы получаем servererror 500 при щелчке по логинуServerError 500 при обновлении таблицы mysql
<?php
require("inc/db.php");
ini_set('error_reporting', 0);
ini_set('display_errors', 0);
session_start();
if(isset($_POST['submit'])){
$errMsg = '';
//username and password sent from Form
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if($username == '')
$errMsg .= 'You must enter your Username<br>';
if($password == '')
$errMsg .= 'You must enter your Password<br>';
if($errMsg == ''){
$records = $conn->prepare('SELECT id,username,password,email,bday,points,uid FROM users WHERE username = :username AND password = :password');
$records->bindParam(':username', $username) ;
$records->bindParam(':password', $password) ;
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
if($results > 0){
$sql = "UPDATE users SET isloggedin = :isloggedin WHERE username = :username";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':isloggedin', '1');
$stmt->execute();
$_SESSION['username'] = $results['username'];
$_SESSION['id'] = $results['id'];
$_SESSION['points'] = $results['points'];
$_SESSION['uid'] = $results['uid'];
header('location:dashboard.php');
}else{
$errMsg .= 'Username and Password are not found<br>';
}
}
}
?>
Таким образом, функция UPDATE не работает должным образом, я и мой друг не могу найти решение этой проблемы, мы пытались работать вокруг него, или пытались изменить линии для него, но ничего не получалось ...
Заранее спасибо!
Я не использую PDO, но я предполагаю, что вам необходимо привязать параметр: username в каждом запросе. Ошибка сервера 500 делает меня тем, что вы используете это как CGI? – Josiah
Как вы называете эту рутину? Ajax? Ошибка 500 обычно означает, что либо есть синтаксическая ошибка PHP, либо опубликованные данные, которые она ожидает, передаются неправильно. –
Я заметил, что у вас нет 'bindParam (': username', $ username)', поэтому я подозреваю, что PDO бросает исключение из-за несогласованности между количеством параметров в инструкции SQL и параметрами, фактически доступными в 'execute () '. –