[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Зачем тебе парсить информацию, которую можно сделать самому?
    Тебе итак известен ID видео. Что тебе еще надо?
    Размеры?
    PHP:
    Cl["default"]="560 340";Cl.medium="640 385";Cl.large="853 505";Cl.hd720="1280 745";
     
    1 person likes this.
  2. k1113r

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

    Joined:
    20 Dec 2007
    Messages:
    23
    Likes Received:
    27
    Reputations:
    0
    Одна проблема исчезла, но появилась другая. У некоторых видео закрыт доступ к постингу "Запрошенное видео недоступно". Необходимость в нажатии кнопки остается.
     
    #17502 k1113r, 26 Jan 2011
    Last edited: 26 Jan 2011
  3. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    ошибка
    Parse error: syntax error, unexpected '{' in /usr/home/mai1-ru/htdocs/vhod/actionvhodreg.php on line 28

    никак не пойму какая скобка его не устраивает
    Code:
    <?
     session_start(); 
    include ("dbconnect.php");
    $modd = $mod;
    $e = $user_login;
    $er =$user_pass;
    
    if($modd == "vhod")
    {
    $query = "SELECT `id`
                FROM `user`
                WHERE `user_login`='$e' AND `user_pass`='$er'
                LIMIT 1";
        $sql = mysql_query($query);
    if (mysql_num_rows($sql) == 1)
     {
    $row = mysql_fetch_assoc($sql);
            $_SESSION['id'] = $row['id'];
    header("Location: forum.php");   
    }
     else
     {
      die('Такой логин с паролем не найдены в базе данных.');
       }
    
    }
    else($modd == "reg")
    {
    
     $sql="INSERT INTO user(user_login,  user_pass) VALUES ('$e',  '$er')";  
               $r=mysql_query ($sql);  
         header("Location: in.php");   
    }
    
    ?> 
    
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz в 28 строке вестимо. Следует писать "else if" а не "else". Очевидно почему, или нет?
     
    _________________________
    1 person likes this.
  5. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    мб
    elseif($modd == "reg") ?
     
    1 person likes this.
  6. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    как проверить наличия логина в БД при регистрации??
     
  7. Andres

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

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    isset отменили?
     
  8. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    так isset вродеж определяет наличие переменной, как его применить к БД? :confused:
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz сделать запрос с интересующим логином и проверить количество вернувшихся строк с помощью http://php.net/mysql_num_rows
     
    _________________________
  10. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    почему непроверяет наличия логина? соровно регестрирует с одинаковыми

    Code:
    <?
     session_start(); 
    include ("dbconnect.php");
    $modd = $mod;
    $e = $user_login;
    $er =$user_pass;
    
    if($modd == "vhod")
    {
    $query = "SELECT `id`
                FROM `user`
                WHERE `user_login`='$e' AND `user_pass`='$er'
                LIMIT 1";
        $sql = mysql_query($query);
    if (mysql_num_rows($sql) == 1)
     {
    $row = mysql_fetch_assoc($sql);
            $_SESSION['id'] = $row['id'];
    header("Location: forum.php");   
    }
     else
     {
      die('Такой логин с паролем не найдены в базе данных.');
       }
    
    }
    elseif($modd == "reg")
    {
    $result="select * from `user` where  `user_login`='$e' ";
     $sql = mysql_query($query);
    if (mysql_num_rows($sql) == 1)
    {
    echo "етот логин уже занят";
    }
    else
    {
    
     $sql="INSERT INTO user(user_login,  user_pass) VALUES ('$e',  '$er')";  
               $r=mysql_query ($sql);  
         header("Location: in.php");   
    }
    }
    
    ?> 
    
     
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz Наверное потому что их больше чем 1?
     
    _________________________
  12. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    где ьольше? в БД?
    да нет в БД только 1
     
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Потому что
    PHP:
    $result="select * from `user` where  `user_login`='$e' ";
     
    $sql mysql_query($query);
    if (
    mysql_num_rows($sql) == 1)
    {
    echo 
    "етот логин уже занят";
    }
    else
    Поменяй в переменной $sql - $query на $result ибо ты делаешь самый первый запрос

    PHP:
    $result="select * from `user` where  `user_login`='$e' ";
     
    $sql mysql_query($result);
    if (
    mysql_num_rows($sql))
    {
    echo 
    "Этот логин уже занят";
    }
    else
    Невнимательность это очень страшно!
     
    3 people like this.
  14. Фараон

    Фараон коКотэ Of Antichat

    Joined:
    7 Nov 2010
    Messages:
    153
    Likes Received:
    105
    Reputations:
    83
    qaz, ну так ето, инъекция в твоем коде по ходу =)
     
    1 person likes this.
  15. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    я знаю :) так лутше? или ещо гдето уязвимость?

    Code:
    <?
     session_start(); 
    include ("dbconnect.php");
    $modd = $mod;
    $e = mysql_real_escape_string($user_login);
    $er =mysql_real_escape_string($user_pass);
    
    if($modd == "vhod")
    {
    $query = "SELECT `id`
                FROM `user`
                WHERE `user_login`='$e' AND `user_pass`='$er'
                LIMIT 1";
        $sql = mysql_query($query);
    if (mysql_num_rows($sql) == 1)
     {
    $row = mysql_fetch_assoc($sql);
            $_SESSION['id'] = $row['id'];
    header("Location: in.php");   
    }
     else
     {
      die('Такой логин с паролем не найдены в базе данных.');
       }
    
    }
    elseif($modd == "reg")
    {
    $result="select * from `user` where  `user_login`='$e' ";
     $sql = mysql_query($result);
    if (mysql_num_rows($sql) == 1)
    {
    echo "етот логин уже занят";
    }
    else
    {
    
     $sql="INSERT INTO user(user_login,  user_pass) VALUES ('$e',  '$er')";  
               $r=mysql_query ($sql);  
         header("Location: in.php");   
    }
    }
    
    ?> 
    
     
  16. Фараон

    Фараон коКотэ Of Antichat

    Joined:
    7 Nov 2010
    Messages:
    153
    Likes Received:
    105
    Reputations:
    83
    Ну ето получше.
     
  17. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Делаю запрос LIKE.
    В пхпмуАдмин возвращает 2 строки, а в пхп только первую.
    Нужно вывести все возвращаемые строки, как быть?
     
  18. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    $query mysql_query("SELECT ...");
    if (
    mysql_num_rows($query))
    {
        while(
    $row mysql_fetch_array($query))
        {
            echo 
    $row['id'];
        }
    }
     
    1 person likes this.
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    .::f-duck::. скорее всего вы не правильно работаете с получаемым результатом. Функции вида mysql_fetch_* в качестве результата возвращают массив содержащий элементы "строки" и передвигают указатель на следующую "строку".

    Проще говоря - попробуйте сделать два раза вывод строки

    Если вы все это знали, то покажите код
     
    _________________________
    2 people like this.
  20. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Isis, Gifts, благодарю.
    Действительно, я возвращаемые строки просто фетчил в ассоц. массив.
     
Thread Status:
Not open for further replies.