gpt4 book ai didi

PHP header 调用后 JavaScript 不运行

转载 作者:行者123 更新时间:2023-12-03 02:21:32 26 4
gpt4 key购买 nike

我正在尝试使用 PHP header /甚至是围绕 php 内部调用的 JavaScript 解决方案重定向到我的clients.php 网页。

问题是 PHP header /解决方法可以完美地加载网页,但 Javascript 仍然没有运行。

附加说明是,在 header 甚至 Javascript 重定向到页面后,尝试刷新页面将不会加载 Javascript。只有在网页之间切换并返回clients.php Javascript 才会真正运行。

我也尝试过这个:JavaScript not loading after PHP header() redirect

但没有效果。

这是我的部分代码分段,只是因为它相当长。

clients.php

<!-- Bootstrap core JavaScript-->
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Core plugin JavaScript-->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Page level plugin JavaScript-->
<script src="vendor/chart.js/Chart.min.js"></script>
<script src="vendor/datatables/jquery.dataTables.js"></script>
<script src="vendor/datatables/dataTables.bootstrap4.js"></script>
<!-- Custom scripts for all pages-->
<script src="js/sb-admin.min.js"></script>
<!-- Custom scripts for this page-->
<script src="js/sb-admin-datatables.min.js"></script>
<script src="js/sb-admin-charts.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" ty pe="text/javascript"></script>
<link href="../../css/toastr.css" rel="stylesheet"/>
<script src="../../js/toastr.js"></script>
<script type="text/javascript">
var tmp = "<?php $tmp = $_SESSION['message_success']; echo "$tmp"; ?>";
alert(tmp + " h");
$( document ).ready(function() {
<?php
if($_SESSION['sysLogin'] == "success") {
$_SESSION['sysLogin'] = "";
$user = $_SESSION['user'];
echo "toastr.success('Welcome $user', 'User has logged in');";
}
if($_SESSION['message_success'] != "") {
$msg = $_SESSION['message_success'];
$_SESSION['message_success'] = "";
echo "toastr.success('$msg', 'Success!');";
}
if($_SESSION['message_error'] != "") {
$msg = $_SESSION['message_error'];
$_SESSION['message_error'] = "";
echo "toastr.error('$msg', 'Error!');";
}
if($_SESSION['message_warning'] != "") {
$msg = $_SESSION['message_warning'];
$_SESSION['message_warning'] = "";
echo "toastr.warning('$msg', 'Warning!');";
}
?>
});
</script>
</div>
</body>

</html>

脚本.php

  if($update_statement) {
$_SESSION['message_success'] = "$_membername's Careplan has been successfully updated.";
echo "<script type='text/javascript'>window.location.href = '../clients.php';</script>";
//header("Location:". $redirect);
//exit();
}

请注意,clients.php 和 script.php 不在同一个文件中。

根据 Riggs 请求

<?php
session_start();
$message="";
if(isset($_POST["login"])) {
$redirect = NULL;
if($_POST['redirect'] != '') {
$redirect = $_POST['redirect'];
}
if(empty($_POST['username']) || empty($_POST['password'])) {
$message = "Both fields must be filled out.";
$_SESSION['sysLogin'] = "$message";
header("location: ../login.php?redirect=" . urlencode($redirect));
} else {

require('server_connection.inc');
$connection = connect_to_db(DB_SERVER, DB_UN, DB_PWD, DB_NAME);

$user=mysqli_real_escape_string($connection, $_POST['username']);
$pass=mysqli_real_escape_string($connection, $_POST['password']);
$statement = "select * from Credentials where UserName='$user' AND Password='$pass';";
$result = $connection->query($statement);

if($result->num_rows == 1) {
// lets determine the type of user that logged in
// if not employee but CEO, Manager, ETC, its an Admin
$employeeid = ($result->fetch_assoc())["EmployeeID"];
$check = "select Employees.Position, Employees.Name, Employees.ID from Credentials, Employees where (Credentials.EmployeeID = Employees.ID) AND Employees.ID = '$employeeid';";
$result_two = $connection->query($check);
if($result->num_rows == 1) {
$the_row = $result_two->fetch_assoc();
if($the_row["Position"] == "Employee") {
$name = $the_row["Name"];
$the_id = $the_row['ID'];
$_SESSION['logon'] = true;
$_SESSION['user'] = "$name";
$_SESSION['type'] = "employee";
$_SESSION['sysLogin'] = "success";
$_SESSION['user_id'] = $the_id;
mysqli_close($conection);
if($redirect) {
header("Location:". $redirect);
} else {
header("location: ../index.php");
}
exit();
} else if($the_row["Position"] == "CEO" || $the_row["Position"] == "Manager") {
$name = $the_row["Name"];
$the_id = $the_row['ID'];
$_SESSION['logon'] = true;
$_SESSION['user'] = "$name";
$_SESSION['type'] = "admin";
$_SESSION['sysLogin'] = "success";
$_SESSION['user_id'] = $the_id;
mysqli_close($conection);
if($redirect) {
header("Location:". $redirect);
} else {
header("location: ../index.php");
}
exit();
}
} else {
$message = "Unable to Parse Employee. Please contact your sites Administrator.";
$_SESSION['sysLogin'] = "$message";
mysqli_close($conection);
header("location: ../login.php?redirect=" . urlencode($redirect));
}
} else if($result->num_rows == 0){
$message = "Incorrect username or password";
$_SESSION['sysLogin'] = "$message";
mysqli_close($conection);
header("location: ../login.php?redirect=" . urlencode($redirect));
} else {
$message = "Database Login Error. Too many retrieved accounts. Please contact your sites Administrator.";
$_SESSION['sysLogin'] = "$message";
mysqli_close($conection);
header("location: ../login.php?redirect=" . urlencode($redirect));
}
}
}

function write_to_log($message) {
$file = fopen("logfile.txt", "w") or die("Unable to open file!");
fwrite($file, "$message\n");
fclose($file);
}

function connect_to_db($server, $username, $pwd, $dbname) {
$conn = mysqli_connect($server, $username, $pwd);
if(!$conn) {
echo "" . mysqli_error($conn);
exit;
}
$dbh = mysqli_select_db($conn, $dbname);
if(!$dbh) {
echo "" . mysqli_error($conn);
exit;
}
return $conn;
}
?>

该脚本仅链接 session ,同时还检查用户的登录有效性

消息传递确实可以与另一个文件“dashboard.php”的 header 一起使用,但从 script.php 重定向到dashboard.php 不会产生消息,因此仍然存在暗示。

最佳答案

由于您尚未启动 session ,因此未定义 tmp JavaScript 变量。在代码顶部包含 session_start();

<?php session_start(); ?>
<!-- Bootstrap core JavaScript-->
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Core plugin JavaScript-->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Page level plugin JavaScript-->
<script src="vendor/chart.js/Chart.min.js"></script>
<script src="vendor/datatables/jquery.dataTables.js"></script>
<script src="vendor/datatables/dataTables.bootstrap4.js"></script>
<!-- Custom scripts for all pages-->
<script src="js/sb-admin.min.js"></script>
<!-- Custom scripts for this page-->
<script src="js/sb-admin-datatables.min.js"></script>
<script src="js/sb-admin-charts.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" ty pe="text/javascript"></script>
<link href="../../css/toastr.css" rel="stylesheet"/>
<script src="../../js/toastr.js"></script>
<script type="text/javascript">
var tmp = "<?php $tmp = $_SESSION['message_success']; echo "$tmp"; ?>";
alert(tmp + " h");
$( document ).ready(function() {
<?php
if($_SESSION['sysLogin'] == "success") {
$_SESSION['sysLogin'] = "";
$user = $_SESSION['user'];
echo "toastr.success('Welcome $user', 'User has logged in');";
}
if($_SESSION['message_success'] != "") {
$msg = $_SESSION['message_success'];
$_SESSION['message_success'] = "";
echo "toastr.success('$msg', 'Success!');";
}
if($_SESSION['message_error'] != "") {
$msg = $_SESSION['message_error'];
$_SESSION['message_error'] = "";
echo "toastr.error('$msg', 'Error!');";
}
if($_SESSION['message_warning'] != "") {
$msg = $_SESSION['message_warning'];
$_SESSION['message_warning'] = "";
echo "toastr.warning('$msg', 'Warning!');";
}
?>
});
</script>
</div>
</body>

</html>

关于PHP header 调用后 JavaScript 不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49136625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com