Задача, сделать форму авторизации
Форма имеет поля типа имя, почта, пароль, повтор пароля.
при нажатии кнопки ок программа должна проверить не коротко ли имя и не различны ли пароли (работает без проблем)
После чего программа открывает таблицу и сверяет введённого пользователя с теми что уже есть в таблице. Вот тот самый кусок окда который не могу заставить работать!
$names = $_POST["name"]; //запоминаем значение поля ИМЯ
db_connect();
if (validate($_POST) == "OK") { // validate - проверяем введёные данные на какие-либо параметры
$sql = "select * from users where username='$names'"; // делаем запрос в таблице users по полю username
$result = mysql_query($sql); // присваеваем результат в переменную
if (!$result) { //это условие никогда не срабатывает - даже если нет дубликатов
$sql = "insert into users (username, email, password)
values ('".$_POST["name"]."', '".$_POST["email"]."', '".$passwords[0]."')";
$result = mysql_query($sql);
в итоге программа каждый раз говорит что такой пользователь уже существует и вводить его в базу отказывается.
Если в строке сравнения if (!$result) { зачем-то убрать восклицательный знак, то программа (что не удивительно) все имена пишет в таблицу, но сравнение конечно же никогда не срабатывает - все имена якобы уникальны )
Строчу строго по учебнику
http://www.ibm.com/developerworks/ru/edu/os-phptut1/section5.html#createdatabase
Думал достаточно авторитетный источник ) - спасайте!
Примечание:
так как я ещё очень далёк от понимания прошу помочь в раъяснении строк
1. $sql = "select * from users where username='$names'"; - что получает в итоге переменная??? что происходит ?
$result = mysql_query($sql); каким является результат... не понимаю что даёт нам функция mysql_query а в учебнике как то туманно разъясняется...
Примечание:
Alex-541, Японский Городовой Спасибо за гениальные ответы, так и тянет к знаниям после таких умозаключений...
а вобщем проблема решилась вот этим if (mysql_num_rows($result) === 0) способом, только 3 знака ровно было видимо чересчур много.
Чем дальше изучаю тем больше вопросов возникает, У кого нибудь есть чтиво на тему PHP для начинающих?
Примечание:
Я не кипятился, просто такие ответы которые не отвечают а лишь указывают человеку на его незнания, какие я услышал здесь в ответ на свой вопрос. Это выше моего понимания. Ламер он ибудет ламером до тех пор пока не научится как делать правильно, и где искать ответы на столь типовые вопросы. Если вам не хотелось опускаться до моего уровня и объяснить мне где я не прав, а лишь указать на неудачно выбранный мной источник - то странный вы выбрали способ высказаться, унизить автора топика. Всё это слегка вводит в недоумение :)
Да я не знаю этого языка программирования, как впрочем и любого другого разве что кроме школьного паскаля из детства, но обстоятельства сложились таким образом, что нужно срочным образом осилить данный вопрос.
Авторитетность источника найденного мной в гугле определил разве что по домену (http://www.ibm.com/). Моя личная ошибка.
Я просто бывали и на противоположном месте, хоть не по этой теме и знаю что такое объяснять ответ на вопрос человека не знающему предмет. И не просто отписаться, а сделать так чтобы меня понимали так же как я понимаю сам. Мне казалось что ВиО как раз для таких случаев.
за 2 фамилии спасибо (Котерова или Коггзолла). Постараюсь найти вменяемые учебники на русском
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.