[Обсуждение] помощь в поиске ошибки

Тема в разделе "Игровые движки", создана пользователем linpc, 21 фев 2013.

  1. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Нужна помощь, делаю открытие подарков с вещами, понять не могу почему не работает просто уже очень долго сижу над скриптом и голова не соображает. Нужно чтоб когда нажимали открыть Подарок открывался и выполнял то что я хочу, а именно выдача вещи.
    PHP:
    if($row['open']==1){echo'<br /><form action=main.php?mselect=6 method=POST><input type=hidden name=post_id value=52><input type="hidden" name="uid" value="'.$player['id'].'" /><input type="hidden" name="wn" value="'.$row['present'].'" /><input type="hidden" name="ul" value="'.$player['login'].'" /><input type=hidden name=vcode value="'.scode().'"><input type="button" class="invbut" value="Открыть" onclick="if (confirm (\'Вы действительно хотите открыть подарок?\')) { form.submit(); }" /></form>';}else{echo"</br>";}
    post_id.php
    PHP:
    if($post_id==52){
        
    $items=mysql_fetch_array(mysql_query("SELECT * FROM `hpr` WHERE `present`='".$wn."' LIMIT 1;"));
                if(
    $items['items_id']!=0){
                
    $item=explode("|",$items['items_id']);
                    foreach(
    $item as $val){
                        if(
    $val!=''){
                                
    $itemsql=mysql_fetch_array(mysql_query("SELECT * FROM `items` WHERE `id`='".$val."' LIMIT 1;"));
                                
    $par=explode("|",$itemsql['param']);
                                foreach (
    $par as $value) {
                                    
    $stat=explode("@",$value);
                                    switch(
    $stat[0]){case 2$dolg=$stat[1];break;}
                                }
                                if(
    $wn<=116 or $wn>=121){$death=(time()+(86400*30));}
                                else{
    $death=0;}
                                if(
    mysql_query("INSERT INTO invent (`protype` ,`pl_id` ,`dolg` ,`price` ,`gift`,`gift_from`,`death`) VALUES ('".$itemsql['id']."','".$player['id']."','".$dolg."','".$itemsql['price']."','1','LifeIsWar.ru',".$death.");")){
                                    
    $ms="top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> <font color=000000><b><font color=#CC0000>Внимание!</font></b></font>&nbsp;Вы получили подарок: <b>".$itemsql['name']."</b>.</font><BR>'+'');";chmsg($ms,$player['login']);
                                }
                        }
                    }
                }
    }
     
  2. ВладимирТрой

    ВладимирТрой Постоялец

    Регистр.:
    29 янв 2013
    Сообщения:
    53
    Симпатии:
    19
    не очень понятно, почему при открытии подарка форма идет на main.php, а скрипт написан в post_id.php ?
    и вот эта проверка на константу if($post_id==52) ведь, как я понимаю, здесь должна быть проверка на post-переменную открытого подарка?
    и откуда берется переменная $wn ?
     
  3. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    в
    том то и дело..Было реализовано не мной, а щас переписываю под себя и понять не могу... Где я допускаю ошибку. Переменную post беру тут: <input type=hidden name=post_id value=52>
    А форма: <form action=main.php?mselect=6 method=POST> Потому что закладка на mselect=6
     
  4. ВладимирТрой

    ВладимирТрой Постоялец

    Регистр.:
    29 янв 2013
    Сообщения:
    53
    Симпатии:
    19
    можете показать где идет инициализация $post_id, $wn в коде? (т.е. в скрипт приходит переменная $_POST["post_id"] или $_REQUEST["post_id"], если конечно не включен флаг register_globals что бывает довольно редко - тогда будет сразу $post_id)
    сабмит формы попадает в этот код? (можно проверить просто debug-выводом через print_r('submitted') в файле post_id.php)
    можно вывести что приходит постом в форму - print_r($_POST) в скрипте post_id.php?