База юзеров,поиск и вывод (php)
Есть несколько вопросов, помогите пожалуйста.
Задача:
1. Сделать регистрацию юзеров (занесение данных адрес, телефон, почта, сайт) в базу (мускул)
2. Вывод всех пользователей по нажатию на кнопку.
3. Поиск юзверя по базу и вывод всей его информации.
Я представляю себе алгоритм, что как надо, только не знаю какими средствами, функциями надо пользоваться. прошу помощи, если кто-то уже встречал подобные вещи, или есть готовые, просьба дать ссылку, просто известить об этом.
Схожие вещи, но требующие доработки (переделки под свои именно нужны) приветствуются. :)
Буду рад любому совету. Хелп.
Доброго времени суток!
Есть несколько вопросов, помогите пожалуйста.
Задача:
1. Сделать регистрацию юзеров (занесение данных адрес, телефон, почта, сайт) в базу (мускул)
2. Вывод всех пользователей по нажатию на кнопку.
3. Поиск юзверя по базу и вывод всей его информации.
Я представляю себе алгоритм, что как надо, только не знаю какими средствами, функциями надо пользоваться. прошу помощи, если кто-то уже встречал подобные вещи, или есть готовые, просьба дать ссылку, просто известить об этом.
Схожие вещи, но требующие доработки (переделки под свои именно нужны) приветствуются. :)
Буду рад любому совету. Хелп.
Если сам, то простые SELECT INSERT в MySQL. Если готовые... да возми ты любой форум, там везде есть регистрация и она поддерживает MySQL.
Если сам, то простые SELECT INSERT в MySQL. Если готовые... да возми ты любой форум, там везде есть регистрация и она поддерживает MySQL.
Вот я об этом же и подумал... (форум):)
Делаем формы, проверку на заполненность всех форм, далле, по нажатию на кнопку, делаем вызов вот этого:
<? php
$user=user (<input type=text name=user>)
---//---
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Ну не получается законнектииться!");
CREATE TABLE Users()
$query="INSERT INTO Users VALUES($user, $adress, $email, $tel, $site)"
$result = MYSQL_QUERY($query);
PRINT "Информация занесена в базу.";
MYSQL_CLOSE();
?>
так, или не так? может я все не так понимаю вообще?
Я еще не понимаю как повязать это на кнопку...как отдельный фал вызывать, или как?
С форумом на пхпББ не разобрался,другие смотреть не стал, запутанно как-то все, буду сам делать. (полезней будет)
Делаем формы, проверку на заполненность всех форм, далле, по нажатию на кнопку, делаем вызов вот этого:
<? php
$user=user (<input type=text name=user>)
---//---
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Ну не получается законнектииться!");
CREATE TABLE Users()
$query="INSERT INTO Users VALUES($user, $adress, $email, $tel, $site)"
$result = MYSQL_QUERY($query);
PRINT "Информация занесена в базу.";
MYSQL_CLOSE();
?>
так, или не так? может я все не так понимаю вообще?
Я еще не понимаю как повязать это на кнопку...как отдельный фал вызывать, или как?
Так товарищ, если не знаем форм, марш учить. Без этого разговор дальше продолжать не имеет смысла.
Так товарищ, если не знаем форм, марш учить. Без этого разговор дальше продолжать не имеет смысла.
ммм, че где не так?
<FORM ACTION="tra-tata" METHOD="POST"> забыл?
<INPUT TYPE="submit" VALUE="Заслать!">
</FORM>
вот поэтому она и будет атправляться, так?
Не надо переменноу передавать имя, чего где опшипка? разбирусь, абесчаю, ужо впитываю всю инфу. хелп.
ммм, че где не так?
<FORM ACTION="tra-tata" METHOD="POST"> забыл?
<INPUT TYPE="submit" VALUE="Заслать!">
</FORM>
вот поэтому она и будет атправляться, так?
Не надо переменноу передавать имя, чего где опшипка? разбирусь, абесчаю, ужо впитываю всю инфу. хелп.
Если не знаешь, учи принцип работы форм и как обрабатывает GET и POST PHP. После беглого изучения вопросы с регистрацией отпадут сами сабой.
При нажатии кнопки производится HTTP запрос, который и обрабатывает ПХП скрипт.
Вот это я понял, значит у меня должен быть GET.
Не достаточно?
GET - данные передаются через строку запроса и обработчиком выступает скрипт какой-то.
При нажатии кнопки производится HTTP запрос, который и обрабатывает ПХП скрипт.
Вот это я понял, значит у меня должен быть GET.
Не достаточно?
Ты алфавит тоже так же учил? Выучив а, б, в, г ты будешь считать что выучил? Или может ты не читал что я написал выше? Вроде я не про один GET говорил.
Делаю следующее :
Хтмл - документ:
<FORM ACTION="add.php" METHOD="POST">
Ваше имя:
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
Ваш email:
<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">
<INPUT TYPE="submit" VALUE="Отправить!">
</FORM>
add.php
PRINT "Привет, $name.";
PRINT "email: $email.";
И не работает, в чем проблема?
Говорит что не знает name и email.
Не поможете?
add.php
PRINT "Привет, $name.";
PRINT "email: $email.";
И не работает, в чем проблема?
Говорит что не знает name и email.
Не поможете?
Немногим выше я писал:
Меня проигнорировали.
Немногим выше я писал:
Меня проигнорировали.
Так, видимо вы говорили про то, что создается массив - $_POST["переменная"] и $_GET["переменная"], так?
+ GET передает запрос в строке, а POST в теле запроса, в общем не видно что передает.
И GET ограничен длиной строки, а POST - нет.
После того как узнал что создается массив, сразу все заработало.
Это имелось в виду?
Немногим выше я писал:
Меня проигнорировали.
Одно из двух: либо Shaelf открыл КМП, либо его кто-то разводит... ;)
Одно из двух: либо Shaelf открыл КМП, либо его кто-то разводит... ;)
Ээээ, сударь, Вы о чём?:). Я тут педагогикой занимаюсь понимаешь... И что ещё за КМП?
2Ariman Собсно это и имелось ввиду. Дерзай.
Ээээ, сударь, Вы о чём?:). Я тут педагогикой занимаюсь понимаешь... И что ещё за КМП?
2Ariman Собсно это и имелось ввиду. Дерзай.
Ну, типа курс молодого программиста... ;)
Ну, типа курс молодого программиста... ;)
Не, просто потом вопросов будет меньше:).
Не, просто потом вопросов будет меньше:).
Получился вот такой файл:
пока сделал тока для имени и почты, остальное аналогично.
<?
$hostname = "localhost";
$username = "test1";
$password = "test1";
$dbName = "test1";
$name=$_POST["name"];
$email=$_POST["email"];
$userstable = "regusers";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Нет коннекта");
@mysql_select_db("$dbName") or die("Базу не выбрать");
PRINT "Привет, $name.";
PRINT "Спасибо за регистрацию";
PRINT "Ваш email: $email.";
$query = "INSERT INTO $userstable VALUES('$name','$email')";
$result = MYSQL_QUERY($query);
PRINT "Информация о вас занесена в базу данных.";
MYSQL_CLOSE();
?>
Все работает. Спасибо за помощь, поддержку, наводки всевозможные. :)
Теперь буду делать вывод и поиск...
Читаем дальше.
Не совсем понял что это, но связано с безопасностью видимо, прочитал фто эта функция экранирует спец-символы, так это?
Не совсем понял что это, но связано с безопасностью видимо, прочитал фто эта функция экранирует спец-символы, так это?
Я по твоемому лучше мана?:) Если сказано - делает, значит так оно и есть:). И на будующее запомни, что вот это:
$var = $_POST['var'];// не правильно
$var = mysql_escape_string($_POST['var']);// более правильно (это в твоей ситуации).
Не когда не передавай в скрипт непроверенные переменные.
Это наверно и есть sql инъекция, когда данные не проверяются, и в базу идут не правильные символы, в следствии чего появляется уязвимость, а если стоит такая проверка, то все в порядке будет? :)
Только в общих чертах. Ещё есть несколько способов, но думаю тебе нужно местный FAQ сначала перелапатить, затем у поисковиков спросить, что-то типа "Безопастное программирование на PHP". Ещё лучше книгу толковую купи, так как объяснять все ньюансы думаю тут не у кого нету времени.
Возник следующий вопрос теперь, как сделать проверку на то, чтобы нельзя было отправить точно такие же данные, какие уже были записаны. Не могу сформулировать запрос для гугла или яндекса...какими функциями пользоваться? хелп. :)
Сравнивать по каждому столбцу, каким образом? хелп.
но не в этом вопрос, как я понимаю ...
сначала сделай так что бы у тебя заносились данные,
а потом уже думай на тему инжектора (ведь сам себе западло делать не станешь...)
? хелп.
? хелп.
Пособлю немного уважаемому Шаллфу.
Вообще, следует иметь для работы с БД отдельный класс, и конструировать его при каждом обращении пользователя к сайту. И в дальнейшем оперировать этим объектом.
Для проверки наличия пользователя в БД я бы написал метод, возвращающий массив с данными пользователя, если он есть, или пустой массив, если таковой не обнаружен.
$query = "SELECT * FROM usertable WHERE logon='$logon' AND password='$password'";
$res = $db->getRecords($query);
return sizeof($res) ? $res[0] : array();
}
В этом коде предполагается как раз тот самый объект, который конструируется при подключении к БД ($db). Ну, а метод объекта $db getRecords() возвращает массив хэшей.
А дальше мы уже проверяем возвращённый результат и делаем от этого дальнейшие движения.
Get и Post не сильно то и отличаются ...
но не в этом вопрос, как я понимаю ...
сначала сделай так что бы у тебя заносились данные,
а потом уже думай на тему инжектора (ведь сам себе западло делать не станешь...)
Как похоже на Россию. Сначало принимаеться проект, реализуеться, а потом начинают вспоминать о безопастности... В зародыше нужно эту инфу впитывать, т.к. после будет сложнее...
2mfender. Пасиб:). просто на работе загрузился и спина болит:(. Ну наверное ООП ему немного рано:).
Ведь мона мальца проще.
$res = mysql_query(SELECT что-то FROM откеда-то WHERE название столбца = что сравниваеш").
if(mysql_num_rows($res) !=0) {
Делаешь что нужно.
}
Что из этих функций непонятно - в ман.