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

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

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

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Помогите плиз...я пишу скрипт для покупки в интернет магазине и после выбора товара мне нужно сделать подтверждение товара....

    проблема в том что странице подтверждения товара приходят переменные со знацениями 1 или 0
    1 значит пользователь выбрал этот товар, имя переменной сам товар.

    Проблема в том что имя товара $buyitem1-999
    А в БД просто id со значениями 1-999
    Мне нужно както достать это ИД из имени товара и сделать запрос в БД...чтоб достать картинку,цену и описание товара.
     
  2. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Делаешь запрос

    PHP:
    mysql_query("SELECT * FROM имя таблицы WHERE id='$buyitem' ");
     
  3. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Так и знал что неправильно поймёте...
    Есть страница выбора товара...у товара скрытое поле с именем Buyitem1, Buyitem2, Buyitem3....
    после выбора товара следуйщий этап "подтвечждение" ему переходят поля Buyitem1-999 со значением 1 (1 что значит товар выбран покупателем)
    А в БД товары с ID 1-999, дак нужно из допустим переменной $buyitem32=1 достать вот эти цифры 32 которые и есть ID товара.



    Проще говоря, нужно заставить PHP прочитать конец имени переменной Buyitem1-999
     
    #7483 Byrger, 13 Jan 2009
    Last edited: 13 Jan 2009
  4. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    по циклу проверяй

    Code:
    for ($i = 1; $i < 999; $i++)
      if (isset($_POST['Byitem'.$i]))
    Хотя, странная реализация
     
  5. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    тогда примерно так:

    PHP:
    $id=pregmatch("выдираешь числовое значение из пременой $buyitem32");
    mysql_query("SELECT * FROM имя таблицы WHERE id='$id' ");
    и вобще сделай новую переименую к примеру $a у которой будет значение 0-1 а в переименую $buyitem32
    присваиваи конец 32 а потом запрос как я показал!!
     
    #7485 geforce, 13 Jan 2009
    Last edited: 13 Jan 2009
  6. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Опять не то что-то вот смотрите на сайте _https://billing.adenazone.ru/pricelist.php?step=2&server=14
    Выбираешь товар и после нажатия продолжить улетают это Buyitem...
    Напишите простой сниффер и в форме замените чтоб посмотреть что выдают эта страница
    повторюсь: Проще говоря, нужно заставить PHP прочитать конец имени переменной Buyitem1-999
    Эти самые 1-999...это и есть id а значение переменной мне не важно
     
  7. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    после кода подтверждения на след страницы когда ты передал значение Buyitem=0-1 использовал его создай отдельную переменую которая будет иметь значения 32 и присвой его Buyitem32! если спросишь как узнать именно этот товар или нет присвой каждому товару переменую от 1-999 или масив
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Byrger Передавать массив - не модно что ли?

    PHP:
    <pre><form method="post">
    <INPUT TYPE=checkbox NAME="buyitem[]" VALUE="1"> Раз
    <INPUT TYPE=checkbox NAME="buyitem[]" VALUE="2"> Два
    <INPUT TYPE=checkbox NAME="buyitem[]" VALUE="3"> Три
    <INPUT TYPE=checkbox NAME="buyitem[]" VALUE="4"> Четыре
    <INPUT TYPE=checkbox NAME="buyitem[]" VALUE="5"> Пять
    <INPUT TYPE=submit VALUE="Отправить">
    </form>

    <?php

    print_r
    ($_POST['buyitem']);

    ?>
     
    _________________________
  9. w.u.n.

    w.u.n. Member

    Joined:
    13 Dec 2008
    Messages:
    40
    Likes Received:
    26
    Reputations:
    1
    PHP:
    foreach($_POST as $a=>$b) {
        if(
    strpos($a,'buyitem')!==false) echo substr($a,7)."\n";
    }
     
  10. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5

    у него же товар как то выводится из базы по идеи в он должен выводится из базы в цикле создать там переменую к примеру $j и сделать ее $j++ вот и переменая с id! А потом передовать её скрытой форме туда где нужно вывести товар:

    PHP:
    mysql_query("SELECT * FROM имя таблицы WHERE id='$j' ");
     
  11. w.u.n.

    w.u.n. Member

    Joined:
    13 Dec 2008
    Messages:
    40
    Likes Received:
    26
    Reputations:
    1
    geforce, ты за**ал фигню левую писать
     
  12. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Вот зловредная функция в JS из-за которой я не погу сделать переменную Buyitem32 просто в 32

    почемуто если hidden передать числовое то "+" ставится не будет...передаю 32 не работает...передаю i32 работает
     
  13. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    туфту ты пишеш понял! Обаснуй хотябы одну вещь которая с точки зрения сайто строения не верна!!!???

    вот тебе пример моей мысли:
    PHP:
    <?php
    include ("blocks/connect.php");

    $result mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);

    $myrow mysql_fetch_array ($result); 

    do { 

    $j=1// то что я говорил
            
    printf ("<table align='center' class='lesson'>
             
             <tr>
             <td class='lesson_title'>
             <p class='lesson_name'><a href='view_lessons.php?id=%s'>%s</a></p>
             <p class='lesson_adds'>Дата добавления: %s</p>
             <p class='lesson_adds'>Автор урока: %s</p></td>
             </tr>
             
             <tr>
             <td>%s</td>
             </tr>
             
             </table><br><br>"
    $myrow["id"], $myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]); 
        
    $j++; // каждая новость имеет свою j=1-999                
    }

    while (
    $myrow mysql_fetch_array ($result));    
    ?>      
     
    #7493 geforce, 13 Jan 2009
    Last edited: 13 Jan 2009
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Byrger Ммм, зачем срать там где живешь? (я про столько полей)

    PHP:
    <body onload="document.getElementById('b5').disabled=false;">
    <pre><form method="post">
    <INPUT TYPE=hidden disabled NAME="buyitem[]" VALUE="1" id="b1">
    <INPUT TYPE=hidden disabled NAME="buyitem[]" VALUE="2" id="b2">
    <INPUT TYPE=hidden disabled NAME="buyitem[]" VALUE="3" id="b3">
    <INPUT TYPE=hidden disabled NAME="buyitem[]" VALUE="4" id="b4">
    <INPUT TYPE=hidden disabled NAME="buyitem[]" VALUE="5" id="b5">
    <INPUT TYPE=submit VALUE="Отправить">
    </form>

    <?php

    print_r
    ($_POST['buyitem']);

    ?>
    Соответственно играясь document.getElementById('b5').disabled=true; - можно отправлять только нужные данные массивом. Да, кстати - не забывай проверять все входные данные на скуль. И отключать вывод ошибок во время штатной работы

    geforce Молодчинка, ты умеешь выводить из базы мускуля все записи. Вот только - не в кассу это немного
     
    _________________________
    #7494 Gifts, 13 Jan 2009
    Last edited: 13 Jan 2009
  15. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    PHP:
    echo "
    <html>
    <head>
    <title>Доменная авторизвация</title>
    <meta http-equiv=Content-Type content=text/html; charset=windows-1251>
    </head>
    <body text='000000' bgcolor='#ffffff' topmargin='0' leftmargin='0' rightmargin='0'>

    <table width=100% border=0><tr><td align=left>
    <form action='domen.php' method='post' name='poisk' id='poisk'>

    <font class=text_>Логин: &nbsp </font><input type='text' name='user' size='20'><br>
    <font class=text_>Пароль: </font><input type='password' name='pass' size='20'><br>
    <input type='submit' name='send' value='Отправить'>

    </td><td width=25%>&nbsp</td></tr></table>"
    ;

     

    function 
    GetADAuth($username$password){
    $AD_SERVER '172.20.2.2';
    $ad ldap_connect('ldap://'.$AD_SERVER)
    or die(
    "Couldn't connect to AD!");
    ldap_set_option($adLDAP_OPT_PROTOCOL_VERSION3);
    ldap_set_option($adLDAP_OPT_REFERRALS0);
    return(
    ldap_bind($ad$username.'@smart'$password));
    }

    $test GetADAuth($user$pass);
    echo 
    "<br><br>";
    if ((
    $test =="1") and ($user!="")) echo "Вы авторизованы!!!";
    if ((
    $test !="1") and ($user!="")) echo "Неправильное имя пользователя или пароль!!!";
    Есть такой скриптик авторизации через ActiveDirectory
    пытаюсь авторизоваться пишет
    Unable to bind to server: Invalid credentials
    Пытаюсь просто подцепиться без авторизации только коннект то все ок... в чем может быть проблема?
     
    1 person likes this.
  16. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Gifts Вобщет я обьяснял что я имел в виду w.u.n.

    Byrger а JS ты ошибся темой! тебе нада сюда http://forum.antichat.ru/thread41870.html
     
  17. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    парни, вот кто выучил пхп, вы же не весь язык учили, прц 20???
     
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Что ты вкладываешь в понятие выучить?
     
    _________________________
  19. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    тоесть знать, написать скрипт без шаблонов и и т п
    я это к тому что я хочу узнать можно ли решить процентов 80-85 своих проблем связанных с пхп зная язык на 20 прц
     
  20. chlp

    chlp New Member

    Joined:
    7 Dec 2008
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    А как определить , что знаешь язык на 20%??
     
Thread Status:
Not open for further replies.