我在运行PHP代码和运行本地apache24服务器时遇到了问题。
在html中,我做了一个form,
<form method="post" action="./php/submit.php">
<div class="submitrow">
<div class="col-25">
<label for="fname">Altcoin name*</label>
</div>
<div class="col-75">
<input type="text" name="altcoinName" placeholder="Ethereum" maxlength="20" required>
</div>
</div>
<div class="submitrow">
<div class="col-25">
<label for="fname">Altcoin symbol*</label>
</div>
<div class="col-75">
<input type="text" name="altcoinSymbol" placeholder="ETH" maxlength="5" required>
</div>
</div>
</form>当我提交form时,我想要运行这个PHP脚本,它将数据从form发送到我本地的SQL server,即我使用apache24和phpmyadmin运行的服务器。当我在html中“提交”我的form时,PHP代码并没有被执行,它只是出现在我的浏览器中。
<?php
$altcoinName = filter_input(INPUT_POST, 'altcoinName');
$altcoinSymbol = filter_input(INPUT_POST, 'altcoinSymbol');
if (!empty($altcoinName)){
if (!empty($altcoinSymbol)){
$host = "localhost/phpmyadmin";
$dbusername = "root";
$dbpassword = "";
$dbname = "servertest";
//create connection
$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);
if (mysqli_connect_error()){
die('Connect Error ('. mysqli_connect_errno() .') '
. mysqli_connect_error());
} else {
$sql = "INSERT INTO submit (altcoinName, altcoinSymbol)
values ('$altcoinName','$altcoinSymbol')";
if ($conn->query($sql)){
echo "New record is inserted succesfully";
} else {
echo "Error: ". $sql ."<br>". $conn->error;
}
$conn->close();
}
} else {
echo "altcoin symbol should not be empty";
die();
}
} else {
echo "altcoin name should not be empty";
die();
}
?>在CMD中,我转到apache文件夹并启动httpd (httpd -k start)。这个错误是我得到的:
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address [::]:80
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs所以我搜索了端口0.0.0.0:80对netstat -a -o做了什么,它是LISTENING。
有没有人知道我可能做错了什么,或者我该如何修复这个问题?我真的很感激,
谢谢
发布于 2018-03-05 04:52:56
您应该在目录中授予execute访问权限,该访问权限通常已在/var/www/html/中设置。但是,如果您使用的是主目录中的站点,如/home/username/public_site/,则还需要允许执行此目录中的脚本。
发布于 2018-03-05 04:53:25
如果您的apache正在运行,但PHP没有运行,那么PHP可能没有配置为从apache运行。
有条不紊地完成这里的每个步骤:
http://php.net/manual/en/install.unix.apache2.php
如果它是预构建的Apache/PHP二进制文件,请从步骤6开始,确保PHP端已配置。如果有疑问,请重新编译二进制文件:)
此外,在对这类问题进行故障排除时,您可能会遇到一些表单问题,以及Apache/PHP配置问题。要验证至少用PHP正确配置了Apache,请在web根目录中放置一个php_info()测试页面。
如果这样做有效,而表单提交不起作用,那么您可能会遇到两个独立的问题。
http://php.net/manual/en/function.phpinfo.php
我的直觉是,你只需要确保步骤7已经完成,但我之前就错了。不要忘记,在测试更改之前,每次更改任何Apache或apache24文件时都要重新启动httpd / PHP。
https://stackoverflow.com/questions/49100243
复制相似问题