Обработка Get

Тема в разделе "PHP", создана пользователем AndreyD2, 15 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    195
    Симпатии:
    67
    В чем может быть ошибка?

    Есть обработчик POST
    PHP:
    $params=array('USER','PASS','TARGET','TEXT','SENDER');
    $point=', ';
    $err=count($params);
    foreach(
    $params as $val)
     {

      if (
    array_key_exists($val,$_POST))
         {
            if (!empty(
    $_POST[$val]))
                {
                    
    $err--;
                    if(
    $err==0$point='';
                    if((
    $val=='TEXT') or ($val=='SENDER') or ($val=='TARGET'))
                             {
    $quot="'"; }
                    else
                             {
    $quot="";}

                 
    $query=$query.$quot.$_POST[$val].$quot.$point;
            if(
    $val=='USER') {$user $_POST[$val];}
            if(
    $val=='PASS') {$pass $_POST[$val];}
            if(
    $val=='TARGET') {$target $_POST[$val];}        
            if(
    $val=='TEXT') {$text $_POST[$val];}            
            if(
    $val=='SENDER') {$sender $_POST[$val];}            
                }
         }
      }

    На основании его сделал обработку GET с двумя параметрами:

    PHP:
    $query=''// начало запроса;
    // расположить в порядке как В БД
    $params=array('USER','PASS');
    $point=', ';
    $err=count($params);
    foreach(
    $params as $val)
     {

      if (
    array_key_exists($val,$_GET))
         {
            if (!empty(
    $_GET[$val]))
                {
                 if(
    $val=='USER') {$user $_GET[$val];}
                 if(
    $val=='PASS') {$pass $_GET[$val];}
                }
         }
      }
    $aut0 "SELECT count(*) as kol FROM sms_user where ID = '$user' and pass='$pass'"
    $result0 mysql_query($aut0);
    $kol mysql_result($result0$x1'kol');
    $sum==0;
    If (
    $kol>0)
    {
    $aut "SELECT money FROM sms_user where ID = '$user' and pass='$pass'"
    $result2 mysql_query($aut);
    $sum mysql_result($result2$x1'money');
    }

    Не работает код , так как параметры не обрабатываются
    Если можно помогите исправить этот код, а не приводить новый, так как в этом разобрался уже. А в php не очень силен.
     
  2. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Вот в этом месте:
    Проверь что у тебя передаётся в переменно $val:
    Возможно, просто $val никогда не равна USER или PASS, плюс ко всему вот это == - регистрозависимое стравнение
     
    AndreyD2 нравится это.
  3. bunny

    bunny Постоялец

    Регистр.:
    17 мар 2007
    Сообщения:
    66
    Симпатии:
    4
    Мб глупость сморозю мб нет а точно ли ты передаешь параметры в форме методо Get
    HTML:
    
    <form action="" method="Get">
    ...
    </form>
    
     
  4. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    195
    Симпатии:
    67
    Get делается из программы, вот код:

    Код:
      HTTP := TIdHttp.Create(Self);
      url := 'http://****.ru/balans.php?user='+Form2.Edit2.Text+'&pass='+Form2.Edit1.Text;
      RichEdit1.Lines.Text := HTTP.Get(url);
      HTTP.free;
    
    По пооду echo $val выводит USERPASS, что не правильно(
     
  5. pavelp

    pavelp Писатель

    Регистр.:
    13 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    а если в начало кода вставить
    PHP:
    print_r($_GET);
    тогда мы увидим действительно ли есть эти самые гет параметры
    да и foreach в данном коде избыточен так как $_GET это же обыкновенный ассоциативный массив
     
  6. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    195
    Симпатии:
    67
    Все нашел наконец-то ошибку, спасибо еще раз OnArs!

    В get
    Код:
    user='+Form2.Edit2.Text+'&pass='
    регистр не совпадал с регистром в скрипте
    HTML:
    if($val=='USER') {$user = $_GET[$val];}
     
Статус темы:
Закрыта.