Seite 1 von 1

Costum Page PHP Programmierung - Cannot modify header info ?

Verfasst: 08.04.2016 19:58
von DonKanaille
Guten Tag,

es geht darum auf einer zu dem phpBB 3.1.8 Forum hinzugefügte Seite Produktinformationen darzustellen.

Die Informationen werden aus einer Datenbank abgerufen und in form einer Tabelle ausgegeben. Damit nicht zu viele Produkte auf einer Seite stehen wurde via PHP eine Seitenauswahl integriert. Hier kommt es leider zu folgendem Fehler.

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpBB_Projekt\cache\twig\e\5\e5cc042b0fcf626a89b3c117c0bf881a817ba5d7a388d225c151580498a57dd8.php:154) in C:\xampp\htdocs\phpBB_Projekt\includes\functions.php on line 2535
Der PHP-Code wurde in der costum_page.html realisiert, liegt hier das Problem ? Gibt es Möglichkeiten HTML und PHP zu 100% zu trennen so das nur in der costum_page.php PHP Code vorhanden ist ? (Ohne Blätterfunktion läuft der PHP-Code)

Evtl. hatte jemand das gleiche Problem und kann helfen, würde mich riesig freuen :)

Re: Costum Page PHP Programmierung - Cannot modify header in

Verfasst: 08.04.2016 20:15
von Crizzo
Hi,

wie gibst du denn diese Inhalt aus?

Vermutlich verwendest du nicht die phpBB-interne Template-Engine. Deshalb gibt es zwei "Funktionen", die quasi gleichzeitig Inhalt ausgeben wollen. Deshalb beschwert sich jetzt die phpBB-Template-Engine, dass sie nicht die "header informationen" senden kann, da dafür schon Informationen gesendet wurden, eben durch die frühere Ausgabe von Text.

Also, wie gibst du deinen Inhalt aus?

Grüße

Re: Costum Page PHP Programmierung - Cannot modify header in

Verfasst: 08.04.2016 21:23
von DonKanaille
Danke für die Antwort :)

Die Seite läuft mit einem Template von Themeforest.

EDIT: Habe phpBB neu installiert ohne Template und folgendes Grundgerüst.

test.php:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

// Output page
page_header($page_title, true);

$template->set_filenames(array(
    'body' => 'test.html')
);

page_footer();
 
test.html:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<h2>TEST</h2>

<!-- PHP -->
$pdo = new PDO('mysql:host=localhost;dbname=db_test', 'root', '');

//Ermittelt die Anzahl der Produkte
$statement = $pdo->prepare("SELECT COUNT(*) AS anzahl FROM product_01");
$statement->execute();
$row = $statement->fetch();
$anzahl_eintrage = $row['anzahl'];
echo "$anzahl_eintrage einträge in Datenbank<br><br>";

//Berechne alles notwendige für die Blätterfunktion
$seite = 1;
if(isset($_GET['seite'])) {
	$seite = intval($_GET['seite']);
}

$beitraege_pro_seite = 20;
$start = ($seite-1)*$beitraege_pro_seite;

//Abfrage der Datenbank und Ausgabe der Daten
$statement = $pdo->prepare("SELECT * FROM cpu LIMIT :start, :limit");
$statement->bindParam(':start', $start, PDO::PARAM_INT);
$statement->bindParam(':limit', $beitraege_pro_seite, PDO::PARAM_INT);
$statement->execute();
while($row = $statement->fetch()) {
	$Title = $row['Title'];
	echo $Title .'<br>';
}
 
//Berechne die Anzahl der Seiten:
$anzahl_seiten = ceil($anzahl_eintrage / floatval($beitraege_pro_seite));
 
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
 
 
//Ausgabe der Links zu den verschiedenen Seiten
for($a=1; $a <= $anzahl_seiten; $a++) {
	if($seite == $a){
		echo " <b>$a</b> ";
	} else {	//Aus dieser Seite ist der User nicht, also einen Link ausgeben
		echo " <a href=\"?seite=$a\">$a</a> ";
	}
}
echo "</div>";
<!-- ENDPHP -->

<!-- INCLUDE overall_footer.html -->