-2
 <?php

if(isset($_POST['submit'])) {

include ("connect/connect.php");  

static function generatePassword($length = 8) {
    $chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $i = 0;
    $password = "";
    while ($i <= $length) {
        $password .= $chars{mt_rand(0, strlen($chars))};
        $i++;
    }
    return $password;
}

$sql="INSERT INTO `users`(`password`) VALUES ('$password')";

$result=mysql_query($sql,$conn) or die(mysql_error());

?>

我想将此“$password”存储在我的数据库中。但我不能把它直接放到一个 php 文件中并存储它。因为我遇到了一个错误。有人知道怎么做吗??

谢谢!

4

5 回答 5

2

您必须调用该函数并将其值存储在变量中。

$pass = generatePassword();
$sql="INSERT INTO `users`(`password`) VALUES ('$pass')";
于 2013-06-29T09:42:34.863 回答
1

你不使用你的功能。试试这个:

$sql="INSERT INTO `users`(`password`) VALUES ('".generatePassword()."')";
于 2013-06-29T09:42:17.270 回答
1

您应该调用您定义的函数并将其存储在变量$password中,否则您的代码中没有定义变量 $password 。

$password = generatePassword();
于 2013-06-29T09:42:38.347 回答
0
function generatePassword($length = 8) {
    $chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $i = 0;
    $password = "";
    while ($i <= $length) {
        $password .= $chars{mt_rand(0, strlen($chars))};
        $i++;
    }
    return $password;
}

$password = generatePassword(8) ;
$sql="INSERT INTO `users`(`password`) VALUES ('{$password}')";
于 2013-06-29T09:43:02.410 回答
0

您已将generatePassword函数定义为静态函数。并且您还没有定义任何类,因此通过删除将函数从静态函数更改为简单函数static。并且您正在使用 $password 变量,但您没有调用generatePassword函数来获取值,因此您需要先调用函数。尝试下面给出的代码。

if(isset($_POST['submit'])) {

include ("connect/connect.php");  

function generatePassword($length = 8) {
    $chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $i = 0;
    $password = "";
    while ($i <= $length) {
        $password .= $chars{mt_rand(0, strlen($chars))};
        $i++;
    }
    return $password;
}
$password = generatePassword();
$sql="INSERT INTO `users`(`password`) VALUES ('$password')";

$result=mysql_query($sql,$conn) or die(mysql_error());
于 2013-06-29T09:49:05.857 回答