За последние 24 часа нас посетили 19167 программистов и 1641 робот. Сейчас ищут 898 программистов ...

Ошибка в коде

Тема в разделе "PHP для новичков", создана пользователем DieselFaka, 26 фев 2012.

  1. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    Не понимаю где ошибка в коде, после кнопки "получить поинты" код отображается на стр.
    Код (PHP):
    1. <?
    2. $host = "";
    3. $user = ""; 
    4. $pass = "";
    5. $rodb = "";
    6.  
    7. $db = mysql_connect($host, $user, $pass) or die(mysql_error());</code></pre>
    8.  
    9. <pre><code class='php'><style>
    10. .hide {
    11. display: none;
    12. }
    13.  
    14. .show {
    15. display: yes;
    16. }
    17. </style>
    18. <script type='text/javascript'>
    19. function upd(id) {
    20.  
    21. if (id==1){
    22.   document.getElementById('vk_id').className='show';
    23. }
    24. if (id==2){
    25.   document.getElementById('vk_id').className='hide';
    26. }
    27.  
    28. }
    29. </script>
    30. <center>  
    31. 1. Кликаете на баннер: <br /> 
    32.   
    33. [url="http://game100rus.com/index.php?do=votes&id=15776"]<img width="90" height="68" border="0" src="http://pics.livejournal.com/samaritanyn/pic/0006wrf5.gif" alt="MMORPG TOP 100 LA2, WOW, RO, RF Online,  PW, Aion, etc. MMORPG Private Servers. Приватные сервера онлайн игр и игровые порталы." />[/url] 
    34.  
    35. [url="http://land-game.ru/index.php?do=votes&id=598"]<img width="90" height="68" border="0" src="http://land-game.ru/tracker.php?do=in&id=48" alt="MMORPG TOP 100 LA2, WOW, RO, RF Online,  PW, Aion, etc. MMORPG Private Servers. Приватные сервера онлайн игр и игровые порталы." />[/url] 
    36.   
    37.  
    38. [url="http://gatop.ru/index.php?do=votes&id=10294"]<img width="90" height="60" alt="" src="http://pics.livejournal.com/samaritanyn/pic/0007cr07.gif" border="0">[/url]  
    39. <br /><br /> 
    40. 2. Голосуете <br /><br /><br /> 
    41. 3. Выбираете Топ в котором вы проголосовали 
    42.         <form method="POST"> 
    43.         <input name='top' type='radio' value='1' onchange="upd(2);" onkeyup="upd(2);" onblur="upd(2);"><label>Game100rus.com (Не работает)</label><br /> 
    44.         <input name='top' type='radio' value='2' onchange="upd(2);" onkeyup="upd(2);" onblur="upd(2);"><label>Land-Game.ru</label><br /> 
    45.         <input name='top' type='radio' value='3' onchange="upd(1);" onkeyup="upd(1);" onblur="upd(1);"><label>Gatop.ru</label><br /> 
    46.         <br /> 
    47.         4. Вводите логин и получаете бонус <br /> 
    48.         Введите логин:  
    49.         <br /><input type='text' name='login'>   
    50.         <br /><input type='hidden' name='vote'><br />
    51.         <div id="vk_id" class="hide">Введите своё ID Вконтакте: <input type='text' name='vk_id'><br /></div>
    52.         <input type='submit' value='Получить поинты!'>   
    53.         </form>   
    54.         </center>  
    55. <?   
    56.  
    57. include("./config/db.php"); 
    58. @mysql_select_db($rodb,$db); 
    59.         
    60. $top = array(
    61.                 1 => array(1 => "http://game100rus.com/index.php?do=votes&id=15776", 2 => "vote_time", 3 => "vote_ip"), 
    62.                         2 => array(1 => "http://land-game.ru/index.php?do=votes&id=598", 2 => "vote2_time", 3 => "vote2_ip"), 
    63.                                 3 => array(1 => "http://gatop.ru/index.php?do=votes&id=10294", 2 => "vote3_time", 3 => "vote3_ip"),
    64.                         );
    65.         
    66. if (isset($_POST['vote'])) {  
    67.         if ($_POST['login'] == '') { echo "<br />Вы не ввели логин";  } 
    68.          
    69.         if ($_POST['top'] == '') { echo "<br />Вы не выбрали Топ";  } 
    70.         
    71.         $num_top = $_POST['top'];
    72.         
    73.         $user = trim($_POST['login']); // Логин
    74.         $vk_id = trim($_POST['vk_id']); // Айди Контакта
    75.         $result = mysql_query ("select * from `login` WHERE `userid`='$user'",$db) or die(mysql_error());   
    76.         $myrow = mysql_fetch_array($result);    
    77.         $curr_time = time(); //Текущее время
    78.         $vote_time = $myrow[$top[$num_top][2]]; // Последний раз голосовал
    79.           
    80.         $stranica = file_get_contents($top[$num_top][1]); //Получаем статистику
    81.         $userip = $_SERVER['REMOTE_ADDR']; //IP юзера
    82.           
    83.         $ip = mysql_query ("select * from `login` WHERE `vote_ip`='$userip' and `userid`<>'$user'",$db) or die(mysql_error());   
    84.         $check_ip = mysql_fetch_array($ip);     
    85.         $vote_ip = $check_ip[$top[$num_top][3]];   
    86.  
    87.         $pos = strpos($stranica, $userip); // Ищем данные пользователя в статистике
    88.         if ($num_top == 3) 
    89.         { 
    90.         $pos = strpos($stranica, $vk_id); // Ищем данные пользователя в статистике 
    91.         }
    92.  
    93.  
    94. if (($curr_time-$vote_time) < 3600*12) { echo "<br />Вы голосовали менее 12 часов назад";} else { 
    95. if ($vote_ip == $userip) { echo "<br />Вы уже голосовали"; } else { 
    96.  
    97.  
    98. if ($pos === false) {   
    99.         echo "<br />Вы не проголосовали. ";   
    100. } else {   
    101.  
    102.         $curr_time = time();  
    103.         $update_vote = mysql_query ("UPDATE `login` set `vote`=`vote`+'1', `".$top[$num_top][2]."='$curr_time', `".$top[$num_top][3]."`='$userip'  WHERE `userid`='$user'",$db) or die(mysql_error());   
    104.         $points = mysql_query ("select * from `login` WHERE `userid`='$user'",$db) or die(mysql_error());        
    105.         $points2 = mysql_fetch_array($points);  
    106.                         
    107.                 do      
    108. {       
    109. printf(      
    110.   <table width='481' height='10' border='-1'>  <tr>   
    111.         <td width='105px' height='10px' align='center' ><br>У вас %s голоса(-ов)</td></br>   
    112.   </tr>   
    113. </table>
    114. $points2["vote"]);    
    115. }       
    116. while ($points2 = mysql_fetch_array($points));  
    117.  
    118.         echo "Бонус зачислен.";   
    119.  
    120. }}   
    121. }
    122.  
    123. }
    124. ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    <? замени на <?php
     
  3. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    У тебя один закрывающий тег ?> и 2 открывающих тега <?

    Может в этом проблема?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мда, забавно

    вот переделал:
    Код (PHP):
    1. <?php
    2. $host = "";
    3. $user = "";
    4. $pass = "";
    5. $rodb = "";
    6.  
    7. $db = mysql_connect($host, $user, $pass) or die(mysql_error());
    8. ?>
    9. </code></pre>
    10.  
    11. <pre><code class='php'><style>
    12.       .hide {
    13.         display: none;
    14.       }
    15.  
    16.       .show {
    17.         display: yes;
    18.       }
    19. </style>
    20. <script type='text/javascript'>
    21.       function upd(id) {
    22.  
    23.         if (id==1){
    24.           document.getElementById('vk_id').className='show';
    25.         }
    26.         if (id==2){
    27.           document.getElementById('vk_id').className='hide';
    28.         }
    29.  
    30.       }
    31.     </script>
    32. <center>  
    33. 1. Кликаете на баннер: <br /> 
    34.   
    35. [url="http://game100rus.com/index.php?do=votes&id=15776"]<img width="90" height="68" border="0" src="http://pics.livejournal.com/samaritanyn/pic/0006wrf5.gif" alt="MMORPG TOP 100 LA2, WOW, RO, RF Online,  PW, Aion, etc. MMORPG Private Servers. Приватные сервера онлайн игр и игровые порталы." />[/url] 
    36.  
    37. [url="http://land-game.ru/index.php?do=votes&id=598"]<img width="90" height="68" border="0" src="http://land-game.ru/tracker.php?do=in&id=48" alt="MMORPG TOP 100 LA2, WOW, RO, RF Online,  PW, Aion, etc. MMORPG Private Servers. Приватные сервера онлайн игр и игровые порталы." />[/url] 
    38.   
    39.  
    40. [url="http://gatop.ru/index.php?do=votes&id=10294"]<img width="90" height="60" alt="" src="http://pics.livejournal.com/samaritanyn/pic/0007cr07.gif" border="0">[/url]  
    41. <br /><br /> 
    42. 2. Голосуете <br /><br /><br /> 
    43. 3. Выбираете Топ в котором вы проголосовали 
    44.         <form method="POST"> 
    45.         <input name='top' type='radio' value='1' onchange="upd(2);" onkeyup="upd(2);" onblur="upd(2);"><label>Game100rus.com (Не работает)</label><br /> 
    46.         <input name='top' type='radio' value='2' onchange="upd(2);" onkeyup="upd(2);" onblur="upd(2);"><label>Land-Game.ru</label><br /> 
    47.         <input name='top' type='radio' value='3' onchange="upd(1);" onkeyup="upd(1);" onblur="upd(1);"><label>Gatop.ru</label><br /> 
    48.         <br /> 
    49.         4. Вводите логин и получаете бонус <br /> 
    50.         Введите логин:  
    51.         <br /><input type='text' name='login'>   
    52.         <br /><input type='hidden' name='vote'><br />
    53.         <div id="vk_id" class="hide">Введите своё ID Вконтакте: <input type='text' name='vk_id'><br /></div>
    54.         <input type='submit' value='Получить поинты!'>   
    55.         </form>   
    56.         </center>  
    57.     <?php
    58.     include("./config/db.php");
    59.     @mysql_select_db($rodb, $db);
    60.     $top = array(
    61.         1 => array(1 => "http://game100rus.com/index.php?do=votes&id=15776", 2 => "vote_time", 3 => "vote_ip"),
    62.         2 => array(1 => "http://land-game.ru/index.php?do=votes&id=598", 2 => "vote2_time", 3 => "vote2_ip"),
    63.         3 => array(1 => "http://gatop.ru/index.php?do=votes&id=10294", 2 => "vote3_time", 3 => "vote3_ip"),
    64.     );
    65.     if (isset($_POST['vote'])) {
    66.       if ($_POST['login'] == '') {
    67.         echo "<br />Вы не ввели логин";
    68.       }
    69.       if ($_POST['top'] == '') {
    70.         echo "<br />Вы не выбрали Топ";
    71.       }
    72.       $num_top = $_POST['top'];
    73.       $user = trim($_POST['login']); // Логин
    74.       $vk_id = trim($_POST['vk_id']); // Айди Контакта
    75.       $result = mysql_query("select * from `login` WHERE `userid`='$user'", $db) or die(mysql_error());
    76.       $myrow = mysql_fetch_array($result);
    77.       $curr_time = time(); //Текущее время
    78.       $vote_time = $myrow[$top[$num_top][2]]; // Последний раз голосовал
    79.       $stranica = file_get_contents($top[$num_top][1]); //Получаем статистику
    80.       $userip = $_SERVER['REMOTE_ADDR']; //IP юзера
    81.       $ip = mysql_query("select * from `login` WHERE `vote_ip`='$userip' and `userid`<>'$user'", $db) or die(mysql_error());
    82.       $check_ip = mysql_fetch_array($ip);
    83.       $vote_ip = $check_ip[$top[$num_top][3]];
    84.       $pos = strpos($stranica, $userip); // Ищем данные пользователя в статистике
    85.       if ($num_top == 3) {
    86.         $pos = strpos($stranica, $vk_id); // Ищем данные пользователя в статистике 
    87.       }
    88.       if (($curr_time - $vote_time) < 3600 * 12) {
    89.         echo "<br />Вы голосовали менее 12 часов назад";
    90.       } else {
    91.         if ($vote_ip == $userip) {
    92.           echo "<br />Вы уже голосовали";
    93.         } else {
    94.           if ($pos === false) {
    95.             echo "<br />Вы не проголосовали. ";
    96.           } else {
    97.             $curr_time = time();
    98.             $update_vote = mysql_query("UPDATE `login` set `vote`=`vote`+'1', `" . $top[$num_top][2] . "='$curr_time', `" . $top[$num_top][3] . "`='$userip'  WHERE `userid`='$user'", $db) or die(mysql_error());
    99.             $points = mysql_query("select * from `login` WHERE `userid`='$user'", $db) or die(mysql_error());
    100.             $points2 = mysql_fetch_array($points);
    101.             while ($points2 = mysql_fetch_array($points)) {
    102.               echo "
    103.                 <table width='481' height='10' border='-1'>
    104.                   <tr>   
    105.                     <td width='105px' height='10px' align='center' ><br>У вас {$points2['vote']} голоса(-ов)</td>
    106.                   </tr>   
    107.                </table>
    108.               ";
    109.             }
    110.             echo "Бонус зачислен.";
    111.           }
    112.         }
    113.       }
    114.     }
    115.     ?>
     
  5. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    спасибо, помогло. но появились другие ошибки
    Код (Text):
    1.  
    2. Warning: include(./config/db.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in D:\Serv\www\db.php on line 58
    3. Warning: include() [<a href='function.include'>function.include</a>]: Failed opening './config/db.php' for inclusion (include_path='.;D:\Serv\Smarty') in D:\Serv\www\db.php on line 58
    может модуль какой не включен?
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А путь правильный?
    Есть такой файл?
     
  7. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    путь был не верный, но после изменения, содержимое страницы копируется несколько раз, в конце ошибка
    Код (Text):
    1.  
    2. Fatal error: Maximum function nesting level of '100' reached, aborting! in D:\Serv\www\config\db.php on line 7
     
  8. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    ну ты бы код db.php показал чтоли...
     
  9. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да не просто несколько раз а больше ста :)

    Похоже у тебя где-то происходит зацикливание и этот скрипт постоянно выполняетс

    Добавлено спустя 59 секунд:
    Каким образом ты его подключаешь
     
  11. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    взял его здесь
    db.php(этот код) лежит в корне сайта и в каталоге /config
     
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А как собственно используешь скрипт?

    Где ты его подключаешь (include), он вызывается 1 раз?
     
  13. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    тоесть нужно открывать не сам db.php, а подключать его через другую страницу?
     
  14. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    а, блина, так это и есть файл db.php

    и ты его в себе же и инклюдишь)))))


    круто :)
    змея, глотающая свой хвост нервно курит :)
     
  15. DieselFaka

    DieselFaka Активный пользователь

    С нами с:
    26 фев 2012
    Сообщения:
    29
    Симпатии:
    0
    не сразу понял)