Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 06:16:02

Страниц: [1] 2
Печать
Автор Тема: header vs function()  (Прочитано 408 раз)
0 Пользователей и 1 Гость смотрят эту тему.
h.    ↓ 
08 Ноябрь, 2011, 10:19:54
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 4
Сила слова: 0

Всем доброго дня,
Нуждаюсь в помощи знающих людей, т.к только начал осваивать это нелегкое ремесло.
 
Есть функция авторизации. Решил её реализовать того чтобы не повторять код, т.к по моей задумке авторизация будет происходить для двух "типов" пользователей, ведущая на разные страницы.
 
index.php
PHP

<?php
require_once('include/config.php');
require_once('include/functions.php');
if($_POST['enter']){
//echo
$status= authorization($_POST['login'], $_POST['password'], 'dealer');
header('$status[0]');
echo $status[1];
}
?>

functions.php
PHP

mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD) or die("Не могу создать соединение"); //Устанавливаем соединение
mysql_select_db(DB_NAME) or die(mysql_error()); //Выбираем базу данных
 
function authorization($login, $password, $type){
 
if (empty($login) AND empty($password)){
    $status[1] = "<center><p class='error'>Пожалуйста, введите свой логин и пароль.</p></center>";
}else{
switch ($type){
        case 'dealer':   
        $query = "SELECT * FROM dealers WHERE login = '$login' AND password = '$password'";
        $logged = "logged_dealer";
        $status[0]"Location: /dealers";
        break;
        case 'user':
        $query = "SELECT * FROM users WHERE login = '$login' AND password = '$password'";
        $logged = "logged_user";
        $status[0]"Location: /gms";
        break;
}
$result = mysql_query($query) or die(mysql_error());
$rows = mysql_num_rows($result);
 
if($rows == 1){
           $_SESSION['$logged'] = $login;
}else{
$status[1] = "<center><p class='error' style='color: white'>Вы ввели не правельный логин или пароль! Пожалуйста, попробуйте снова.</p></center>";
}
}   
mysql_close(); //Закрываем соединение
return $status;
}

session.php
PHP

<?php
session_start();
    if(!isset($_SESSION['logged_dealer'])){
    header("Location: /dealers.php");
    exit;
}   
if (isset($_GET['action']) AND $_GET['action']=="logout") {
    session_start();
    session_destroy();
    header("Location: /dealers.php");
    exit;
}
?>

Если это важно, то форма находиться на странице index.php и передача в массив $_POST идет с неё.
 
Проблема в том, что функция работает, а header никак не хочет работать. Интерпретатор никаких ошибок не выдает.
Никак не могу понять где капать...
Буду рад, если сможете помочь.
Записан

Thanks for your help.Yours captain obviousness.
NRG    ↓ 
08 Ноябрь, 2011, 11:08:14 , спустя 48 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: Санитары

Карма: 777
Сообщений: 4700
Сила слова: 16.81

h., почитай http://pyha.ru/forum/topic/109.0
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
artoodetoo    ↓ 
09 Ноябрь, 2011, 10:51:11 , спустя 11 часов 42 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

ниасилил весь код. вижу только бардак. например повторный session_start() и операцию "and" там, где нормальные люди пишут "&&".
в данном случае оно некритично, но доверия такой код не вызывает.
 
серьезный косяк это видимо $_SESSION['logged_dealer'] - где, блеать, он устанавливается? в приведенном коде он только проверяется. естественно результат всегда одинаковый. поиск выявил такую, прямо скажем, неведомую хуйню:
$_SESSION['$logged']
это что такое? h.! это не работает. убери кавычки, может быть заработает.
 
сцука, вставляй die(var_export($_SESSION, true)) после то там то сям, чтобы знать что происходит вообще!
Записан
master    ↓ 
09 Ноябрь, 2011, 11:17:48 , спустя 26 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

тс полюбас взял пример в книжке и теперь страдает
Записан

Givi    ↓ 
09 Ноябрь, 2011, 11:26:18 , спустя 8 минут 30 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

artoodetoo, а отчего "AND" вместо "&&" плохо? Вроде как стандартах зенда прописано использование именно "AND". А типа его стандарты как бы эталон к каком-то роде.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
artoodetoo    ↓ 
09 Ноябрь, 2011, 02:52:11 , спустя 3 часа 25 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

kohana это рекомендует, про zend сейчас выясню...
 
плохо тем, что в комбинации с "=" дает не тот результат, что обычно думают. а так нормально. даже говно это неплохо, если правильно используется.
Записан
Givi    ↓ 
09 Ноябрь, 2011, 03:36:16 , спустя 44 минуты 5 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

artoodetoo, честно сказать, именно с Коханы это и взял. Но не один раз читал что по сути кохана стандарты "скомуниздила" с зенда, потому считал что и зенд говорит то же самое. Виноват, что не проверил инфу.
А вот насчет разницы, то случаем в двух словах не сможешь объяснить (пояснить что не так при использовании "=") либо ткнуть где написано по-русски (не шпрехаю инглиш)? А то я такой информации не встречал, но часто вижу использование именно двойных амперсанд вместо "ЭНД", что для меня было как бы "не правильно".
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Givi    ↓ 
09 Ноябрь, 2011, 03:41:38 , спустя 5 минут 22 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

artoodetoo, посмотрел, таки да, у Зенда нет указаний на этот счет, но в коде-примере используется двойной ампеерсанд :(
Хм.... блин, уже хуй просцышь кто же прав кто виноват. Все равно мне в коде удобнее с AND и OR. Наверное привычка.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Sinkler    ↓ 
09 Ноябрь, 2011, 03:52:32 , спустя 10 минут 54 секунды
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6808
Сила слова: 1.07

у меня, наоборот, с амперсандами привычка уже. видимо, из-за тех языков, где нет эндов и оров
Записан

phpdude    ↓ 
09 Ноябрь, 2011, 04:11:45 , спустя 19 минут 13 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

видимо, из-за тех языков, где нет эндов и оров
от здравого смысла видимо :)
Спустя 27 секунд добавил
вся эта VISUAL BASIC-WAY хуйня до добра не доведет, попомните мои слова еще :-)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Status    ↓ 
09 Ноябрь, 2011, 05:02:30 , спустя 50 минут 45 секунд
НЕ ХУЕТА! ХУЕТА!

Редкостная сволочь
Группа: Джедаи

Карма: 57
Сообщений: 1447
Сила слова: 3.94

попомните мои слова еще :-)
Архимандрит Дудий на пiха.ру
Записан

Заткнись говно, я воевал!
artoodetoo    ↓ 
10 Ноябрь, 2011, 08:54:51 , спустя 15 часов 52 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

это дело вкуса и стиля. если ваш корпоративный стандарт говорит "ставь AND детка", значит так тому и быть.
подвох тут в приоритете операций:
PHP

<?php
$a = TRUE and FALSE; // TRUE
$b = TRUE && FALSE// FALSE
 
если об этом помнить или если всегда скобками пользоваться, то все ок. для топикстартера это слишком сложно, imho.
 
в большинстве чужих сорцов я вижу исключительно "&&" и "||",  исключение только для операций вида
PHP

<?php
a = wallet() or die();
 
Записан
Givi    ↓ 
10 Ноябрь, 2011, 11:29:54 , спустя 2 часа 35 минут 3 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

artoodetoo, теперь понял, спасибо за втолкование :)
По сути скобками таки и пользуюсь всегда, считая это не только "потому что по другому работать не будет", но и более логичным видом записи.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
h.    ↓ 
11 Ноябрь, 2011, 01:08:37 , спустя 1 день 1 час 38 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 4
Сила слова: 0

тс полюбас взял пример в книжке и теперь страдает
эта функция мой собственный высер (:
 
artoodetoo, спс, за дубль session_start() и die(var_export($_SESSION, true))
 
"AND" вместо "&&" - тупо еще не определился, и для себя не выбрал как лучше.
 
Ну теперь благодаря твоему сабжу, более менее понятно, что нужно придерживается  "&&" и "||".
Записан

Thanks for your help.Yours captain obviousness.
phpdude    ↓ 
11 Ноябрь, 2011, 01:10:35 , спустя 1 минуту 58 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

Ну теперь благодаря твоему сабжу, более менее понятно, что нужно придерживается  "&&" и "||".
all right
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd