Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
1

Помощь. Функции

22.04.2013, 14:15. Показов 451. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Не первый раз я обращаюсь с почти одинаковым вопросом. Но мне нужна помощь.. Есть код регистрации/авторизации.. Написанный с помощью функций. Вот он:
Кликните здесь для просмотра всего текста

index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
error_reporting(E_ALL);
$errors='';
function registration(array $arr) {
    if (!isset($arr['button']))
        return 'Ошибка! (button)';
    if(!isset($arr['login'], $arr['pass'], $arr['pass2'], $arr['email']))
        return 'Ошибка!!! (arr login, pass)';
    if(!is_scalar($arr['login']) || !is_scalar($arr['pass']) || !is_scalar($arr['pass2']) || !is_scalar($arr['email']))
        return 'Ошибка!! (is_scalar)';
    $login=trim(stripslashes(htmlspecialchars($arr['login'])));
    $pass=trim(stripslashes(htmlspecialchars($arr['pass'])));
    $email=trim(stripslashes(htmlspecialchars($arr['email'])));
    if (empty($login) || empty($pass) || empty($email))
        return 'Вы ввели не все данные!';
    if($pass!=$_POST['pass2'])
        return 'Пароли не совпадают!';
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        return 'Неверный Email';
    require_once "function.php";
    global $errors;
    $errors='';
    $errors .= connect();
    $errors .= clear($login,$pass,$email);
    list($login, $pass, $email) = $result;
    $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die ('Mysql error4: ' . mysql_error());
    if (mysql_result($q4, 0) > 0)
        return 'Пользователь с таким ником или email уже зарегистрирован';
    $errors .= getSalt($pass);
    list($pass, $salt)=$res;
    $md5salt=md5($salt);
    $q5=mysql_query('INSERT INTO `table` (`Login`,`Password`,`Salt`, `Email`, `Activate`, `md5salt`) VALUES ("'.$login.'", "'.$pass.'", "'.$salt.'", "'.$email.'", 0, "'.$md5salt.'")') or die ('Mysql error5: ' . mysql_error());
    header('Location: site.ru');
    $message="Уважаемый: $login, вы зарегистрировались на сайте site.ru,\n пожалуйста, 
            перейдите по ссылке, чтобы активировать аккаунт:\n
            http://site.ru/mail.php?login=$login&pass=$salt
            \n
            Если вы не регистрировались на сайте, то проигнорируйте это сообщение";
    $subject='Регистрация на сайте';
    $errors .= mailto($email, $subject, $messages, "To: $to \r\n From: lol@example.ru \r\n Content-Type: text/html; charset=utf-8 \r\n");
}
if (!empty($_POST))
    $errors.=registration($_POST);
echo $errors;
?>
function.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function clear($login, $pass, $email){
    $result[]=mysql_real_escape_string($login);
    $result[]=mysql_real_escape_string($pass);
    $result[]=mysql_real_escape_string($email);
    return $result;
}
function connect (){
    $dbhost='';
    $dbname='';
    $dbuser='';
    $dbpass='';
    $link=mysql_connect("$dbhost", "$dbuser", "$dbpass") or die ('Не могу подключится к БД:'.mysql_error());
    $select=mysql_select_db($dbname, $link) or die ('Ошибка выбора БД: '.mysql_error());
}
function mailto ($to, $subject, $messages) {
    $headers="To: $to \r\n".
              "From: Administrator \r\n".
              "Content-Type: text/plane; charset=utf-8 \r\n";
    $mail=mail($to, $subject, $message, $headers);
    if (!$mail)
        return 'Ошибка отправки письма на почту. Попробуйте позже...';
    header('Location: http://site.ru/mail.php');
    exit();
}
function getSalt($pass){
    $arr=str_split('1234567890qwertyuiopasdfghjklzxcvbnm');
    $salt='';
    for ($i=0; $i<=5; $i++)
        $salt .= $arr[array_rand($arr)];
    $pass=md5($salt . $pass . $salt);
    $res[]=$salt;
    $res[]=$pass;
    return $res;
}
?>
Но после ввода данных в форме, я получаю notice о том, что не существует переменных $res и $result - переменные, которые возвращают функции через return. Как это можно исправить, подскажите пожалуйста...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2013, 14:15
Ответы с готовыми решениями:

Помощь в исследовании функции
Здравствуйте, нужна помощь.Исследуйте поведение данной функции в окрестности указанной точки с...

Помощь с решением функции
Сделал задачку в QBasic, теперь надо в Паскале. Сама задача &quot;Z = 2*(B(I)+2/X), где B(I) – элемент...

Оптимизация функции нужна помощь
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int TLConst; int find( int budget, int *table, int...

Помощь с табулированием функции в javascript
Пожалуйста, помогите с кодом - не работает, не могу найти ошибку! Я почти уверен, что дело в цикле...

1
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
22.04.2013, 14:34 2
не использовать переменные которых нет
PHP
1
2
3
4
5
6
7
8
9
function getSalt($pass){
...
    $res[]=$salt;
    $res[]=$pass;
    return $res;
}
...
   $errors .= getSalt($pass);
    list($pass, $salt)=$res;
getSalt возвращает результат с логином и паролем, зачем их присвоили ошибкам ?
PHP
1
list($salt,$pass)=getSalt($pass);
0
22.04.2013, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2013, 14:34
Помогаю со студенческими работами здесь

Нужна помощь в прописании основной функции
Здравствуйте! Написал код для этой задачи http://www.e-olimp.com/problems/1301, но не могу написать...

Нужна помощь в исправлении кода одной функции...
Плиз.. помогите исправить код функции 'void Opt()', мне необходимо было создать программу которая...

Подпрограммы.Некурсивные процедуры и функции.Народ нужна помощь.....
Треуголник задан координатами своих вершин. Составить программу для вычисления его площади.

Нужна помощь с написании рекурсивной функции метода пузырька
Добрый день! Нужна помощь с написании рекурсивной функции метода пузырька. Жутко туплю... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru