Нужен маленький совет по php

Discussion in 'PHP' started by Fantom3D, 17 Oct 2009.

  1. Fantom3D

    Fantom3D New Member

    Joined:
    23 Aug 2009
    Messages:
    71
    Likes Received:
    2
    Reputations:
    -1
    Я новичек, потому не смейтесь :) Я пишу форму авторизации, вот что есть:

    PHP:
    <?php

    require_once("../config.php");
    connect ($dbhost$dbuser$dbpass$database);
        
            
    $result mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."' LIMIT 1") or die (mysql_error());
        if (
    mysql_num_rows($result) == 0){
                echo
    "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=loginfailed.html\">";
            exit();
        }
        else{
        
    session_start();
        
    $_SESSION['adminUser'] = $admin_user;
        
    $_SESSION['adminPassword'] = $admin_pass;
        
    $SID session_id();
        echo
    "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\">";
        }

    ?>
    В одном файле вводится логин и пароль, данные скидываются в этот файл, тут проверяется через базу логин и пароль, если все верно - дается кук.

    ВОПРОС: Как сделать, чтобы в той же самой строке в базе, в которой проверяется логин и пароль также проверялось поле "administrator" на то, какя цифра в нем, 1 или ноль, и если 1 то давался кук, тоесть то что и сейчас, только еще один фактор проверяется. :)

    [​IMG]

    Помогите, люди)
     
  2. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    mysql_fetch_array
     
  3. Fantom3D

    Fantom3D New Member

    Joined:
    23 Aug 2009
    Messages:
    71
    Likes Received:
    2
    Reputations:
    -1
    gisTy
    А не будете добры показать мой измененный фалик плиз...
     
  4. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    PHP:
    <?php

    require_once("../config.php");
    connect ($dbhost$dbuser$dbpass$database);
        
            
    $result mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."' LIMIT 1") or die (mysql_error());
    $row mysql_fetch_array($resultMYSQL_ASSOC);
    echo 
    $row['adminitrator'];
    ?>
    выведет тебе значение колонки administrator.
    дальше сам додумаешь
    P.S. такие запросы:
    PHP:
    $result mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."' LIMIT 1") or die (mysql_error());
    не безопасны, фильтруй входящие данные
     
    #4 gisTy, 17 Oct 2009
    Last edited: 17 Oct 2009
  5. Fantom3D

    Fantom3D New Member

    Joined:
    23 Aug 2009
    Messages:
    71
    Likes Received:
    2
    Reputations:
    -1
    gisTy
    Почему небезопасны? И как фильтровать? =)
     
  6. Tem

    Tem -

    Joined:
    5 Oct 2005
    Messages:
    557
    Likes Received:
    157
    Reputations:
    179
    Fantom3D

     
    1 person likes this.
  7. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    для числовых данных используй intval(); //если его type скажем string оно приводится к 0
     
  8. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    так же (int) можно