Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ID для каждого пользователя

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Mukra
Отправлено: 16 Августа, 2013 - 00:33:25
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Перерыл весь интернет в поисках нужной информации про id пользователя, везде дают советы, как будто все первоклассные программисты и все написали со слов. Так вот, я почти не знаю PHP, но может найдутся люди которые выложат пример кода. Код нужен такой, что при регистрации генерировалась страница с ID пользователя, пример: user.php?id=тут_присвоенный_номер .В общем суть Вам думаю понятна. На форуме подобных тем уйма, но нигде толкового ответа не нашел. Если конечно кому то не сложно, я бы не отказался если кто нибудь еще продемонстрировал как можно сделать вот так: mysite.ru/логин пользователя, это было бы вообще прекрасно. Всем кто откликнется наиогромнейшие спасибо.
 
 Top
DelphinPRO
Отправлено: 16 Августа, 2013 - 00:53:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Дайте ему уже кто-нибудь ссылку на статью DeepVarvar'a про ЧПУ, я что-то найти не могу...
а то завтра третий дубликат темы создаст Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
avtor.fox
Отправлено: 16 Августа, 2013 - 01:34:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




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

* Нам нужно создать пользователя. — Верно? Пишем в базу примерно так:

CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO users VALUES (login(UNIQUE INDEX), password, some info)


Вуаля, у нас есть пользователь. Пусть его логин будет 'someuser' и в базу он уже внесён.
Поле 'login' должно содержать в себе уникальное значение. Думаю, что разберётесь (хихи).

* О нет, как его достать из базы? — Всё просто:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM user WHERE login = 'someuser'


Итак, с помощью драйвера* mysql мы достанем его из базы, запрос представлен выше, пример ниже (в идеале нужно использовать либо mysqli, либо PDO):

PHP:
скопировать код в буфер обмена
  1. //connect code - гугля подскажет как подключиться к базе
  2. $iQuery = mysql_query("SELECT * FROM user WHERE login = 'someuser'"); //обращаемся к таблице за данными пользователя
  3. $user = mysql_fetch_assoc($iQuery) or mysql_error(); //получаем данные в виде ассоциативного массива
  4. print_r($user); //посмотрим, что в переменной. Либо массив данных о пользователе, либо ошибка работы с mysql (запросы, подключение и прочее)
  5. //some code - собственно Ваш код, который будет что-то показывать


Так, инфа о пользователе получена. Что дальше?

* Нам нужно узнать, что за пользователь сейчас "висит" в нашем url http://site[dot]com/someuser (он у нас уже есть в базе):

Поработаем с .htaccess (файл конфигурации некоторых настроек сервера):

CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteBase /
  3. #если url указывает на файл 'http://site.com/file.tmp' то отдать его как обычно, например
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteRule ^(.*) index.php?q=$1 [L,QSA]


Получается, что наш файл /index.php (который главненький) будет являться единой точкой входа для любых адресов, будь то вид http://site[dot]com/news/ass/good.php или http://site.com/system/control, он их обработает и будет хранить в глобальной переменной $_GET[q'] в виде news/ass/good.php или system/control, соответственно

отступление: почему я не разбираю $_SERVER['REQUEST_URI']? - а нафиг надо. В моих приложения хватает одного лишь $_GET['q'] (который формируется с помощью .htaccess), всё остальное строится на свободных* GET запросах.

И, что мы имеем? Что получилось и стоит ли всё это собрать в одну кучу? Вы меня утомили, но, хорошо. Соберём:

файл index.php
PHP:
скопировать код в буфер обмена
  1. if(!mysql_connect('host', 'user', 'password')) die(mysql_error()); //проверяем подключение и собственно подключаемся к серверу mysql
  2. if(!mysql_select_db('database')) die (mysql_error()); //выбираем базу данных для работы, в противном случае получим ошибку, если что-то пошло не так
  3. $gUser = isset($_GET['q']) ? mysql_real_escape_string($_GET['q']) : 'admin'; //здесь мы смотрим, пуст ли запрос. Если пуст, то покажем профиль адина, если нет, то обезопасим переменную и отправим её дальше для приключений (идеал - использовать строгую проверку входных данных, например с помощью регулярных выражений. Но это сами)
  4. $iQuery = mysql_query("SELECT * FROM user WHERE login = '".$gUser."'"); //обращаемся к таблице за данными пользователя, передав логин из url
  5. $userData = mysql_fetch_assoc($iQuery) or mysql_error(); //получили данные в виде ассоциативного массива или ошибку
  6. print_r($userData);//смотрим, что же находится в переменной
  7. //и собственно работаем дальше


файл .htaccess
CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteBase /
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*) index.php?q=$1 [L,QSA]


* DelphinPRO говорит чистую правду. У пользователя DeepVarvar есть статья про ЧПУ, поищите.
* Мой пример — тривиальный.
* Писал прямо здесь, могут быть ошибки.
* В моём описании сначала указано, что мы достаём инфу о пользователе, а только потом смотрим на url. Но это не так, все обвинения ложные и Вы не Ahimus, а я не Groujender.
* Советую Вам перестать лениться и писать свою социальную сеть только после полученных знаний. Ибо этот код (мною представленный) пишется за 2 минуты, всё остальное ~15 минут.
 
 Top
Саныч Модератор
Отправлено: 16 Августа, 2013 - 01:34:33
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




DelphinPRO, да какое ему ЧПУ, если он даже не знает, что атвоинкремент от таблицы в БД и есть id пользователя. Хотя о чем это я, какая БД... Чел вчера только узнал, что язык оказывается такой есть, сегодня соц. сеть свою начал писать, а я тут со своими БД какими-то...


Я по памяти помню, тема называлась "Про ЧПУ и не только", если хочет, пусть в поиске ищет.
(Добавление)
avtor.fox, и не поленился ведь столько писать Улыбка
Мои способности ванги предчувствуют следующий вопрос топикстартера, это будет что-то типа: "А как базу создать?..".


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
avtor.fox
Отправлено: 16 Августа, 2013 - 01:44:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Саныч, в таком случае есть гугля. Если не сам, то добрые люди его пошлют Закатив глазки

Саныч пишет:
и не поленился ведь столько писать

Та пустяк. Сейчас пойду писать про highload и почему ТС так часто встречает данное слово Улыбка
 
 Top
DelphinPRO
Отправлено: 16 Августа, 2013 - 02:19:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)





avtor.fox пишет:
Сейчас пойду писать про highload и почему ТС так часто встречает данное слово

ГЫ ) пойду почитаю ваши мысли по этому поводу Улыбка

(Добавление)
Саныч пишет:
DelphinPRO, да какое ему ЧПУ
ну он таки требует ЧПУ Улыбка мне не жалко, пусть разбирается.. наводку что искать, дали..


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
avtor.fox
Отправлено: 16 Августа, 2013 - 02:21:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)





DelphinPRO пишет:
ваши

ну я же просил Не понял и опечален
 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Августа, 2013 - 04:30:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB