无法使用php连接到主机中的数据库
大家好,我正在用PHP开发一个小的web应用程序,我可以在其中登录并向数据库添加一些东西,在我的本地主机上一切正常 所以我把它上传到我的托管服务器上,它的dbname、dbuser、dbpassword与我的localhost相同。。但是当我用用户名和密码点击登录按钮时 我得到这个错误: 我知道主机已启动并运行,因为当我转到web url时: gorydev.net.ve/sistematilcell 这是login.php的代码无法使用php连接到主机中的数据库,php,database,localhost,hosting,Php,Database,Localhost,Hosting,大家好,我正在用PHP开发一个小的web应用程序,我可以在其中登录并向数据库添加一些东西,在我的本地主机上一切正常 所以我把它上传到我的托管服务器上,它的dbname、dbuser、dbpassword与我的localhost相同。。但是当我用用户名和密码点击登录按钮时 我得到这个错误: 我知道主机已启动并运行,因为当我转到web url时: gorydev.net.ve/sistematilcell 这是login.php的代码 <?php session_start(); if(
<?php
session_start();
if(isset($_SESSION['usuario'])){
header('Location: index.php');
}
$errores = '';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$usuario = filter_var(strtolower($_POST['usuario']), FILTER_SANITIZE_STRING);
$password = $_POST['password'];
$password = filter_var($password, FILTER_SANITIZE_STRING);
require '/db/connect.php';
$statement = $conexion->prepare('SELECT * FROM empleados WHERE usuario = :usuario AND password = :password');
$statement->execute(array(
':usuario' => $usuario,
':password' => $password
));
$resultado = $statement->fetch();
if($resultado != false){
$_SESSION['usuario'] = $usuario;
header('Location: index.php');
}else{
$errores .= '<li>Datos incorrectos.</li>';
echo $errores;
}
}
config.php文件:
<?php
use Project\Helpers\Config;
require 'app/Config.php';
$config = new Config;
$config->load('config.php');
try {
//Datos para realizar la conexion
//$dbhost = $config->get('db.hosts.local');
$dbhost = 'localhost';
$dbname = $config->get('db.name');
$dbuser = $config->get('db.user');
$dbpass = $config->get('db.password');
$conexion = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
} catch (PDOException $e) {
echo "Error " . $e->getMessage();
}
?>
<?php
return [
'db' => [
'hosts' => [
'local' => 'localhost',
'externo' => '175.99.155.194',
],
'name' => 'cl55-cell',
'user' => 'cl55-cell',
'password' => 'matilcell12'
],
'mail' => [
'host' => 'smtp.gmail.com'
]
];
?>
和我的Config.php类:
<?php
/*Esta clase permite cargar las configuraciones del sistema*/
namespace Project\Helpers;
class Config
{
protected $data;
protected $default = null;
public function load($file){
$this->data = require $file;
}
public function get($key, $default = null){
$this->default = $default;
$segments = explode('.', $key);
$data = $this->data;
foreach ($segments as $segment) {
if(isset($data[$segment])){
$data = $data[$segment];
}else{
$data = $this->default;
break;
}
}
return $data;
}
public function exists($key){
return $this->get($key) !== $this->default;
}
}
?>
我的主机中的数据库如下所示:
错误报告:
警告:require(/db/connect.php):无法打开流:第17行的/home/sites/gorydev.net.ve/public\u html/sistemamaticell/login.php中没有这样的文件或目录致命错误:require():无法打开required'/db/connect.php'(include_path=':/usr/share/pear55:/usr/share/php')第17行/db/connect.php/
我在本地主机pc上重复,它工作正常。。相同的dbname相同的用户名和密码看起来您使用的是绝对路径,需要相对路径
require '/db/connect.php';
应该是
require 'db/connect.php';
取决于
connect.php中的内容-并且您的路径可能不正确-检查错误请打开错误报告(参见顶部答案)并检查您收到的错误消息。这将大大有助于确定问题所在。请使用PHP来处理密码安全问题。如果你使用的PHP版本低于5.5,你可以使用密码\u hash()
。大家好,谢谢你们的回复,我更新了我的问题,这样你们就可以看到其余的文件@Fred ii,所以我更新了代码以启用错误报告,这就是我得到的:警告:require(/db/connect.PHP):无法打开流:第17行的/home/sites/gorydev.net.ve/public_html/sistemamaticell/login.php中没有这样的文件或目录致命错误:require():无法打开required'/db/connect.php'(include_path='。:/usr/share/pear55:/usr/share/php')在第17行的/home/sites/gorydev.net.ve/public_html/sistematilcell/login.php中,但是我确实将/db/connect.php/目录上传到了我的主机服务器感谢@gre_gor它确实解决了问题。。但是现在我输入admin和密码admin,什么也没发生