gpt4 book ai didi

php - 从 php 脚本到 mySql 的哈希可以在本地主机上工作,但不能在 Web 服务器上工作?

转载 作者:行者123 更新时间:2023-11-30 01:12:00 27 4
gpt4 key购买 nike

我正在尝试对密码进行哈希处理并将其存储在 mySql 数据库中。当使用本地主机存储时,这很好,现在我已经转移到服务器,散列方法阻止了整个工作。如果我删除哈希代码,它保存得很好,但我希望对密码进行哈希处理。看起来很奇怪,因为相同的代码在本地运行良好,并且基于 Web 的代码可以很好地连接到 Sql。我尝试了各种不同的散列方法,一旦我尝试任何方法,我得到的就是

"2013-10-15 22:37:07.915 UsernameAndPasswordwithphp[20249:a0b] 来自服务器的响应 = "

而不是

"2013-10-15 22:54:53.750 UsernameAndPasswordwithphp[21323:a0b] 来自服务器的响应 = 已建立连接已选择数据库”

我正在运行 php 5.5.3

非常感谢!

这是我的代码

<?php
//session_start()


$host = "";
$user = "";
$pass = "";
$db = "";

$r = mysql_connect($host, $user, $pass);

if (!$r) {
echo "Could not connect to server\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Connection established\n";
}

$r2 = mysql_select_db($db);

if (!$r2) {
echo "Cannot select database\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Database selected\n";
}


$usernameFromApp = $_GET["f1"];
$nameFromApp = $_GET["f2"];
$passwordFromApp = $_GET["f3"];



$timeTarget = 0.2;
$cost = 9;
do {
$cost++;
$start = microtime(true);
password_hash($passwordFromApp, PASSWORD_BCRYPT, ["cost" => $cost]);
$end = microtime(true);
} while (($end - $start) < $timeTarget);
$hash = password_hash($passwordFromApp, PASSWORD_BCRYPT, ["cost" => $cost]);

echo "Appropriate Cost Found: " . $cost . "\n";
echo $hash."\n";




$name = $_GET["f2"];

$username = $_GET["f1"];

$password = $hash;

//$password = $_GET["f3"];

$query = "INSERT INTO user VALUES ('', '$name','$username','$password')";

mysql_query($query) or die (mysql_error("error"));

mysql_close();


?>

最佳答案

您确定您的服务器上也有 PHP 5.5 吗?您是否使用 phpinfo() 仔细检查过这一点?

如果是这样,请先删除代码中的 while 循环。这是来自手册,我知道代码,但它的目的是衡量您的服务器在特定时间窗口内可以处理多少成本。您在生产中不需要这个。测试一次并设置成本(或者简单地坚持默认值,这已经足够了)。

检查您的数据库凭据,创建一个新文件并首先仅调试数据库连接。看来这就是您面临的问题。确保设置 error_reporting(-1)ini_set("display_errors", true),这应确保在出现问题时您能从脚本中获得响应。

另请注意,自 PHP 5.5 起,mysql 已被弃用,您绝对不应再使用它,请使用 mysqliPDO

验证所有用户输入,永远不要相信任何东西!

为您的 SQL 使用准备好的语句(受 mysqliPDO 支持)。

关于php - 从 php 脚本到 mySql 的哈希可以在本地主机上工作,但不能在 Web 服务器上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com