2016-04-04 6 views
0

Hallo Leute Ich entwickle eine kleine Web-Anwendung mit PHP, in dem ich mich anmelden und fügen Sie einige Dinge in der DB, alles funktioniert gut in meinem localhost Maschine , so dass ich es hochladen zu meinem Hosting-Server, die die gleiche dbname, dbuser, dbpassword als mein localhost haben .. aber wenn ich die Login-Button mit dem Benutzername und Passwort getroffen bekomme ich diesen Fehler:Unmöglich mit der Datenbank in Host mit PHP

Error after click login button in hosting server

und ich weiß, das Hosting läuft und läuft, wenn ich ins Internet gehe:

gorydev.net.ve/SistemaMatilcell

Dies ist der Code für login.php

<?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; 
    } 
} 

ist dies die connect.php Datei:

<?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(); 
} 
?> 

die config.php:

<?php 
return [ 
    'db' => [ 
     'hosts' => [ 
      'local' => 'localhost', 
      'externo' => '175.99.155.194', 
     ], 
     'name' => 'cl55-cell', 
     'user' => 'cl55-cell', 
     'password' => 'matilcell12' 
    ], 
    'mail' => [ 
     'host' => 'smtp.gmail.com' 
    ] 
]; 
?> 

und meine Config.php-Klasse:

<?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; 
    } 
} 
?> 

und meine DB in meinem Hosting sieht wie folgt aus: Hosting Database

mit Fehlerberichterstattung:

Warning: require(/db/connect.php): failed to open stream: No such file or directory in /home/sites/gorydev.net.ve/public_html/SistemaMatilcell/login.php on line 17 Fatal error: require(): Failed opening required '/db/connect.php' (include_path='.:/usr/share/pear55:/usr/share/php') in /home/sites/gorydev.net.ve/public_html/SistemaMatilcell/login.php on line 17 /db/connect.php/

ich in meinem lokalen Host-PC wiederhole es funktioniert gut .. gleiche Dbname gleiche Benutzername und das Passwort

+0

abhängig sein, was in 'connect.php' ist - und Ihr Weg möglicherweise nicht korrekt - überprüfen http://php.net/manual/en/function auf Fehler. error-reporting.php –

+0

Bitte aktivieren Sie Fehlerberichte (siehe die oberste Antwort [hier] (http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php)) und Überprüfen Sie, welche Fehlermeldung Sie erhalten. Dies wird sehr hilfreich bei der Bestimmung des Problems sein. – Chris

+0

Verwenden Sie die PHP-Funktionen [http://jayblanchard.net/proper_password_hashing_with_PHP.html], um die Passwortsicherheit zu verwalten. Wenn Sie eine PHP-Version kleiner als 5.5 verwenden, können Sie das 'password_hash()' [compatibility pack] (https://github.com/ircmaxell/password_compat) verwenden. –

Antwort

0

Sieht so aus, als ob Sie einen absoluten Pfad verwenden und Sie einen relativen benötigen.

require '/db/connect.php'; 

sollte wohl

require 'db/connect.php'; 
+0

Dank @gre_gor hat es das Problem gelöst .. aber jetzt gebe ich die Admin-und Passwort-Admin und nichts passieren –