Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

База юзеров,поиск и вывод (php)

2.1K
15 февраля 2006 года
Ariman
102 / / 20.10.2005
Доброго времени суток!

Есть несколько вопросов, помогите пожалуйста.

Задача:

1. Сделать регистрацию юзеров (занесение данных адрес, телефон, почта, сайт) в базу (мускул)

2. Вывод всех пользователей по нажатию на кнопку.

3. Поиск юзверя по базу и вывод всей его информации.

Я представляю себе алгоритм, что как надо, только не знаю какими средствами, функциями надо пользоваться. прошу помощи, если кто-то уже встречал подобные вещи, или есть готовые, просьба дать ссылку, просто известить об этом.

Схожие вещи, но требующие доработки (переделки под свои именно нужны) приветствуются. :)

Буду рад любому совету. Хелп.
15
15 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
Доброго времени суток!

Есть несколько вопросов, помогите пожалуйста.

Задача:

1. Сделать регистрацию юзеров (занесение данных адрес, телефон, почта, сайт) в базу (мускул)

2. Вывод всех пользователей по нажатию на кнопку.

3. Поиск юзверя по базу и вывод всей его информации.

Я представляю себе алгоритм, что как надо, только не знаю какими средствами, функциями надо пользоваться. прошу помощи, если кто-то уже встречал подобные вещи, или есть готовые, просьба дать ссылку, просто известить об этом.

Схожие вещи, но требующие доработки (переделки под свои именно нужны) приветствуются. :)

Буду рад любому совету. Хелп.


Если сам, то простые SELECT INSERT в MySQL. Если готовые... да возми ты любой форум, там везде есть регистрация и она поддерживает MySQL.

2.1K
15 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
Originally posted by shaelf
Если сам, то простые SELECT INSERT в MySQL. Если готовые... да возми ты любой форум, там везде есть регистрация и она поддерживает MySQL.



Вот я об этом же и подумал... (форум):)

2.1K
15 февраля 2006 года
Ariman
102 / / 20.10.2005
С форумом на пхпББ не разобрался,другие смотреть не стал, запутанно как-то все, буду сам делать. (полезней будет)

Делаем формы, проверку на заполненность всех форм, далле, по нажатию на кнопку, делаем вызов вот этого:
<? 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();

?>

так, или не так? может я все не так понимаю вообще?

Я еще не понимаю как повязать это на кнопку...как отдельный фал вызывать, или как?
15
15 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
С форумом на пхпББ не разобрался,другие смотреть не стал, запутанно как-то все, буду сам делать. (полезней будет)

Делаем формы, проверку на заполненность всех форм, далле, по нажатию на кнопку, делаем вызов вот этого:
<? 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();

?>

так, или не так? может я все не так понимаю вообще?

Я еще не понимаю как повязать это на кнопку...как отдельный фал вызывать, или как?


Так товарищ, если не знаем форм, марш учить. Без этого разговор дальше продолжать не имеет смысла.

2.1K
15 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
Originally posted by shaelf
Так товарищ, если не знаем форм, марш учить. Без этого разговор дальше продолжать не имеет смысла.




ммм, че где не так?

<FORM ACTION="tra-tata" METHOD="POST"> забыл?

<INPUT TYPE="submit" VALUE="Заслать!">

</FORM>

вот поэтому она и будет атправляться, так?
Не надо переменноу передавать имя, чего где опшипка? разбирусь, абесчаю, ужо впитываю всю инфу. хелп.

15
15 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
ммм, че где не так?

<FORM ACTION="tra-tata" METHOD="POST"> забыл?

<INPUT TYPE="submit" VALUE="Заслать!">

</FORM>

вот поэтому она и будет атправляться, так?
Не надо переменноу передавать имя, чего где опшипка? разбирусь, абесчаю, ужо впитываю всю инфу. хелп.


Если не знаешь, учи принцип работы форм и как обрабатывает GET и POST PHP. После беглого изучения вопросы с регистрацией отпадут сами сабой.

2.1K
16 февраля 2006 года
Ariman
102 / / 20.10.2005
GET - данные передаются через строку запроса и обработчиком выступает скрипт какой-то.

При нажатии кнопки производится HTTP запрос, который и обрабатывает ПХП скрипт.

Вот это я понял, значит у меня должен быть GET.

Не достаточно?
15
16 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
GET - данные передаются через строку запроса и обработчиком выступает скрипт какой-то.

При нажатии кнопки производится HTTP запрос, который и обрабатывает ПХП скрипт.

Вот это я понял, значит у меня должен быть GET.

Не достаточно?


Ты алфавит тоже так же учил? Выучив а, б, в, г ты будешь считать что выучил? Или может ты не читал что я написал выше? Вроде я не про один GET говорил.

2.1K
18 февраля 2006 года
Ariman
102 / / 20.10.2005
Рещил начать с маленького:
Делаю следующее :

Хтмл - документ:


<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.

Не поможете?
15
19 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
add.php

PRINT "Привет, $name.";

PRINT "email: $email.";

И не работает, в чем проблема?

Говорит что не знает name и email.

Не поможете?


Немногим выше я писал:

Цитата:
и как обрабатывает GET и POST PHP


Меня проигнорировали.

2.1K
19 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
Originally posted by shaelf
Немногим выше я писал:
Меня проигнорировали.



Так, видимо вы говорили про то, что создается массив - $_POST["переменная"] и $_GET["переменная"], так?

+ GET передает запрос в строке, а POST в теле запроса, в общем не видно что передает.

И GET ограничен длиной строки, а POST - нет.

После того как узнал что создается массив, сразу все заработало.

Это имелось в виду?

8
19 февраля 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by shaelf
Немногим выше я писал:
Меня проигнорировали.


Одно из двух: либо Shaelf открыл КМП, либо его кто-то разводит... ;)

15
19 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by mfender
Одно из двух: либо Shaelf открыл КМП, либо его кто-то разводит... ;)


Ээээ, сударь, Вы о чём?:). Я тут педагогикой занимаюсь понимаешь... И что ещё за КМП?
2Ariman Собсно это и имелось ввиду. Дерзай.

8
19 февраля 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by shaelf
Ээээ, сударь, Вы о чём?:). Я тут педагогикой занимаюсь понимаешь... И что ещё за КМП?
2Ariman Собсно это и имелось ввиду. Дерзай.


Ну, типа курс молодого программиста... ;)

15
19 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by mfender
Ну, типа курс молодого программиста... ;)


Не, просто потом вопросов будет меньше:).

2.1K
19 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
Originally posted by shaelf
Не, просто потом вопросов будет меньше:).



Получился вот такой файл:
пока сделал тока для имени и почты, остальное аналогично.

<?

$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();
?>

Все работает. Спасибо за помощь, поддержку, наводки всевозможные. :)

Теперь буду делать вывод и поиск...

15
19 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Читаем дальше.
2.1K
19 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
Originally posted by shaelf
Читаем дальше.



Не совсем понял что это, но связано с безопасностью видимо, прочитал фто эта функция экранирует спец-символы, так это?

15
19 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
Не совсем понял что это, но связано с безопасностью видимо, прочитал фто эта функция экранирует спец-символы, так это?


Я по твоемому лучше мана?:) Если сказано - делает, значит так оно и есть:). И на будующее запомни, что вот это:
$var = $_POST['var'];// не правильно
$var = mysql_escape_string($_POST['var']);// более правильно (это в твоей ситуации).
Не когда не передавай в скрипт непроверенные переменные.

2.1K
20 февраля 2006 года
Ariman
102 / / 20.10.2005
Это наверно и есть sql инъекция, когда данные не проверяются, и в базу идут не правильные символы, в следствии чего появляется уязвимость, а если стоит такая проверка, то все в порядке будет? :)
15
20 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Ariman
Это наверно и есть sql инъекция, когда данные не проверяются, и в базу идут не правильные символы, в следствии чего появляется уязвимость, а если стоит такая проверка, то все в порядке будет? :)


Только в общих чертах. Ещё есть несколько способов, но думаю тебе нужно местный FAQ сначала перелапатить, затем у поисковиков спросить, что-то типа "Безопастное программирование на PHP". Ещё лучше книгу толковую купи, так как объяснять все ньюансы думаю тут не у кого нету времени.

2.1K
20 февраля 2006 года
Ariman
102 / / 20.10.2005
пока подождем. :)

Возник следующий вопрос теперь, как сделать проверку на то, чтобы нельзя было отправить точно такие же данные, какие уже были записаны. Не могу сформулировать запрос для гугла или яндекса...какими функциями пользоваться? хелп. :)

Сравнивать по каждому столбцу, каким образом? хелп.
332
21 февраля 2006 года
Valiant
416 / / 27.09.2004
Get и Post не сильно то и отличаются ...
но не в этом вопрос, как я понимаю ...
сначала сделай так что бы у тебя заносились данные,
а потом уже думай на тему инжектора (ведь сам себе западло делать не станешь...)
2.1K
22 февраля 2006 года
Ariman
102 / / 20.10.2005
Цитата:
как сделать проверку на то, чтобы нельзя было отправить точно такие же данные, какие уже были записаны



? хелп.

8
22 февраля 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by Ariman
? хелп.


Пособлю немного уважаемому Шаллфу.
Вообще, следует иметь для работы с БД отдельный класс, и конструировать его при каждом обращении пользователя к сайту. И в дальнейшем оперировать этим объектом.

Для проверки наличия пользователя в БД я бы написал метод, возвращающий массив с данными пользователя, если он есть, или пустой массив, если таковой не обнаружен.

 
Код:
function getUserData($logon, $password, $db){
    $query = "SELECT * FROM usertable WHERE logon='$logon' AND password='$password'";
    $res = $db->getRecords($query);
    return sizeof($res) ? $res[0] : array();
}

В этом коде предполагается как раз тот самый объект, который конструируется при подключении к БД ($db). Ну, а метод объекта $db getRecords() возвращает массив хэшей.

А дальше мы уже проверяем возвращённый результат и делаем от этого дальнейшие движения.
15
22 февраля 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Valiant
Get и Post не сильно то и отличаются ...
но не в этом вопрос, как я понимаю ...
сначала сделай так что бы у тебя заносились данные,
а потом уже думай на тему инжектора (ведь сам себе западло делать не станешь...)


Как похоже на Россию. Сначало принимаеться проект, реализуеться, а потом начинают вспоминать о безопастности... В зародыше нужно эту инфу впитывать, т.к. после будет сложнее...
2mfender. Пасиб:). просто на работе загрузился и спина болит:(. Ну наверное ООП ему немного рано:).
Ведь мона мальца проще.
$res = mysql_query(SELECT что-то FROM откеда-то WHERE название столбца = что сравниваеш").
if(mysql_num_rows($res) !=0) {
Делаешь что нужно.
}
Что из этих функций непонятно - в ман.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог