"Uyarı: başlık bilgileri değiştirilemiyor - başlıklar zaten tarafından gönderilen"

6 Cevap php

Possible Duplicate:
Headers already sent by PHP

ben bu hatayı ben bir form silmeyi formu göndermek çalıştığınızda her zaman almaya devam.

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\speedycms\deleteclient.php:47) in C:\xampp\htdocs\speedycms\deleteclient.php on line 106

benim koduyla yanlış bir şey mi var? ne ben o iş yapmak için değiştirmek gerekiyor?

<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if (!empty($UserName)) { 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
    // Or, you may restrict access to only certain users based on their username. 
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && true) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}
?>

<?php
    require_once('Connections/speedycms.php');

    $client_id = mysql_real_escape_string($_GET['id']); 

    $con = mysql_connect($hostname_speedycms, $username_speedycms, $password_speedycms);

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("speedycms") or die(mysql_error());
?>

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

if ((isset($_GET['id'])) && ($_GET['id'] != "") && (isset($_POST['deleteForm']))) {
  $deleteSQL = sprintf("DELETE FROM tbl_accident WHERE id=%s",
                       GetSQLValueString($_GET['id'], "int"));

  mysql_select_db($database_speedycms, $speedycms);
  $Result1 = mysql_query($deleteSQL, $speedycms) or die(mysql_error());

  $deleteGoTo = "progress.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}

mysql_select_db($database_speedycms, $speedycms);
$query_delete = "SELECT * FROM tbl_accident  WHERE id=$client_id";
$delete = mysql_query($query_delete, $speedycms) or die(mysql_error());
$row_delete = mysql_fetch_assoc($delete);
$totalRows_delete = mysql_num_rows($delete);
?>

<p class="form2">Are you sure you wish to <b>delete</b> the record for <?php echo $row_delete['clientName']; ?>?</p>
                <form name="form" method="POST" action="<?php echo $deleteAction; ?>">
            <p class="form2"><input type="submit" value="Yes" />
              <input name="no" type="button" id="no" value="No" />
            </p>
                              <input type="hidden" name="deleteForm" value="form" />
        </form>     

şimdiden teşekkür!

6 Cevap

Hatları 45-47:

?>

<?php

Bu çıkış olarak satırsonlarının bir çift gönderiyor, böylece başlıklar zaten gönderilir. Sadece bu 3 satır (bu, tüm sonra PHP ayrıştırma bitirmek ve sonra yeniden başlatmaya gerek bütün bir büyük PHP blok), yanı sıra hatlarında 60-62 üzerinde benzer bloğu kaldırmak ve bu iş olacak.

Eğer var hata mesajı aslında size bu kendinizi bulmak yardımcı olmak için pek çok bilgi verir dikkat edin:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\speedycms\deleteclient.php:47) in C:\xampp\htdocs\speedycms\deleteclient.php on line 106

İki kalın bölümler madde nerede olduğunu söylemeniz başlıklarının (line 47) önce çıktı gönderilir ve madde nerede olduğunu çıkışı (line 106) sonra bir başlık göndermeye çalışıyordu.

Giriş document encoding .

Ben bu aynı problem vardı. Ben yerel Apache çalıştırmak için Not Defteri'ni + + ve WampServer kullanarak Windows XP üzerinde geliştirmek ve tüm iyiydi. Unix üzerinde Apache kullanan barındırma sağlayıcı yükledikten sonra bu hata var. Ben kapanış etiketinden sonra ekstra hatları hiçbir ekstra PHP etiketleri veya beyaz boşluk vardı.

Benim için bu encoding metin belgeleri neden oldu. Ben Notepad + + 'da "BOM olmadan UTF-8 dönüştürme" seçeneğini kullandım ve web sunucusuna yeniden. Sorun sabit, gerekli herhangi bir kod / düzenleme değişiklikleri.

Eğer oturumu başlamadan önce komut istenmeyen çıkışı olduğunda, bu genellikle oluşur. Geçerli kod ile bunu çözmek için çıkış tamponlama kullanmayı deneyebilirsiniz.

Belgenin çok sonunda komut ve ob_end_flush(); en çok üstünde ob_start(); işlevine bir çağrı eklemeyi deneyin.

Muhtemel boşluk php etiketleri dışında vardır.

Lütfen ?> ve <?php etiketleri arasında olanlar boş satır müşteriye gönderiliyor.

Bunlardan ilki gönderildiğinde, bu başlıkları ilk gönderilmesine neden olur.

Bu durum gerçekleştiğinde, size daha fazla başlıkları değiştiremezsiniz.

Bu gereksiz etiketleri kaldırmak, Bu büyük bir <?php blok içinde bütün.