我在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代码没有在那时运行。