Почему при подстановке кода php на странице появляются ненужные символы,которые портят разметку,и шапка полностью перемещается в боди? Вот код страницы Код (Text): <?php require 'config1280/database_connection.php'; require_once 'config1280/authorize.php'; authorize_user(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Пользователи</title> <link type="text/css" rel="StyleSheet" href="css/my.css" /> <script type="text/javascript" src="js/js.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.validate.js"></script> <script type="text/javascript" src="js/jquery.validate.password.js"></script> </head> <body> <table width="100%" class="table"><tr id="head"><td style="border-bottom: 1px solid black;"> <?php include "menu_user.php"; ?> <div class="profile"><table width="100%"><tr><td align="center"> <form action="show_users.php" method="POST" class="register_form"> <INPUT NAME="send" placeholder="Поиск" id="send"><input type="submit" value="Найти" class="submit"></form><br><br> <?php $startFrom=0; $res = mysql_query("SELECT * FROM `users` ORDER BY `user_id` DESC LIMIT {$startFrom},10"); $articles = array(); while($row = mysql_fetch_assoc($res)) { $articles[] = $row; } ?> <div id="articles"> <?php foreach ($articles as $article): $timestamp2 = $article['date_online']; $timestamp1 = date("Y-m-d H:i:s"); $diff = strtotime($timestamp1) - strtotime($timestamp2); $second=$diff; if ($second>900) { $online="<font style='color:red;'>Offline</font>"; } else { $online="<font style='color:green;'>Online</font>"; } 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>"; endforeach; ?> </div> </td><td> <ul> <?php $send_form=trim($_REQUEST['send']); $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)); $send_result=mysql_query($send); $u=1; while ($user=mysql_fetch_array($send_result)) { $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']); $u++; if ($u==2) { echo "Результаты поиска:"; } echo $user_show_send; } ?> </ul> </td> </div> </tr> </table> </script> </body> authorize: Код (Text): <?php require_once 'database_connection.php'; session_start(); function authorize_user($groups = NULL, $message_error) { if (!isset($_SESSION['user_id'])) { handle_error("У вас нет прав для просмотра этой страницы."); } if ((is_null($groups)) || (empty($groups))) { return; } $query_string = "SELECT ug.user_id" . " FROM user_group ug, groups g" . " WHERE g.name = '%s'" . " AND g.id = ug.group_id" . " AND ug.user_id = " . mysql_real_escape_string($_SESSION['user_id']); foreach ($groups as $group) { $query = sprintf($query_string, mysql_real_escape_string($group)); $result = mysql_query($query); if (mysql_num_rows($result) == 1) { return; } } if ($message_error="admin") { header("Location: admin_error.php"); } else { handle_error("У вас нет доступа для просмотра этой страницы."); } } function user_in_group($user_id, $group) { $query_string = "SELECT ug.user_id" . " FROM user_group ug, groups g" . " WHERE g.name = '%s'" . " AND g.id = ug.group_id" . " AND ug.user_id = %d"; $query = sprintf($query_string, mysql_real_escape_string($group), mysql_real_escape_string($user_id)); $result = mysql_query($query); if (mysql_num_rows($result) == 1) { return true; } else { return false; } } function show_only_gosti($user_id) { if ($user_id>0) { header("Location: show_user.php?user_id=" .$user_id ); exit(); } } //Проверка онлайна $today = date("Y-m-d H:i:s"); $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'])); mysql_query($user_online_offline); $today = date("Y-m-d H:i:s"); $user_online_offline=sprintf("UPDATE user SET name = '%s' WHERE id=1;", mysql_real_escape_string($today)); mysql_query($user_online_offline); ?> database_connection: Код (Text): <?php require 'config.php'; mysql_connect(HOST, USER, PASSWORD); mysql_select_db(NAME); mysql_query("SET NAMES utf8"); ?> config: Код (Text): <?php define("HOST","localhost"); define("USER","root"); define("PASSWORD","1234"); define("NAME","111"); define("SITE_ROOT", $_SERVER['DOCUMENT_ROOT']); define("DEBUG_MODE", true); function debug_print($message) { if (DEBUG_MODE) { echo $message; } } function handle_error($user_error_message, $system_error_message) { session_start(); $_SESSION['error_message'] = $user_error_message; $_SESSION['system_error_message'] = $system_error_message; // header("Location: " . get_web_path(SITE_ROOT) . "scripts/show_error.php?error_message={$user_error_message}&system_error_message={$system_error_message}"); header("Location: " . get_web_path(SITE_ROOT) . "show_error.php"); exit(); } function get_web_path($file_system_path) { return str_replace($_SERVER['DOCUMENT_ROOT'], '', $file_system_path); } ?>
Проверь свои исходники не наличие BOM — его надо истребить. Удали во всех файлах завершающий ?> Это официальная рекомендация от разработчиков PHP. Таким образом ты уменьшишь вероятность непроизвольного высера пустой строки когда её никто не ждет.
Вот сравнение С пробелами: Потихоньку их убираем: Убрал во всез файлах где возможно ?>,это не помогло. Так же убрал <meta http-equiv="Content-Type" content="text/html; charset=utf-8">,еикаких результатов
dans, Про BOM ты не понял или проигнорировал? оффтопик: в одном месте у тебя после header Location нет exit() — непорядочек. еще оффтопик: Код (Text): </td> </div> </tr> </table> </script> </body> Лишние </div> и </script>. Убери, вдруг волшебство сработает?!
мало гуглить, надо найти и истребить. все советуют пользоваться notepad++ дануна! а </td></div></tr> это нормально, да? чувак, если ты х забиваешь на то, что тебе подсказывают, какой смысл спрашивать?
Им и пользуюсь Там все верно как раз,я забыл убрать только <table width="100%" class="table"><tr id="head"><td style="border-bottom: 1px solid black;"> в самом начале(она раньше была частью menu_user),но шапка по прежнему находится в кустах и "пробелы" остались
Да в чем >< Тегов лишних нету,проблема только в файле authorize,тк если его убрать-то все нормально,относительно
ты главное сам решай, хочешь ты делать так как правильно, или так как тебе бог на душу положит. это ж дело добровольное.
ах ты хитрован! перенёс и не сказал. а картинки обманные спецом запостил, чтобы буржуинские наймиты низачто не догодались.