【问题标题】:Why does the PHP file not read the javascript properly? [duplicate]为什么 PHP 文件不能正确读取 javascript? [复制]
【发布时间】:2020-02-13 18:10:19
【问题描述】:

我正在制作一个网站,并且一直在尝试在 PHP 文件中编写 javascript 来创建警报,然后根据用户单击“确定”或“取消”,将它们带到不同的页面。我得到了一个应该在 HTML 文件中工作的 javascript 代码,但是 PHP 文件由于某种原因没有读取它。

这适用于运行 MySQL、PHP、HTML、CSS、javascript 和 Apache 的 XAMPP 服务器。我尝试将其粘贴到我的 PHP 文件中,但它无法正确读取。

if ($sessioncode != "Admin-placebojoe" || "Mizzy-renegade") {
    loginFail();
} else {
    loginSuccess();
}

function loginFail() {
    var txt;
    var r = confirm("Account does not exist. Either check credentials and try again, or press ok to Sign Up.");
    if (r == true) {
        txt = header("refresh:6; url=Signup.html");
    } else {
        txt = header("refresh:0; url=Login.html");
    }
}

PHP 文件拒绝它在第 8 行显示 var txt; 的行。错误消息显示为:

解析错误:语法错误,C:\xampp***** 中出现意外的 'var' (T_VAR) 在第 13 行

(我在开头遗漏了几行,这就是为什么它是第 13 行)。这告诉我错误是 PHP 文件无法读取 JavaScript。

如何让 PHP 文件读取并执行所有 JavaScript 代码?

【问题讨论】:

  • 嗨,Mizzy 欢迎来到 SO。您似乎在 Javascript 中使用 PHP 代码。要在 Javascript 中更改位置,请尝试使用 window.location = 'Login.html' 而不是 header("refresh:0; url=Login.html");
  • 您正在混合使用 PHP 和 Javascript。它们是两个不同的东西,在两个不同的地方运行。 PHP 运行服务器并将 html 吐出到浏览器,工作完成!然后Javascript在html里面的浏览器上运行。
  • 您的代码中有几个问题。其中一个就在开头: if ($sessioncode != "Admin-placebojoe" || "Mizzy-renegade") { 你可能的意思是 if (!in_array($sessioncode, array("Admin-placebojoe", "Mizzy-renegade"))) { 这意味着“如果 sessioncode 是 none 以下...”。你写的意思是:“如果 sessioncode 不是 Admin-placebojoe,或者(如果)Mizzy-renegade......”并且“Mizzy-renegade”是一个字符串,所以它意味着真实。任何具有真实值的 OR'ed 都是真实的。因此,您的代码将始终 loginFail()。
  • @LSerni 除了如帖子中所述,代码是(旨在)JavaScript 和 in_array 是一个 PHP 函数。我同意这个逻辑是错误的。然而,这不是这里的根本问题。
  • 谢谢大家!我不知道人们在这个网站上回答得这么快。我认为任何人都需要数周时间才能看到这个问题!感谢 LSerni 提供的信息,我不知道我的代码不正确。我一天前才开始学习php。再次感谢大家!

标签: javascript php


【解决方案1】:

PHP 不读取或执行 JavaScript。 JavaScript 在浏览器中运行。

如果您在 .php 文件中包含 JavaScript 块,PHP 将(就像在 .php 文件中包含原始 HTML 或 CSS 块一样)简单地将代码原样在响应中传递给浏览器它提供给来自该浏览器的 HTTP 请求。

但是,如果您收到上述错误,则意味着您尝试将此代码放入 <?php 块中。这意味着 PHP 解释器将尝试在服务器上将其作为 PHP 代码执行。但正如您自己所说:它不是 PHP 代码,而是 JavaScript。因此(显然我希望)PHP 解释器无法理解它并且您会收到语法错误。

如果您想包含一些 JavaScript 代码以在浏览器中运行,请将其移到 <?php ... ?> 标记之外,并将其放在 <script> 块内,例如

<script>
  alert("Hello, World");
</script>

附:对于背景,您可能需要阅读这个流行且内容丰富的主题:What is the difference between client=side and server-side programming?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
  • 2015-07-12
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多