У меня проблема с Session_start () здесь:
Предупреждение : session_start () [function.session-start]: Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки (вывод начался с C: \ xampp \ htdocs \ pages \ home.php: 4) в C: \ xampp \ htdocs \ charts \ home-chart.php в строке 2
и в home-chart.php в строке 2 я написал такие коды:
session_start(); . . . echo ' username: '.$_SESSION['user_name'];
хотя с этим предупреждением я могу получить результат $_SESSION['user_name']
но когда я попытаюсь очистить эту часть кода:
session_start();
Я не вижу результата на экране. так, каково ваше решение?
<?php @session_start(); require_once '../class/chart.class.php'; $chart = new chart(); ?> <html> <head> <link href='../css/home-chart.css' rel='stylesheet' type='text/css' /> </head> <body> <div class='float_left' style="margin-bottom:20px;"> <div class='float_left' style='line-height: 9.41px; font-size: x-small;'>0<br /></div> <div class='float_left' style="background-image: url('../image/web/chart.png'); width: 367px; height: 226px; " > <!-- 1 --><div class='float_left float_left column' style='margin-left:2px;'> <?php echo $chart->mysql_fetch($chart->daycal(-3)); ?> </div> <!-- 2 --><div class='float_left float_left column'> <?php echo $chart->mysql_fetch($chart->daycal(-2)); ?> </div> <!-- 3 --><div class='float_left column' > <?php echo $chart->mysql_fetch($chart->daycal(-1)); ?> </div> <!-- 4 --><div class='float_left column' > <?php echo $chart->mysql_fetch($chart->daycal(0)); ?> </div> <!-- 5 --><div class='float_left column' > <?php echo $chart->mysql_fetch($chart->daycal(1)); ?> </div> <!-- 6 --><div class='float_left column' > <?php echo $chart->mysql_fetch($chart->daycal(2)); ?> </div> <!-- 7 --><div class='float_left column' > <?php echo $chart->mysql_fetch($chart->daycal(3)); ?> </div> </div> <div class='float_single_full' ></div> <div class='float_left bottom_chart' style="margin-left:10px;"><?php echo $chart->dayofweek(-3); ?></div> <div class='float_left bottom_chart'><?php echo $chart->dayofweek(-2); ?></div> <div class='float_left bottom_chart'><?php echo $chart->dayofweek(-1); ?></div> <div class='float_left bottom_chart' style='font-weight:bold'><?php echo $chart->dayofweek(0); ?></div> <div class='float_left bottom_chart'><?php echo $chart->dayofweek(1); ?></div> <div class='float_left bottom_chart'><?php echo $chart->dayofweek(2); ?></div> <div class='float_left bottom_chart'><?php echo $chart->dayofweek(3); echo ' username: ' . $_SESSION['user_name']; ?></div> </div> </body> </html>
Если у вас даже есть пустые строки перед <?php
, вы не можете устанавливать заголовки. Ваше начало файла с номерами строк должно выглядеть следующим образом:
1. <?php 2. session_start(); 3. header('Cache-control: private');
В сообщении говорится «заголовки, отправленные по строке 2», поэтому вы выводите что-то (пробел, пустую строку и т. Д.) В строке 4 home.php
Если этот файл является include, вы должны поместить session_start();
вместо этого в верхней части home.php, а затем вам не нужно в этом файле.
Это означает, что вы напечатали что-то перед вызовом session_start ().
Вы не должны печатать ничего перед session_start ().
Сообщение об ошибке предполагает, что вы сначала напечатали что-то в C: \ xampp \ htdocs \ pages \ home.php в строке 4.
напишите этот код перед заголовком. как показано ниже:
<?php ob_start(); ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php session_start(); ?> </body>
Попробуйте вставить <?php ob_start(); ?>
<?php ob_start(); ?>
наверху большей части вашей страницы. Он будет работать как магия.
php.ini file
, session.auto_start = 0
to session.auto_start = 1
Если все приведенные выше ответы не сработали для вас:
Некоторые редакторы, сохраняя файл как UTF-8, вставляют лишние символы в файл в самом начале (формат не требует его, но он все равно). Затем отказывайтесь показывать вам эти символы, когда они отображают файл. Чтобы узнать, является ли ваш редактор одним из них, попробуйте сохранить пустой файл и посмотреть, сколько байтов оно занимает. Если это больше нуля (возможно, три), тогда вам придется сказать, что ваш редактор перестает возиться (и как вы это делаете, зависит от редактора).
Этого не происходит, если вы сохраните файл как ANSI.
Я также столкнулся с той же проблемой и разрешил это, написав ниже код на верхней части страницы php:
<?php session_start(); ?>
использование
session_cache_limiter(FALSE);
до
session_start();
Это, безусловно, поможет вам 🙂