2013-06-29 5 views
-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()); 

?> 

Я хочу сохранить этот «пароль» в моей базе данных. но я не могу поместить это непосредственно в файл php и хранить его. Потому что я получаю сообщение об ошибке. Кто-нибудь знает, как это сделать??Как сохранить этот пароль в базе данных

Спасибо!

+0

Нет, мы не знаем, какое сообщение об ошибке вы получаете. – mario

+0

какая ошибка вы получаете? –

+0

'$ password' никогда не определяется. – str

ответ

2

Вы должны вызвать функцию и сохраняет свое значение в переменной.

$pass = generatePassword(); 
$sql="INSERT INTO `users`(`password`) VALUES ('$pass')"; 
+0

, но после его сохранения в базе данных он имеет только 9 символов. Но это должно быть так [1911ba1bec6e2301e56c26c16d0d6b76] – user2534316

+0

@ user2534316 использовать любой хэш-алгоритм для хеширования. как sha12 ($ pass). –

+0

Как использовать md5 для этого? – user2534316

1

Вы не используете свою функцию. Попробуйте это:

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

Вы должны вызвать функцию, которую вы определили и сохранить его в переменной $password, иначе никакого переменные $ пароля не определен в коде.

$password = generatePassword(); 
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}')"; 
0

Вы должны определить generatePassword функцию как статическую функцию. и вы не определили какой-либо класс, чтобы изменить функцию от статической функции до простой функции, удалив static. и вы являетесь переменной usin $ 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());