αποστολη τυχαιου κωδικου προσβασεις

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από miltiadisf » 20 Νοέμ 2011 14:59

χαιρετε, προσπαθω να φτιαξω στο σιτε μου την εξεις λειτουργια:

να αποστελει στον χρηστη ενα τυχαιο κωδικο προσβασεις οταν τον εχει ξεχασει.

εχω βρει καποια script που το κανουν αυτο, το προβλημα μου σε αυτη την συναρτηση
εινια το λεξικο. εδω το path του λεξικου εινια απο linux εγω χρεισιμοποιω windows 7
και δεν μπορω να βρω καποιο παρομοιο λεξικο για να το κανω να δουλεψει......

ξερει καπιος τι πρεπει να κανω για να λυσω το προβλημα?????

function get_random_word($min_length, $max_length) {
// grab a random word from dictionary between the two lengths
// and return it

// generate a random word
$word = '';
// remember to change this path to suit your system
$dictionary = '/usr/dict/words'; // the ispell dictionary
$fp = @fopen($dictionary, 'r');
if(!$fp) {
return false;
}
$size = filesize($dictionary);

// go to a random location in dictionary
$rand_location = rand(0, $size);
fseek($fp, $rand_location);

// get the next whole word of the right length in the file
while ((strlen($word) < $min_length) || (strlen($word)>$max_length) || (strstr($word, "'"))) {
if (feof($fp)) {
fseek($fp, 0); // if at end, go to start
}
$word = fgets($fp, 80); // skip first word as it could be partial
$word = fgets($fp, 80); // the potential password
}
$word = trim($word); // trim the trailing \n from fgets
return $word;

:(

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από fafos » 20 Νοέμ 2011 16:42

gia poion logo prepei na pairneis kapoia tyxaia lexh apo lexiko kai na mhn kaneis ena aplo random string?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από miltiadisf » 20 Νοέμ 2011 16:44

fafos έγραψε:gia poion logo prepei na pairneis kapoia tyxaia lexh apo lexiko kai na mhn kaneis ena aplo random string?
πως γινεται αυτο που λες????

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από fafos » 20 Νοέμ 2011 16:47

Κώδικας: Επιλογή όλων

function randomPass&#40;&#41; &#123;
    $length = 8;
    $characters = '123456789abcdefghijkmnpqrstuvwxyz!@#$%&';
    $string = '';    

    for &#40;$p = 0; $p < $length; $p++&#41; &#123;
        $string .= $characters&#91;mt_rand&#40;0, strlen&#40;$characters&#41;&#41;&#93;;
    &#125;

    return $string;
&#125;

echo randomPass&#40;&#41;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από miltiadisf » 20 Νοέμ 2011 17:09

εχω αυτο το script και αυτες τις τρεις συναρτησεις και μου παιτανε αυτα τα λαθη γιατι???

Notice: Uninitialized string offset: 39 in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos18\user_auth_fns.php on line 140
5%&7vf2
Notice: Undefined property: stdClass::$email in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos18\user_auth_fns.php on line 163

Warning: mail() [function.mail]: SMTP server response: 550 The address is not valid. in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos18\user_auth_fns.php on line 168
Your password could not be reset - please try again later. Login

forgot_passwd.php

<?php
require_once("music_sc_fns.php");
do_html_header("Resetting password");

// creating short variable name
$username = $_POST['username'];

try {
$password = reset_password($username);
notify_password($username, $password);
echo 'Your new password has been emailed to you.<br />';
}
catch (Exception $e) {
echo 'Your password could not be reset - please try again later.';
}
do_html_url('login.php', 'Login');

?>


function reset_password($username) {
// set password for username to a random value
// return the new password or false on failure
// get a random dictionary word b/w 6 and 13 chars in length
$new_password = randomPass();

if($new_password == false) {
throw new Exception('Could not generate new password.');
}

// add a number between 0 and 999 to it
// to make it a slightly better password
$rand_number = rand(0, 999);
$new_password .= $rand_number;

// set user's password to this in database or return false
$conn = db_connect();
$result = $conn->query("update my_users
set password = '".$new_password."'
where username = '".$username."'");
if (!$result) {
throw new Exception('Could not change password.'); // not changed
} else {
return $new_password; // changed successfully
}
}

function randomPass() {
$length = 8;
$characters = '123456789abcdefghijkmnpqrstuvwxyz!@#$%&';
$string = '';

for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))];
}
echo "$string";
return $string;

}




function notify_password($username, $password) {
// notify the user that their password has been changed

$conn = db_connect();
$result = $conn->query("select usemail from my_users
where username='".$username."'");
if (!$result) {
throw new Exception('Could not find email address.');
} else if ($result->num_rows == 0) {
throw new Exception('Could not find email address.');
// username not in db
} else {
$row = $result->fetch_object();
$email = $row->email;
$from = "From: support@musicheaven \r\n";
$mesg = "Your PHPBookmark password has been changed to ".$password."\r\n"
."Please change it next time you log in.\r\n";

if (mail($email, 'PHPBookmark login information', $mesg, $from)) {
return true;
} else {
throw new Exception('Could not send email.');
}
}
}

miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

αποστολη τυχαιου κωδικου προσβασεις

Δημοσίευση από miltiadisf » 20 Νοέμ 2011 17:28

Τελικα με καποια διωρθωσει που εκανα περνω μονο αυτο το λαθος:

Warning: mail() [function.mail]: SMTP server response: 550 The address is not valid. in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos18\user_auth_fns.php on line 168
Your password could not be reset - please try again later. Login

Γιατι ομως εχω λαθος γραμενη την mail() η χρειαζετε καποια ριθμισει το php.ini ή ο apache ???? please help!!!

συναρτηση ειναι:

function notify_password($username, $password) {
// notify the user that their password has been changed

$conn = db_connect();
$result = $conn->query("select usemail from my_users
where username='".$username."'");
if (!$result) {
throw new Exception('Could not find email address.');
} else if ($result->num_rows == 0) {
throw new Exception('Could not find email address.');
// username not in db
} else {
$row = $result->fetch_object();
$email = $row->usemail;
$from = "From: support@musicheaven \r\n";
$mesg = "Your PHPBookmark password has been changed to ".$password."\r\n"
."Please change it next time you log in.\r\n";

if (mail($email, 'PHPBookmark login information', $mesg, $from)) {
return true;
} else {
throw new Exception('Could not send email.');
}
}
}

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες