Cześć
Mam pytanko, w jaki najprostszy sposób sprawdzić czy funkcja wykonała się cała popranie
User.class.php
public function forgetten($data) {
$errors = [];
if($data['user_login'] == '') {
$errors[] = 'Musisz podać login.';
}
if($data['user_email'] == '') {
$errors[] = 'Musisz podać adres e-mail.';
}
if(!empty($data['user_email'])) { if(filter_var($data['user_email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Podany adres email jest nieprawidłowy.';
}
}
if(count($errors) == 0
) { $this->sql->query("SET NAMES utf8");
$result = $this->sql->query("SELECT user_id FROM users WHERE user_login = '{$data['user_login']}' AND user_email = '{$data['user_email']}' LIMIT 1");
if($result->num_rows > 0) {
$value = mysqli_fetch_object($result);
$user_id = $value->user_id;
$data = $this->get_data($user_id);
// TEST //
foreach($data as $key => $value) {
echo "<p>".$key." = ".$value."</p>"; }
// TEST //
function generateRandomPasswd($length = 12) {
$user_pass_random_characters = '[]{}/?!@#$%&()0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($user_pass_random_characters); $user_pass_random = '';
for ($i = 0; $i < $length; $i++) {
$user_pass_random .= $user_pass_random_characters[rand(0
, $charactersLength - 1
)]; }
return $user_pass_random;
}
if(isset($_SESSION['user_pass_random'])) {unset($_SESSION['user_pass_random']);} $_SESSION['user_pass_random'] = generateRandomPasswd();
// echo $_SESSION['user_pass_random'] . "<br />";
if(isset($_SESSION['user_pass_random_hash'])) {unset($_SESSION['user_pass_random_hash']);} $_SESSION['user_pass_random_hash'] = $this->code_passwd($_SESSION['user_pass_random']);
// echo $_SESSION['user_pass_random_hash'] . "<br />";
} else {
echo "Niezgodność loginu, e-mail lub odpowiedzi na pytanie pomocnicze."; }
$query = "
UPDATE users
SET
user_pass_tmp = '".$this->code_passwd($_SESSION['user_pass_random'])."',
user_pass = ''
WHERE user_id = '{$user_id}'
";
if($this->sql->query($query)) {
return true;
} else {
return ['Wystąpił błąd z bazą danych.'];
}
} else {
return $errors;
}
}
index.php
case 'forgetten':
echo "<p>Wygeneruj nowe hasło</p>"; echo "<form action=\"index.php?action=forgetten_submit\" method=\"post\">"; echo "<input type=\"text\" placeholder=\"Login\" name=\"user_login\">"; echo "<input type=\"email\" placeholder=\"email\" name=\"user_email\">"; echo "<input type=\"submit\" value=\"Generuj\">";
break;
case 'forgetten_submit':
foreach ($_POST as $key => $value) {
$value = $sql->clear($value);
echo $key . " : " . $value."</p>"; }
$users->forgetten($_POST);
}
break;
Mam coś takiego i chciałbym aby jeśli funkcja jest TRUE zrobiła coś (np wysłała maila), a jeśli Jest FALSE wypisała info
Dzięki wielkie za pomoc
Ten post edytował topcio 26.04.2017, 16:59:19