#php
#php
Вопрос:
Я пытаюсь выучить php, и мне нужна некоторая помощь. Как я могу установить «id» из mysql в сеансе? таким образом, $ _SESSION[‘id’] будет работать. Я буду очень благодарен, если кто-нибудь сможет мне помочь 🙂
<?php
session_start();
?>
<?php
if(isset($_POST["navn"]) amp;amp; isset($_POST["passord"])){
// Connect to mySQL
include "include/config.php"
// Query the person
$sql = $conn->query("SELECT id FROM users WHERE navn='$navn' AND password='$passord' LIMIT 1");
// Make sure person exists
$existCount = $sql->rowCount();
// Evaluate the count
if($existCount == 1){
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$id = $row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["user"] = $user;
$_SESSION["password"] = $password;
header("location:index.php");
exit();
}else{
echo"Login details incorrect, try again <a href='index.php'>Click here</a>";
exit();
}
}
?>
Комментарии:
1. Это должно просто сработать?
2. Перенаправление может не сработать. При закрытии тега php под
session_start();
3.
$navn
и$passord
не задано.4. Я знаю, что ты учишься. Но, пожалуйста, проведите некоторое исследование по подготовленным операторам и sql-инъекции. Это стоит изучить с нуля.
Ответ №1:
Вы получаете данные из запроса POST, которые вы на самом деле не используете isset($_POST["navn"]) amp;amp; isset($_POST["passord"])
Затем вы пытаетесь использовать неопределенные переменные navn='$navn' AND password='$passord'
Исправить. Просто задайте свои переменные из запроса POST.
$navn = $_POST["navn"];
$passord = $_POST["passord"];
Это должно исправить.