Apache2配置仅部分执行PHP

时间:2017-07-01 14:07:45

标签: php mysql pdo apache2

我在Debian 8 VPS(jessie)上安装Apache2时遇到了麻烦。 我在Hostinger上正确安装了网站,它工作得很好,但是知道Hostinger是一个免费的计划,我转移到足够的VPS,所以我可以弄脏我自己做我的工作。我现在可以处理所有事情,但实际情况是,自从我没有使用debian服务器以来已经很长时间了,安装Apache似乎比我想象的更难。

所以,我按照自己的意愿保护了我的VPS,这不是问题,网站工作正常,但部分工作。

我的意思是,在某些页面上,PHP代码执行得非常好,它可以与我的数据库一起使用而没有任何问题。我有一个utils.php文件,其中包含getBDD()函数,如下所示:

return new PDO("mysql:host=localhost;dbname=name;charset=utf8", "user", "password");

它可以在我的主页上运行,我可以请求一切。你可以在这里看到它:http://mdjfeelzor.ovh/petiteancienne.php(网站是法语)。

但我也有一个ajax聊天,需要一些PHP才能正常工作。 Aaaand我不明白为什么,但是当我用$conn初始化我的getBDD()时,我在代码中遇到了进一步的问题。

看看那段代码:

include '../utils.php';

            session_start();

            if(isset($_POST['enter'])){
                if($_POST['name'] != ""){
                    $_SESSION['name'] = stripslashes(htmlspecialchars($_POST['name']));

                    try {
                        $conn = getBDD();

                        $answer = $conn->prepare('SELECT * FROM openchats WHERE ip=? AND name=?');
                        $answer->execute(array(stripslashes(htmlspecialchars($_SERVER['REMOTE_ADDR'])),
                        stripslashes(htmlspecialchars($_SESSION['name']))));

                        if (!($data = $answer->fetch())) {
                            $req = $conn->prepare('INSERT INTO openchats (ip, name) VALUES (:ip, :name)');
                            $req->execute(array(
                                'ip' => stripslashes(htmlspecialchars($_SERVER['REMOTE_ADDR'])),
                                'name' => stripslashes(htmlspecialchars($_SESSION['name']))));
                        }
                    }

                    catch(PDOException $e) {
                        echo "Connection failed: " . $e->getMessage();
                    }
                }
            }

它工作正常,对吗? (它应该在你的机器上正常工作)但问题是,代码在prepare()的第一次调用时开始显示在我的网页上,如你所见:http://mdjfeelzor.ovh/chat

所以,我想知道,你觉得这个问题是什么?这是我的编程方式不起作用?顺便说一下,我正在使用PHP5。我也尝试了代码<?php phpinfo(); ?>,它完美无缺。

感谢您的帮助!

编辑:顺便说一下,代码显示但不应该输入条件,因为$_POST['enter']在第一次加载时不存在,代码确实可以在我的计算机和Hostinger上运行我认为问题来自Apache配置^^'并且AJAX代码没有在那时运行。

0 个答案:

没有答案