Вебмастеру

 
 
164

Ответы на вопросы по PHP

  • Категория: php
НУ что господа, давайте ж попробуем поотвечать на вопросы
Задавайте все, что угодно по теме php+mysql ^)

а то группа чет мертвая(
 
 
31

Макс

  • группа: Гости
всмысле неработает?)
 
 
32

Alexey

  • группа: Гости
привет, не поможете найти скрипт верного/не верного ответа при работе в тесте?
 
 
33

Иван

  • группа: Гости
такая тема:
сайт при регистрации не создает новые страницы, а лишь забивает сведения в БД. При отображении страницы он так же берет данные из БД и отображает страницу. Вопрос: если сайтом одновременно будут пользоваться несколько человек, глюки не произойдут?
 
 
34

Серёжка

  • группа: Гости
Иван [*Osta] Дударев, не должны. так работают все сайты с регистрацией/авторизацией
 
 
35

Tarja

  • группа: Гости
Помогите мне разобраться.
В Dreamweavere я "смастерила" свой сайт, у меня получилось три формы заказа (достаточно большие), думала, по своей наивности, что в action надо вставить емейл, на который будут приходить сообщения, ан!НЕТ! Пыталась скачивать скрипты, даже редактировала, но толку нет, т.к. не знаю как это делать. (как с ними надо работать, что должно быть кроме PHP кода на странице, которую все просят создать) Уже все что можно испробовала. Еще проблема в том, что я его своими силами разместила с помощью провайдера, а что делать -не знаю. Если честно, вся в растрепанных чувствах, пятый день уже сижу..
Таня
Заранее спасибо
 
 
36

Иван

  • группа: Гости
с формы данные отправляются на скрипт.пхп
в этом скрипте прописывается функция mail (не помню её синтаксис, но она и отправляет на мыло все эти данные)
 
 
37

Макс

  • группа: Гости
Собствено вопрос возможно не корректен, но постораюсь ясно изложить суть. Мне необходимо, чтобы пользователь, зарегстрировашись, попадал как бы на страничку с его данными, которые он ввел при регистрации. Что то наподобие как на форумах "профиль" пользователя. Где он может изменить о себе информацию. Как лучше это реализовать?
Смотрел пример, как это сделано на форумах, но там все сложнее, мне попроще нужно.
 
 
38

Александр

  • группа: Гости
2Максим |RwlRwlRwl| Ревякин
вставь header('Location: путь к нужной странице'); после отработки регистрации.
путь к нужной странице - путь к его профилю
 
 
39

Иван

  • группа: Гости
сздаешь новый файл $name.php и вего запысываешь все теги и переменные. когда юзер заходит на сайт, он в форме вводит логин и пароль. Скрипт сравнивает введенный пароль с паролем из БД и при совпадении выкидывает с помощью header на страницу $name.
причем создаваемая страница должна содержать форму, как в регистрации, но переменные дефаулт в ней выставлены из БД. При нажатии на кнопку "сохранить изменения" страница $name.php стирается и создается новая, с уже измененными данными.
 
 
40

Макс

  • группа: Гости
Спасибо за советы) впринципе что то подобное я и предполагал.

Ну и вот такой вопрос:) Допусти есть несколько ссылок "Главгая", "Новости", "Галлерея" ну и т.п. В коде ссылка на эти страницы имеет вид:
<a href = "....index.php?action=main">
<a href = "....index.php?action=news">
<a href = "....index.php?action=gallery">

собсна я в коде немного не разобрался, но увидел такую вешь:
$actionArray = array(
'main' => array('mainr.php', 'Main'),
'news' => array('news.php', 'News'),
'gallery' => array('gallery.php', 'gallery'),
);
т.е непосредствено при нажатии на ссылки будут открыватся имено эти страницы *.php . Немогли бы вы поподробней рассказать или дать ссылку в интернете про такую организацию ссылок
 
 
41

Иван

  • группа: Гости
первый раз такое вижу :) но скорее всего это для того, чтобы юзер не знал местоположение тех самых страниц...
 
 
42

Макс

  • группа: Гости
Возможно я не прально описал)) или че нить не дописал. Ибо сам не особо разбираюсь в пхп. Но довольно часто вижу что имено такая ссылка <a href = "....index.php?action=main"> . Собсна вопрос про вот это " ?="
 
 
43

Александр

  • группа: Гости
а в чем собственно проблема? ну решил программист так организовать работу сайт. тебе надо еще страничку добавить? тогда добавляй пункт в массив и соответствующий файл в структуру.
Ничего необычного и оригинального в подобной реализации нет.
 
 
44

Макс

  • группа: Гости
Я не спрашивал правильно ли это или нет, я спросил как так сделать?
 
 
45

Алексей

  • группа: Гости
товарищи не могли бы вы помочь со страничой на которой бы пользователь вводил свои имя и пароль и если правльно ввел то на одну стр, еслинет то error!! есть таблица users с полями lgn pwd ! с использованием md5 хотелось бы!!!!!
 
 
46

Александр

  • группа: Гости
2Максим |RwlRwlRwl| Ревякин
"я спросил как так сделать?" - так у тебя вроде исходники есть, и ты примерно понимаешь работу такого сайта, что еще нужно то, объясни подробнее.
2Алексей Кирдун
делаешь форму регистрации, в action ей прописываешь путь к скрипту авторизации, в скрипте авторизуешь, если удачно(есть такой юзер с таким паролем), то header('Location: все_удачно.html');. иначе header('Location: error.html');
идея думаю понятна, с релизацией проблем не должно быть
 
 
47

Макс

  • группа: Гости
2 Александр xaoc Янцен

Обьясняю, покрайней мере постараюсь)) Исходник есть, НО собсна еслибы я разбирался в пхп врят ли я бы в этой группе был, ну или покрайней мере я бы отвечал, а не задавал вопросы. Вот и вопрос, как так организовать ссылкы. Этот массив это единственное, что я смог выудить оттуда, связанное с организацией ссылки. Точнее мне так показалось, вообшем прошу обьяснить, можно с примером, если возможно, как сделать подобную организацию ссылок
 
 
48

Александр

  • группа: Гости
2Максим
допустим у тебя где то на сайте есь ссылка <a href = "....index.php?action=main">бла-бла</a>.
index.php - тот файл на который уйдет запрос при нажатии на ссылку
? - разделитель, после него идут get-параметры, которые нужно передать скрипту index.php
action - собственно имя get-параметра, из скрипта к нему потом можно будет обратиться так $_GET['action']. например echo $_GET['action']; где нибудь в index.php выведет его значение.
main - значение get-параметра action
Примерная логика работы index.php : если есть файл с именем таким же как значение параметра action, то загрузить этот файл. Массив нужен для
установления соответствия между значениями action и остальными данными(заголовки стараниц например, "Main").
 
 
49

Макс

  • группа: Гости
2 Александр xaoc Янцен
Спасибо, но не мог бы ты написать примерны код, допустим есть главная страница index.php, и допустим на этой странице есть раздел NEWS. вот как организовать доступ к этому разделу news (который содержится в файле news.php). Буду очень признателен
 
 
50

Александр

  • группа: Гости
//страничка main грузится по-умолчанию
$action=(isset($_GET['action'])&&($_GET['acti
on']!=''))?$_GET['action']:'main';
if(file_exists(dirname(__FILE__)."/".$action.".php")){
include(dirname(__FILE__)."/".$action.".php");
}

что-то типа такого
можно еще пропустить $_GET['action'] через фильтры разные, которые отсекут ненужные символы.на самостоятельное изучение ))
 
 
51

Игорь

  • группа: Гости
Приветсвую всех, вот у меня тут образовалась маленькая проблема.

Я тут мудрю скрипт "типа" голосования за юзеров=))
И значитЦЦо у меня есть таблица в которую, при нажатии кнопки "Проголосовать", записывается имя юзера за которого проголосовали и имя юзера который проголосовал.

поля в таблице:
username - имя юзера за готорого проголосовали
votename - имя юзера который проголосовал

Предположим что за юзера№1 проголосовали 2 раза, а за юзера№2 проголосовали 3

в таблицу идёт запись:
----------------------------
|username| votename|
----------------------------
|юзер№1 | юзер№3|
|юзер№1 | юзер№4|
|юзер№1 | юзер№5|
|юзер№2 | юзер№6|
|юзер№2 | юзер№7|
---------------------------

Так вот мне бы хотелось узнать, как заставить пхп подсчитать сколько в базе юзеров№1 и сколько юзеров№2
и что бы он вывел примерно такое

юзер№1 - 2
юзер№2 - 3

Надеюсь объяснил нормально.
Я предполагаю что это легко.......но что-то оно мне в голову не лезет.
Подскажите пожайлуста!
Заранее Спасибо.
 
 
52

Серёжка

  • группа: Гости
если правильно тебя понял:

$query = "SELECT `username` FROM `table` WHERE `username`='юзер№1'";
$resource = mysql_query($query);
$count_user = mysql_num_rows($resource); // количество строк в результате запроса, будет равно количеству юзер №1

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

То есть сделай вторую таблу вида

----------------------------
|username| votes |
----------------------------
|юзер№1 |5 |
|юзер№2 | 9 |
---------------------------

где в колонке votes будет количество голосов
 
 
53

Сергей

  • группа: Гости
Игорь для начала я бы порекомендовал изменить табличку, вместо имен юзеров, использовать уникальные идентификаторы, тогда мы избавимся от привязки к имени (то есть юзеру нельзя будет менять имя, иначе его голоса и голоса за него пропадают).

PHP ничего не надо заставлять делать, воспользуйтесь функциями БД.

Вот ссылочка для MySQL mysql(точка)ru/docs/man/Functions.html

Изучайте :)
 
 
54

Игорь

  • группа: Гости
Сергей [Zloy] Малыхин, Спасибо за код, попробую.
Так же спасибо за совет на счёт таблиц. =)

Сергей Defunker Емельянов,
Я вот не давно думал сидел на счёт идентификаторов, ну сообственно изменил структуру таблицы в такой вид:

---------------------------------------------
|username|userid|votename| voteid|
---------------------------------------------

поля в таблице:
username - имя юзера за готорого проголосовали
userid - идентификатор юзера за которого проголосовали
votename - имя юзера который проголосовал
voteid - идентификатор юзера который проголосовал

думаю с такой структорой будет нормально.

За ссылочку так же Спасибо, обязательно гляну!

 
 
55

Игорь

  • группа: Гости
Сергей [Zloy] Малыхин, вот этот код

$query = "SELECT `username` FROM `table` WHERE `username`='юзер№1'";
$resource = mysql_query($query);
$count_user = mysql_num_rows($resource); // количество строк в результате запроса, будет равно количеству юзер №1

он подходящий для меня.....но вот ещё есть маленький нюанс.......если я его впихну в

do{}
while()

получится что-то умное?

или оно будет выдавать типа:

юзер№1 - 22
юзер№1 - 22
юзер№2 - 333
юзер№2 - 333
юзер№2 - 333 ???????????
 
 
56

Серёжка

  • группа: Гости
если честно - получится большая нагрузка и ничего хорошего :) я этот скрипт привел в пример, дефакто он рабочий, но он не более чем формальный ответ на твой вопрос)
попробуй все таки использовать менее ресурсо-емский вариант (например все-таки с записью количества голосовавших в отдельную колнку)
 
 
57

Игорь

  • группа: Гости
ОК.
Пойду мудрить, хе =))))
Спасибо!
 
 
58

Сергей

  • группа: Гости
Я бы сделал вот так, потому как я понимаю voteid это тоже id некого юзера за которого проголосовали.
----------------------
|username|userid|
----------------------

------------------
|userid|voteid|
------------------
 
 
59

Серёжка

  • группа: Гости
На самом деле, практически ко всем современным системам управления контентом есть множество модулей для голосования) конечно написать своими силами такое решение это отличный способ тренировки мозгов, но помоему изобретать велосипед в таких стандартных случаях не стоит...)
*вспомнил "молодость", написание своего движка.. ностальгия))*
 
 
60

Игорь

  • группа: Гости
Так вроде как разобрался, но случилась теперь фигня с добавлением в таблицу куда записывается имя юзера и общее количество голосов.

я сделал структуру таблицы как посоветовал Сергей[Zloy]
то есть вот так:
----------------------------
|user| total|
----------------------------
|юзер№1 |1 |
|юзер№2 | 2 |
---------------------------

user - имя юзера.
total - общее количество голосов.

так вот на счёт проблемы:
Например у нас есть 4 юзера за троих проголосовали по одному разу, а за 4-го 2 раза.

----------------------------
| user | total |
----------------------------
|юзер№1 | 2 |
|юзер№2 | 1 |
|юзер№3 | 1 |
|юзер№4 | 1 |
---------------------------

из базы вывод идёт просто замечательный =)))
НО!
когда кто-то ещё голосует, например, за юзера№2
то в базу пишется такое:

----------------------------
| user | total |
----------------------------
|юзер№1 | 2 |
|юзер№2 | 1 |
|юзер№3 | 1 |
|юзер№4 | 1 |
|юзер№2 | 1 |
---------------------------
...и что-то не могу врубится "ПОЧЕМУ?"
я выложу часть скрипта, если сможете помогите плиз......а то прям бьюсь головой об клаву, потому что, вроде бы легко...но......



$sql_result = mysql_query("SELECT * FROM vote_result"); // Таблица откуда идёт вывод.
$row_result = mysql_fetch_array($sql_result); // поля пихаю в массивы
$user = $_GET['for']; // имя юзера за которого проголосовали

if($row_result['user'] != $user)
{
mysql_query("INSERT INTO vote_result (id, user, total) VALUES(NULL, '$user', 1)");
}
else
{
$total = $row_result['total'] + 1; // после каждого голоса за определённого юзера, к его общим голосам прибавляется единица
mysql_query("UPDАTЕ vote_result SET total='$total' WHERE user='$user'");
}

вот такая вот штуковина.
Помогите пожайлуста....если не сложно. =\
 
 
Регистрация

Популярные статьи

» Mozilla Firefox: помощь и взаимоподдержка. Спрашиваем, ...
» Вопросы от новичков...
» перешли ли вы 100% на линукс без установленной параллел ...
» Ваши любимые плагины и дополнения
» Ответы на вопросы по PHP
» Какие CMS ВЫ предпочитаете - (плюсы и минусы)
» FAQ: вопросы и ответы
» Вопросы и консультации
» Другие браузеры (голосование!)
» Зарплата PHP программиста