PHP不会连接到Apache / SQL服务器

问题描述 投票:0回答:2

我在运行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服务器,即运行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:80netstat -a -o做的端口,它是LISTENING

有没有人知道我可能做错了什么或我如何解决这个问题?我真的很感激,

谢谢

php html apache form-submit
2个回答
0
投票

你应该在目录中授予执行权限,通常在/var/www/html/中设置。但是如果你在/home/username/public_site/这样的主目录中使用一个站点,那么你也需要允许在这个目录中执行脚本。


0
投票

如果你的apache正在运行,但PHP没有运行,PHP可能没有配置为从apache运行。

有条不紊地完成这里的每一步:

http://php.net/manual/en/install.unix.apache2.php

如果是预构建的Apache / PHP二进制文件,请从步骤6开始,以确保PHP端已配置。如果有疑问,重建二进制:)

此外,在对这些事情进行故障排除时,您可能会遇到表单问题,以及Apache / PHP配置问题。要验证至少Apache已使用PHP正确配置,请在您的Web根目录中放置一个php_info()测试页。

如果这样做,并且表单提交没有,则可能有两个单独的问题。

http://php.net/manual/en/function.phpinfo.php

我的直觉是你只需要确保第7步已经完成,但我以前错了。在测试更改之前,请不要忘记每次更改任何Apache或PHP文件时重新启动httpd / apache24。

© www.soinside.com 2019 - 2024. All rights reserved.