ФорумПрограммированиеPHP для идиотов → Вопрос по регистрации пользователя

Вопрос по регистрации пользователя

  • kapitannoob

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz Май 12, 2014, 10:08 п.п.

    Форма регистрации рабочая, кусок кода из неё:
                if(!empty($data[0]))
    echo 'Пользователь с таким логином уже существует!';
    else {
    #пользователь не найден, регистрируем
    $result2 = mysql_query ('INSERT INTO `user` (`login`,`password`,`date`,`email`) VALUES("'.$login.'","'.$password.'","'.$date.'","'.$email.'")');

    // Проверяем, есть ли ошибки
    echo -1 !== mysql_affected_rows()
    ? 'Вы успешно зарегистрированы! Теперь вы можете зайти на сайт.<br />
    <a href="./">Главная страница</a>'

    : 'Произошла ошибка при регистрации. Пожалуйста, попробуйте позднее.';
    }


    Можно мне пояснить 3 строчки после фразы "Проверяем, есть ли ошибки".
    mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов (это я так понимаю было ли занесение пользователя в базу)
    Как понять если оно тождественно не равно -1 ?

    Я хотел в случае успешной регистрации вставить mail() после "Вы успешно зарегистрированы" и отправить письмо на почту, но он отказывается вставлять говорит синтаксическая, я так понимаю что это из-за того что внутри echo всё это?

    Как тут лучше поступить? Сделать:
    if (-1 !== mysql_affected_rows()) mail($email, $subject, $message);
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Май 12, 2014, 10:17 п.п., спустя 8 минут 33 секунды

    !==

    тождественно не равно

    !=

    не равно

    см. математику и мануал по типам пхп

    тернарный if раскрой в обычный и вставляй mail, в любом случае лучше сначала подумать и попробовать, чем спрашивать

  • kapitannoob

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz Май 13, 2014, 12:04 д.п., спустя 1 час 46 минут 36 секунд

    Тождественно равно - это обычно "равно для всех возможных значений параметра"
    Можно считать, что это обозначение для нескольких разных обозначений одного объекта. Тождественно равно <-> "совпадает" и "эвивалентно"

    Всё супер но смысла всё равно не понял.

    Почему при подтверждении регистрации по е-майл рекомендуют использовать функцию uniqid() а не rand() например? У первой вариантов больше?
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Май 13, 2014, 12:37 д.п., спустя 33 минуты 27 секунд

    в целях запутывания обучающихся

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Май 13, 2014, 12:40 д.п., спустя 3 минуты 9 секунд

    if (mysql_affected_rows($link) > 0){

    }
    не всё полезно, что в swap полезло
  • kapitannoob

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz Май 13, 2014, 8:17 д.п., спустя 7 часов 36 минут 27 секунд

    Всё понятно, спасибо. Скоро сяду подтверждение регистрации делать, I'll be back!
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Май 13, 2014, 8:25 д.п., спустя 8 минут 29 секунд

    С таким уровнем сложности примера, быстрее попробовать чем спросить. Только собственный опыт запоминается.

    Не знаешь что возвращает функция, не понял что написано в доках — просто выведи, блин, значение!

    Как найти ошибку в своем коде? [phpfaq.ru]

    var_dump(mysql_affected_rows());

    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!