JavaScript — Сладкое оповещение не работает с $ _session

Я хочу показать сладкое предупреждение, если sql верно, но это не работает.
Вот часть бэк-энда.

<?php
include "../../../config/config.php";

if (isset($_POST['submit-slider']))
{
$title = $_POST['title-slider'];
$description = $_POST['description-slider'];
$street = $_POST['street-slider'];
$phone = $_POST['phone-slider'];
$trip = $_POST['trip-slider'];
$web = $_POST['web-slider'];
$email = $_POST['email-slider'];

$target_dir = "../../../img/homepage/screen_4/";
$target_file2 = "" . basename($_FILES["img-slider"]["name"]);
$target_file = $target_dir . basename($_FILES["img-slider"]["name"]);$uploadOk = 1;

$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
//  header("Location: /dashboard/views/slider/add_slider.php");
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["img-slider"]["tmp_name"], $target_file)) {//echo "The file ". basename( $_FILES["img"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}$query = "INSERT INTO images(title,
description,
street_1,
phone,
url,
trip_link,
img,
email
)

VALUES ('" . $title . "', '". $description . "', '". $street . "', '". $phone . "', '". $web . "', '". $trip . "', '". $target_file2 . "', '". $email . "')";

$result = mysqli_query($con, $query);

if ($result) {

$_SESSION['succes_slider'] = 1;
header("Location: /dashboard/views/slider/add_slider.php");
} else {
//            $_SESSION['succes_slider'] = 0;
header("Location: /dashboard/views/slider/add_slider.php");
}
}
}
?>

И вот страница, где я хочу показать сладкое оповещение.

<?php
session_start();
if (!isset($_SESSION['name'])) {
header("Location: /dashboard/login.php");
}//include "../config/config.php";
include "../../components/header.php";
include "../../components/menu.php";if (isset($_SESSION['succes_slider']) == 1) {
echo"  <script>
$(document).ready(function() {
swal('Succes','','succes');
});
</script>";
}?>

</aside><!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Hello
<small>HI</small>
</h1>
</section>

<!-- Main content -->
<section class="content">

Я не знаю, почему не работает, и я знаю, что мой код уязвим в MySql Injection, но сейчас я не работаю над этим.

Сладкое предупреждение работает на моей странице входа в систему, если может помочь кому-то узнать, почему не работает на другой странице ..

Вот бэкэнд логина

if (isset($_POST['login'])) {
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);$sql = "SELECT * FROM users WHERE email='" . $email . "' AND password='" . md5($password) . "'";$result = mysqli_query($con, $sql);$row_count = mysqli_num_rows($result);if ($row_count != 0) {
$row = mysqli_fetch_assoc($result);$_SESSION['email'] = $email;
$_SESSION['name'] = $row['name'];header("Location: /dashboard/index.php");
} else {
$_SESSION['error'] = 1;
header("Location: /dashboard/login.php");
}
}

Внешний интерфейс для входа в систему такой же, как и на другой странице, разница заключается в названии сеанса.

2

Решение

Вы должны использовать session_start перед использованием любого из $ _SESSION. Более того, я видел, что вы используете include, я предлагаю вам перейти по требованию, потому что это вызовет ошибки в случае, если у вас нет файла.
Еще одно предложение — проверить, существуют ли файлы, прежде чем включать / требовать их в своем скрипте.

<?php
// include "../../../config/config.php";
// if a file is missing include won't trigger an error
require "../../../config/config.php";

// always include session_start where you plan to use $_SESSION
session_start();

if (isset($_POST['submit-slider']))
0

Другие решения

В вашем первом файле вы должны использовать session_start() тоже.

Вы назначаете $_SESSION['succes_slider'] = 1;, но в этом файле сеанс не начался.
Так что просто используйте session_start(); на первой строке вашего первого кода, и это работает.

0

Я думаю, что вы не использовали тег Session Started code в файле …

Добавьте это сразу после того, как вы требуете:

session_start();
0
По вопросам рекламы [email protected]