За последние 24 часа нас посетили 16717 программистов и 1694 робота. Сейчас ищут 814 программистов ...

Появление пробелов и \n

Тема в разделе "PHP для новичков", создана пользователем danies, 11 авг 2014.

  1. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Почему при подстановке кода php на странице появляются ненужные символы,которые портят разметку,и шапка полностью перемещается в боди?
    [​IMG]

    Вот код страницы
    Код (Text):
    1.  
    2. <?php
    3. require 'config1280/database_connection.php';
    4. require_once 'config1280/authorize.php';
    5. authorize_user();
    6.  
    7. ?>
    8.  
    9. <html>
    10. <head>
    11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    12. <title>Пользователи</title>
    13. <link type="text/css" rel="StyleSheet" href="css/my.css" />
    14.    <script type="text/javascript" src="js/js.js"></script>
    15.  <script type="text/javascript" src="js/jquery.js"></script>
    16.   <script type="text/javascript" src="js/jquery.validate.js"></script>
    17.   <script type="text/javascript" src="js/jquery.validate.password.js"></script>
    18. </head>
    19. <body>
    20.  
    21. <table width="100%" class="table"><tr id="head"><td style="border-bottom: 1px solid black;">
    22.   <?php
    23. include "menu_user.php";
    24. ?>
    25.  
    26.  
    27. <div class="profile"><table width="100%"><tr><td align="center">
    28.  
    29.  
    30.  
    31. <form action="show_users.php" method="POST" class="register_form">
    32. <INPUT NAME="send" placeholder="Поиск" id="send"><input type="submit" value="Найти" class="submit"></form><br><br>
    33.  
    34.  
    35.     <?php
    36.     $startFrom=0;
    37. $res = mysql_query("SELECT * FROM `users` ORDER BY `user_id` DESC LIMIT {$startFrom},10");
    38. $articles = array();
    39. while($row = mysql_fetch_assoc($res))
    40. {
    41.     $articles[] = $row;
    42. }
    43. ?>
    44. <div id="articles">
    45.  
    46.  <?php  
    47.         foreach ($articles as $article):   
    48. $timestamp2 = $article['date_online'];
    49. $timestamp1 = date("Y-m-d H:i:s");
    50. $diff = strtotime($timestamp1) - strtotime($timestamp2);
    51. $second=$diff;
    52. if ($second>900) {
    53. $online="<font style='color:red;'>Offline</font>";
    54. } else {
    55. $online="<font style='color:green;'>Online</font>";
    56. }
    57.     echo "<img src='{$article['user_pic_path']}' width='50px' height='50px'><a href='show_user.php?user_id={$article['user_id']}' class='link' >{$article['first_name']} {$article['last_name']}({$online})</a><br>";
    58.          
    59.          endforeach;
    60.  
    61.          
    62.          ?>
    63.          
    64.        
    65. </div>
    66.  
    67.  
    68. </td><td>
    69. <ul>
    70. <?php
    71. $send_form=trim($_REQUEST['send']);
    72.  
    73. $send =sprintf("SELECT * FROM users WHERE last_name='%s' or first_name='%s';", mysql_real_escape_string($send_form), mysql_real_escape_string($send_form));
    74. $send_result=mysql_query($send);
    75. $u=1;
    76. while ($user=mysql_fetch_array($send_result)) {
    77. $user_show_send=sprintf("<li><img src='%s' width='50px' height='50px'><a href='show_user.php?user_id=%d' class='link' target='blank'>%s %s</a></li>", get_web_path($user['user_pic_path']), $user['user_id'], $user['first_name'], $user['last_name']);
    78. $u++;
    79. if ($u==2) {
    80. echo "Результаты поиска:";
    81. }
    82. echo $user_show_send;
    83.  
    84. }
    85. ?>
    86. </ul>
    87.  
    88.  
    89.  
    90. </td>
    91. </div>
    92. </tr>
    93. </table>
    94. </script>
    95. </body>

    authorize:
    Код (Text):
    1. <?php
    2. require_once 'database_connection.php';
    3. session_start();
    4. function authorize_user($groups = NULL, $message_error) {
    5.   if (!isset($_SESSION['user_id'])) {
    6.      handle_error("У вас нет прав для просмотра этой страницы.");
    7.   }
    8.   if ((is_null($groups)) || (empty($groups))) {
    9.     return;
    10.   }
    11.   $query_string =
    12.       "SELECT ug.user_id" .
    13.       "  FROM user_group ug, groups g" .
    14.       " WHERE g.name = '%s'" .
    15.       "   AND g.id = ug.group_id" .
    16.       "   AND ug.user_id = " . mysql_real_escape_string($_SESSION['user_id']);
    17.   foreach ($groups as $group) {
    18.     $query = sprintf($query_string, mysql_real_escape_string($group));
    19.     $result = mysql_query($query);
    20.     if (mysql_num_rows($result) == 1) {
    21.      return;
    22.     }
    23.   }
    24.   if ($message_error="admin") {
    25.   header("Location: admin_error.php");
    26.   } else {
    27.     handle_error("У вас нет доступа для просмотра этой страницы.");
    28.     }  
    29. }
    30. function user_in_group($user_id, $group) {
    31.   $query_string =
    32.     "SELECT ug.user_id" .
    33.     "  FROM user_group ug, groups g" .
    34.     " WHERE g.name = '%s'" .
    35.     "   AND g.id = ug.group_id" .
    36.     "   AND ug.user_id = %d";
    37.   $query = sprintf($query_string, mysql_real_escape_string($group), mysql_real_escape_string($user_id));
    38.   $result = mysql_query($query);
    39.   if (mysql_num_rows($result) == 1) {
    40.     return true;
    41.   } else {
    42.     return false;
    43.   }
    44. }
    45. function show_only_gosti($user_id) {
    46. if ($user_id>0) {
    47.      header("Location: show_user.php?user_id=" .$user_id );
    48.      exit();
    49.      }
    50. }
    51. //Проверка онлайна
    52. $today = date("Y-m-d H:i:s");
    53. $user_online_offline=sprintf("UPDATE users SET date_online = '%s' WHERE user_id=%d;",  mysql_real_escape_string($today), mysql_real_escape_string($_SESSION['user_id']));
    54. mysql_query($user_online_offline);
    55. $today = date("Y-m-d H:i:s");
    56. $user_online_offline=sprintf("UPDATE user SET name = '%s' WHERE id=1;",  mysql_real_escape_string($today));
    57. mysql_query($user_online_offline);
    58.  
    59. ?>
    database_connection:
    Код (Text):
    1. <?php
    2. require 'config.php';
    3. mysql_connect(HOST,
    4. USER, PASSWORD);
    5. mysql_select_db(NAME);
    6. mysql_query("SET NAMES utf8");
    7. ?>
    config:
    Код (Text):
    1. <?php
    2. define("HOST","localhost");
    3. define("USER","root");
    4. define("PASSWORD","1234");
    5. define("NAME","111");
    6. define("SITE_ROOT", $_SERVER['DOCUMENT_ROOT']);
    7. define("DEBUG_MODE", true);
    8.  
    9.  
    10.  
    11. function debug_print($message) {
    12.   if (DEBUG_MODE) {
    13.     echo $message;
    14.   }
    15. }
    16.  
    17.  
    18. function handle_error($user_error_message, $system_error_message) {
    19.   session_start();
    20.   $_SESSION['error_message'] = $user_error_message;
    21.   $_SESSION['system_error_message'] = $system_error_message;
    22. //  header("Location: " . get_web_path(SITE_ROOT) . "scripts/show_error.php?error_message={$user_error_message}&system_error_message={$system_error_message}");
    23.   header("Location: " . get_web_path(SITE_ROOT) . "show_error.php");
    24.   exit();
    25. }
    26.  
    27. function get_web_path($file_system_path) {
    28.   return str_replace($_SERVER['DOCUMENT_ROOT'], '', $file_system_path);
    29. }
    30.  
    31. ?>
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Проверь свои исходники не наличие BOM — его надо истребить.
    Удали во всех файлах завершающий ?> Это официальная рекомендация от разработчиков PHP.

    Таким образом ты уменьшишь вероятность непроизвольного высера пустой строки когда её никто не ждет.
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    пробелы и энтеры не портят разметку.
     
  4. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Вот сравнение
    С пробелами:[​IMG]
    Потихоньку их убираем:[​IMG]
    [​IMG]
    Убрал во всез файлах где возможно ?>,это не помогло.
    Так же убрал <meta http-equiv="Content-Type" content="text/html; charset=utf-8">,еикаких результатов
     
  5. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    А вот это зря.
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    dans, Про BOM ты не понял или проигнорировал?

    оффтопик: в одном месте у тебя после header Location нет exit() — непорядочек.

    еще оффтопик:
    Код (Text):
    1. </td>
    2. </div>
    3. </tr>
    4. </table>
    5. </script>
    6. </body>
    Лишние </div> и </script>. Убери, вдруг волшебство сработает?!
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    значит это не пробелы. =)
     
  8. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Загуглил,выдало про utf-8 )
    Спасибо,заметил
    Там лишний только script,но и это не помогло
     
  9. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    мало гуглить, надо найти и истребить. все советуют пользоваться notepad++

    дануна! а </td></div></tr> это нормально, да? чувак, если ты х забиваешь на то, что тебе подсказывают, какой смысл спрашивать?
     
  10. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Им и пользуюсь
    [​IMG]
    [​IMG]
    [​IMG]
    Там все верно как раз,я забыл убрать только <table width="100%" class="table"><tr id="head"><td style="border-bottom: 1px solid black;"> в самом начале(она раньше была частью menu_user),но шапка по прежнему находится в кустах и "пробелы" остались
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты не врубился. но ты ковыряйся и всё наладится.
     
  12. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Да в чем >< Тегов лишних нету,проблема только в файле authorize,тк если его убрать-то все нормально,относительно
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Никто не говорит что теги лишнии. Просто они не там где надо.
     
  14. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Если их передвинуть,ничего не изменится,проверено
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты главное сам решай, хочешь ты делать так как правильно, или так как тебе бог на душу положит. это ж дело добровольное.
     
  16. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Так нет,толком и не объяснили как правильно,див я передвинул
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    на картинках он там же где был
     
  18. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Только на них
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ах ты хитрован! перенёс и не сказал. а картинки обманные спецом запостил, чтобы буржуинские наймиты низачто не догодались.
     
  20. danies

    danies Новичок

    С нами с:
    21 июл 2014
    Сообщения:
    38
    Симпатии:
    0
    Место,в котором стоит данный див,на проблему никаким местом не влияет
     
  21. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =)
    Я согласен. просто нечистоплотность в одном месте, а может и в другом.