Множество если, это нормально? - PullRequest
3 голосов
/ 15 декабря 2010

У меня есть форма для входа, и я разработал свой веб-сайт таким образом, чтобы у каждого пользователя была своя собственная панель управления.

После входа в систему я проверяю

if($_POST['username']=="ryan")
{
redirect to ryan;s dashboard
}
if($_POST['username']=="jpn")
{
redirect to jpn;s dashboard
}

и т. Д. Для 1500 пользователей. Это нормально?

Ответы [ 6 ]

4 голосов
/ 15 декабря 2010

Поместите имена и адреса панели инструментов в базу данных. Сделайте один запрос, чтобы найти URL на основе опубликованного имени и перенаправления. У вас будет 4 строки кода вместо 6000.

1 голос
/ 15 декабря 2010

Во-первых, вместо того, чтобы делать несколько операторов if таким образом, я бы рекомендовал использовать оператор switch следующим образом:

switch($_POST['username'])
{
   case "ryan" : //redirect to ryan;s dashboard
   case "jpn" : //redirect to jpn;s dashboard
}

Во-вторых, Я бы не сталНе рекомендуется делать это для перенаправления на чью-то панель.У вас должна быть общая панель инструментов и таблица с именами пользователей и деталями панели.Затем вызовите единственную функцию с именем пользователя.

1 голос
/ 15 декабря 2010

Думаю, это проблема в вашем дизайне ... таких вещей не должно быть:)

Вы должны использовать сценарий, который выбирает панель пользователя и отправляет только идентификатор пользователя этому сценарию!

1 голос
/ 15 декабря 2010

Нет. Если вам действительно нужно выбрать между 1500 различными подпрограммами, вы должны использовать что-то вроде стратегии .

Однако в вашем случае это просто та же самая процедура (загрузка панели пользователя) с другими данными. Процедуры должны быть одинаковыми. Почему вам нужен другой код для загрузки панели пользователя каждого пользователя?

0 голосов
/ 15 декабря 2010

Что вы можете сделать, это сохранить имя пользователя в переменной сеанса и загрузить панель пользователя на основе переменной сеанса.Предполагая, что вы тоже запрашиваете пароль, вы должны сохранить как имя пользователя, так и пароль.Убедитесь, что они верны, и загрузите панель мониторинга для этого конкретного пользователя.

Если они перенаправлены, например, на www.your-domain.com/jpn.html, это небезопасно, так как: а) она может быть проиндексированапоисковыми системами и появляются в результатах поиска, и б) что более важно, все пользователи могут получить доступ к инструментальным панелям друг друга, просто набрав URL пользователя.

0 голосов
/ 15 декабря 2010

Вы должны перенаправить на 1 панель.затем используйте эти значения в панели инструментов

login php ....
if($_POST['username'])
{
redirect to dashboard
}


dahsboard php 

welcome <?=$_POST['username']?>,
...
..
user spesific things..

, если вы попробуете свой код для 1000 пользователей, вы устали ..

...