Проблем с логин

pro12

Registered
Това ми е логина.
PHP:
<?php
	if(isset($_POST['login'])) {

		$username=mysqli_real_escape_string($conn,$_POST['username']);
		$password= trim($_POST['password']);
		$password = md5($password);
		$remember = $_POST['remember'];

		$query = ("SELECT `userid`, `username` FROM `users` WHERE `username` = '{$username}' AND `password` = '{$password}' LIMIT 1");
		$result = mysqli_query($conn, $query);

		if(mysqli_num_rows($result) == 1) { // if found the user in database, store session
			$found_user = mysqli_fetch_array($result);
			$_SESSION['username'] = $found_user['username'];
			$name = $found_user['username'];
						
			if($remember == "yes") { // if checked the 'Remember me' checkbox, store the user id in cookie

						  // name,    value,                    ,expire date,      path
				setcookie('username', $found_user['username'] , time()+(60*60*24*7), "/"); // seconds,  minutes,  day, week
				setcookie('password', $password , time()+(60*60*24*7), "/"); // seconds,  minutes,  day, week

	
			}
						 

			header("Location: home.php");
			exit();

		} else { // else user/password incorrect

			echo("Грешно име или парола");
			exit();

		  }
		  

	}
?>
Логина си работи но проблема е, че искам да сложа заявка за да обновява едно поле в дб. Това е заявката за обновяване.
PHP:
$h = "UPDATE users SET key = 'bn' WHERE username = '$name'";
if (mysqli_query($conn, $h))
Проблема е, че кадето и да я сложа в кода нищо не обновява. Каде бъркам?
 
Слагаш я над header("Location: home.php"). Проблема е че в тази заявка имаш променлива $name, която не си я сетнал никъде, а заявката търси WHERE username = '$name' и не намира съвпадение :) . Трябва ти само заявката без този иф if (mysqli_query($conn, $h)).

Поправка: сега видях че всъщност си сетнал $name.
 
Само това да остане.
PHP:
$h = "UPDATE users SET key = 'bn' WHERE username = '$name'";
Или така да го направя
PHP:
mysqli_query($conn,  "UPDATE users SET key = 'bn' WHERE username = '$name'");
Нали имам това в кода
PHP:
$name = $found_user['username'];
То трябва да взима името.
 
Открих къде е грешката, и се оказа това което изобщо не очаквах :D .
Грешката е че използваш за име на поле в базата думата KEY, която явно е запазена или нещо обърква базата данни. Смени полето с някаква друга дума и да не забравиш и в заявката да я смениш.
Слагаш над хедъра mysqli_query($conn, "UPDATE users SET alabala = 'bn' WHERE username = '$name'");
 
Аз изобщо не знаех, че проблема може да е от името на колоната. Благодаря за помоща!
 
Това е хубаво да се има предвид: http://dev.mysql.com/doc/refman/5.7/en/keywords.html

И когато има запазена дума, просто слагай префикс m_key или нещо подобно.
 

Back
Горе