gpt4 book ai didi

PHP - HTML 中的输出正确,但浏览器给出 500 内部服务器错误

转载 作者:行者123 更新时间:2023-11-29 13:17:30 28 4
gpt4 key购买 nike

注意!刚刚开始使用 PHP,所以如果这是某种 n00b 错误,我提前道歉。我有一个 PHP 脚本,它从 MySQL 数据库读取一个表,并以下拉列表的形式提供单列的值。 PHP代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
$dbc = mysql_connect("localhost", "someDBuser", "somecorrectpass");
$db = mysql_select_db("someDB");
$results= mysql_query("SELECT name FROM sometable");
?>
<select name="eventid">
<option value="0">Choose</OPTION>
<?php
while($row = mysql_fetch_array($results)) {
echo '<option value="'.$row['name'].'">'. $row['name'].'</option>';
}
?>
</select>
</form>
</body>
</html>

现在,当我从浏览器调用该文件时,我会看到一个空白屏幕。我启用了 PHP 错误报告并收到以下错误 Fatal error: Call to undefined function mysql_connect() in /var/www/html/testdel.php on line 12 .

接下来我尝试使用 PHP 命令在后端运行该文件。它运行良好,并给了我所需的 html 输出,如下所示:

$ php /var/www/html/testdel.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="/var/www/html/testdel.php">
<select name="eventid">
<option value="0">Choose</OPTION>
<option value="Ex1005">Ex1005</option><option value="Ex1009">Ex1009</option><option value="user1">user1</option></select>
</form>
</body>
</html>

当我将此输出放入文件中(例如“testdel.html”)时,我得到了正确的输出。

我在原始 PHP 文件中做错了什么?是不是和权限有关?当前文件权限是 644。或者我需要包含(使用)某些模块吗?

最佳答案

第一

永远不要直接在页面中执行连接或 sql 指令,这样,这是一种非常糟糕的做法,当然也不安全。

例如,创建一个仅用于连接的文件/类,例如 connection.php然后他们调用该方法,例如:Connection::start(); .

对于 SQL 指令,执行相同的操作。创建您的类(class),例如:class SomeTable ,然后他们调用您需要的方法:SomeTable::getAll(); .

这只是一个例子。

第二个

使用PDO MySQL

可能出现的问题

检查您的分机是否php_mysql未注释并存在于您的 php.ini 中。在 UNIX 中,可能是这个 /etc/php/php.ini 。在 window 里我不知道。像这样:

extension=php_mysql.so
extension=php_pdo_mysql.so

或者,在 Windows 中:

extension=php_mysql.dll
extension=php_pdo_mysql.dll

为了确保这一点,创建一个文件,在你中创建一个文件DocumentRoot使用此代码 <?php phpinfo(); ?>并搜索 mysql--with-mysql 。例如:

  • /var/www/info.php 中创建文件
  • 编写此代码:<?php phpinfo(); ?>
  • 在您的浏览器中,调用此文件:http://localhost/info.php
  • 并搜索mysql

Image of phpinfo()

PDO - MySQL

<小时/>

如果您有任何意见,请在评论中告诉我。

抱歉我的英语。

关于PHP - HTML 中的输出正确,但浏览器给出 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21285185/

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