Заголовок PHP не работает в MAMP даже после удаления пробела

Я использую MAMP, и по какой-то причине я не перенаправляюсь с использованием заголовка в php, может кто-нибудь, пожалуйста, взгляните на следующий код, если в нем что-то не так ???

Я прочитал похожие сообщения и обнаружил, что это вызвано чем-то вроде пробела перед тегом заголовка, но в моем случае это не так.

Пожалуйста, дайте свои советы … thanx

<?php $host="localhost"; // Host name $username="root"; // Mysql username $password="root"; // Mysql password $db_name="DBase"; // Database name $tbl_name="customers"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from the form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; $myusername = stripslashes($myusername); $mypassword = md5($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE Username='$myusername' and Password='$mypassword'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ session_register("myusername"); session_register("mypassword"); header("location:/Account/index.php"); } else { echo "Wrong Username or Password."; } ?> 

 header('Location: http://example.com/Account/index.php'); exit; 

это один из способов сделать это, но вы можете использовать буферизацию вывода, чтобы обойти эту проблему, с накладными расходами на весь ваш вывод, чтобы браузер буферизовался на сервере, пока вы его не отправите. Вы можете сделать это, вызвав ob_start() и ob_end_flush() в вашем скрипте или установив директиву конфигурации output_buffering в файлах конфигурации php.ini или сервера.

ИЗМЕНИТЬ И ПРИНЯТЬ РЕШЕНИЕ: ——>

Вы можете использовать буферизацию вывода как

  <?php ob_start(); $host="localhost"; // Host name $username="root"; // Mysql username $password="root"; // Mysql password $db_name="DBase"; // Database name $tbl_name="customers"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from the form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; $myusername = stripslashes($myusername); $mypassword = md5($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE Username='$myusername' and Password='$mypassword'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ session_register("myusername"); session_register("mypassword"); header("location:/Account/index.php"); } else { echo "Wrong Username or Password."; } ob_end_flush(); ?> 

Проблема в том, что мы не можем отправить заголовок после начала отправки вывода. Для этого мы буферизируем вывод. Функция ob_start включает буферизацию вывода. В то время как буферизация вывода активна, никакой вывод не отправляется из сценария (кроме заголовков), вместо этого вывод сохраняется во внутреннем буфере. Таким образом, выход эха будет буферизирован. Затем мы отправляем заголовок без каких-либо проблем, поскольку мы еще не выплюнули какой-либо вывод. Наконец, мы вызываем ob_end_flush, чтобы очистить содержимое внутреннего буфера и остановить буферизацию вывода.

У меня была та же проблема в MAMP, и оказалось, что output_buffering был отключен в моем файле конфигурации php.ini. Все, что я должен был сделать, это снова включить его.

в php.ini найдите эту строку:

 output_buffering = Off 

и измените его на:

 output_buffering = 4096 

Затем перезапустите MAMP

Пожалуйста, смотрите это сообщение для получения дополнительной информации: http://hibbard.eu/php-headerlocation-not-working-in-mamp/

Это должно быть примерно так:

 header('Location: http://example.com/Account/index.php'); exit;