Программирование на php. Общие вопросы.

(Ответов: 402, Просмотров: 31227)
Страница 21 из 41 Первая ... 11192021222331 Последняя
  1. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Top-tompak, потому что $user['name'] и $user['password'] глобальные переменные, а внутри функции локальные переменные с теми же именами и их не существует. Прям безысходность XD
    • 1

    Спасибо сказали:

    Top-tompak(07.05.2013),
  2. in search... Аватар для Top-tompak
    • Регистрация: 16.08.2012
    • Сообщений: 189
    • Репутация: 43
    brainix, как как? Не понял Можете подробней!

    ---------- Сообщение добавлено 14:00 ---------- Предыдущее 13:19 ----------

    Проверил через print_r: $_POST['name'] показывает пустое поля почему?

    ---------- Сообщение добавлено 14:01 ---------- Предыдущее 14:00 ----------

    Хотя я его передаю
    • 0
  3. Дипломник Аватар для kik11
    • Регистрация: 03.01.2013
    • Сообщений: 218
    • Репутация: 43
    Top-tompak, а $name и $password - это строки?
    Если да, попробуйте через strcmp.
    • 0
  4. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Top-tompak, не знал что global $user; передает в функцию переменную извне, пардонте. Если print_r внутри функции выводит $user, то с этой темой все норм.
    А чтобы понять почему print_r: $_POST['name'] показывает пустое поле, нужен код html в котором висит эта форма. Начиная с тега <form>.
    • 1

    Спасибо сказали:

    Top-tompak(08.05.2013),
  5. Дипломник Аватар для Unick
    • Регистрация: 12.02.2013
    • Сообщений: 142
    • Репутация: 45
    Top-tompak,
    Маленький отрывок кода конечно
    в общем введите перед global
    Код:
    echo "Массив: <pre>";
    print_r($_POST);
    echo "</pre>";
    Если массив содержит переменные, то... ошиблись в самих переменных массива... Может быть у вас какой-нибудь $_POST['form_name'] или чет в этом духе.
    Если массив пустой, это значит что никакого POST вы не передаете, может быть GET? А может быть не там вызываете функцию, потеряли post из-за какой-нибудь переадресации...

    Вы через ajax, или на прямую передаете POST?

    Цитата Сообщение от kik11 Посмотреть сообщение
    Top-tompak, а $name и $password - это строки? Если да, попробуйте через strcmp.
    и что это даст?
    редактировать подпись
    • 1

    Спасибо сказали:

    Top-tompak(08.05.2013),
  6. in search... Аватар для Top-tompak
    • Регистрация: 16.08.2012
    • Сообщений: 189
    • Репутация: 43
    Оказывается я изменил form на get и обратно поставить забыл. Сейчас заново есть $_POST['name']. То что прикол if не работает.
    PHP код:
    if($name == $user['name'] and $password == $user['password']) 
    От кодировки зависит? ==

    ---------- Сообщение добавлено 06:00 ---------- Предыдущее 05:58 ----------

    Цитата Сообщение от brainix Посмотреть сообщение
    нужен код html в котором висит эта форма. Начиная с тега <form>
    Код HTML:
    <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="tompak" /> <meta name="robots" content="noindex, nofollow" /> <title>Login Admin</title> </head> <body> <form action="/admin/login" method="post"> <input name="name" type="text"  size="80" /> Логин<br /> <input name="password" type="password"  size="80" /> Пароль<br /> <input name="captcha" type="text" /> Код на картинке<br /> <img src="/admin/images/captcha" /><br /> <input name="submit" type="submit" /> </form> </body> </html>


    ---------- Сообщение добавлено 06:01 ---------- Предыдущее 06:00 ----------

    сам /admin/login:

    /admin/login

    PHP код:
    function loginAction() { 
        global 
    $mysqli
        global 
    $user
         
        
    $success 'Ошибка! Вы не авторизованы.'
        
    $name $_POST['name']; 
        
    $password $_POST['password']; 
         
        if(
    $name == $user['name'] and $password == $user['password']) { 
            
    $hash generateString(25); 
            
    $_SESSION['hash'] = $hash
            
    $query "UPDATE `table`.`users` SET `hash` = '{$hash}' WHERE `users`.`id` = 1"
            
    $result mysqli_query($mysqli$query); 
            if(
    $result) { 
            
    $success 'Успешно! Вы авторизованы.'
                } 
            
    mysqli_free_result($result); 
        } 
    echo 

    <script language = 'javascript'> 
    var delay = 5000; 
    setTimeout(\"document.location.href='/"
    delay); 
    </script>p>{$success} Через 5 секунд Вы будете перенаправлены...</p> 
    "; 

    [свернуть]


    ---------- Сообщение добавлено 06:08 ---------- Предыдущее 06:01 ----------

    Всем спасибо! Все решил оказывается == от кодировки все зависит

    ---------- Сообщение добавлено 06:13 ---------- Предыдущее 06:08 ----------

    И еще вопрос. Хэш куда хранить? В базе или в файле?
    • 0
  7. Дипломник Аватар для kik11
    • Регистрация: 03.01.2013
    • Сообщений: 218
    • Репутация: 43
    Цитата Сообщение от Unick Посмотреть сообщение
    и что это даст?
    Всё-таки, строки нужно сравнивать через операции, которые для этого созданы.
    А результат простого == непредсказуем.
    У меня с ним проблемы были.
    Поэтому пользуюсь strcmp
    • 1

    Спасибо сказали:

    Top-tompak(08.05.2013),
  8. in search... Аватар для Top-tompak
    • Регистрация: 16.08.2012
    • Сообщений: 189
    • Репутация: 43
    kik11, Можете показать пример?
    • 0
  9. Дипломник Аватар для kik11
    • Регистрация: 03.01.2013
    • Сообщений: 218
    • Репутация: 43
    Top-tompak, вместо
    PHP код:
    $str1 == $str2 
    используйте
    PHP код:
    strcmp($str1,$str2) == 
    А вообще, вот: _http://www.php.su/functions/?strcmp
    • 0
  10. Дипломник Аватар для Unick
    • Регистрация: 12.02.2013
    • Сообщений: 142
    • Репутация: 45
    Цитата Сообщение от kik11 Посмотреть сообщение
    Всё-таки, строки нужно сравнивать через операции, которые для этого созданы. А результат простого == непредсказуем. У меня с ним проблемы были. Поэтому пользуюсь strcmp
    Если строки полностью идентичны, то == даст true, если нет, то false. Очень даже предсказуемо. Не знаю где там могут быть проблемы.
    Когда спросил я, зачем это, то имел в виду: если POST отдает пустое значение, зачем сравнивать другим способом?
    Хотя сути не меняет. Strcmp использовать для идентичности имхо глупо. Т.к. == нам даст boolean значение, нынче strcmp() отдает integer.

    Цитата Сообщение от Top-tompak Посмотреть сообщение
    И еще вопрос. Хэш куда хранить? В базе или в файле?
    А вы с базой работаете? Логин то где храните? :)
    Я вот все в базе храню, зачем лишний геморрой) Для чего еще же базу придумали?
    редактировать подпись
    • 2

    Спасибо сказали:

    OKyJIucT(08.05.2013), Top-tompak(13.05.2013),
Страница 21 из 41 Первая ... 11192021222331 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Веб программирование на Php, MySQL, Ajax. Программирование на C#
Создание сайтов 3 31.05.2011 02:53
Веб программирование на Php, MySQL, Ajax. Программирование на C#
Реклама партнерских программ 3 31.05.2011 02:53
Качественное программирование на заказ
Создание сайтов 2 13.09.2010 17:02
Веб-программирование [php, Xhtml, Css, Javascript]
Другая работа 0 28.02.2010 23:10

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры