2016-04-23 5 views
-1

Ich bin auf PHP 7.0.5 mit FastCGI und NGINX, im Modus möchte ich mein Passwort für die Speicherung in der Datenbank db ... Ich benutze diesen Code, aber immer ein FehlerPHP 7.0.5 password_hash() Fehler

$hash = password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options); 

mod_fcgid: stderr: PHP Fatal error: Call to undefined Funktion password_hash() Aufruf undefiniert zu funktionieren. nicht wahr? Ich dachte, es war eine native Funktion

In meiner .htaccess-Datei Ich habe:

RewriteRule v1 /(.*)$ v1/index.php request = $ 1 [QSA, NC, L]

?

Das leitet/v1/register nach /v1/index.php

Wenn ich goto/v1/registriere der Hash abstürzt und gibt meine undefined, ABER, wenn ich direkt zu /v1/index.php gehe es funktioniert !?

komplette Code auf Seite

error_reporting(E_ALL); 
$hash = password_hash("rasmuslerdorf", PASSWORD_BCRYPT); 
echo "echo hash:" .$hash; 
die; 
+0

Es ist. Sind Sie sicher, dass dieser Fehler nicht durch eine andere Zeile in Ihrem Code generiert wird? – Chris

+0

Okay, ich kann von Ihrem Update sehen, es ist ziemlich klar, dass die Funktion den Fehler erzeugt. Kannst du 'echo phpversion();' machen und sicherstellen, dass PHP 7 tatsächlich benutzt wird? – Chris

+0

Hinzufügen von zusätzlichen Kommentaren oben ... –

Antwort

1

Ich bin fast sicher, dass Ihr Server nicht ausgeführt wird, was Sie denken, es ist. mod_fcgid ist ein Apache-Modul und .htaccess ist auch Apache-spezifisch, so dass Sie wahrscheinlich nicht Nginx laufen. Die Passwort-Hashing-Funktionen wurden in PHP 5.5.0 hinzugefügt. Ich werde sagen, dass Sie tatsächlich einen Apache-Server mit PHP < 5.5.0 betreiben. Sie müssen die compatibility library verwenden, um die Passwort-Hashing-Funktionen zu erhalten.

+0

FPM/FastCGI und php 7.0.5 von phpinfo(); im Server-Panel heißt es, 7.0.5 PHP als FPM-Anwendung ausgeführt von Nginx –

+0

@NathanLeggatt und wenn Sie 'echo phpversion();' in das gleiche Skript vor der 'password_hash()' Zeile? – Chris

+0

AH, sehr interessant .... ok, wenn ich phpinfo ausdrücke AUF DIESER SEITE ändert es sich, wenn ich vs umleite, wenn ich direkt darauf zugreife. Direkt sagt es php 7, wenn ich über die htaccess redirect gehe, ändert es sich zu 5. –