mehrere Datein hintereinander includen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

mehrere Datein hintereinander includen

Beitrag von seatfriend »

Hallo,

wie kann ich mehrere Dateien im php hintereinander includen?

Code: Alles auswählen

include ($header.html)
include ($beispiel.php)
include ($footer.html)
funktioniert nicht. Was mache ich falsch?
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: mehrere Datein hintereinander includen

Beitrag von Frank1604 »

seatfriend hat geschrieben:wie kann ich mehrere Dateien im php hintereinander includen?

Code: Alles auswählen

    include ($header.html)
    include ($beispiel.php)
    include ($footer.html)
funktioniert nicht. Was mache ich falsch?
Zum Einen fehlt jeweils das Semikolon. Zum Anderen fangen Variablen mit einem "$" an, nicht die namen der Dateien. Also eher so:

Code: Alles auswählen

    include ("header.html");
    include "beispiel.php";
    include 'footer.html'; 
(3 verschiedene Varianten der include-Syntax)

Siehe auch: [php:include]
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: mehrere Datein hintereinander includen

Beitrag von seatfriend »

Ok. Danke,

Wenn ich die dateien nur include, zeigt der mir bei der ausgabe eine weiße Seite an mit den Variablen...

Code: Alles auswählen

{BEISPIEL}

{BEISPIEL2} {TEXT1}

beispieltext

{ENDE}
(in etwa so)

Was mache ich trotzdem noch falsch?

Ich habe:

Code: Alles auswählen

include ('header.html');
echo 'beispieltext';
include ('footer.html');
(in etwa so)
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: mehrere Datein hintereinander includen

Beitrag von Frank1604 »

Da ich keine Ahnung habe wie deine Dateien die du includest aussehen, kann ich nur soviel sagen: Es scheint zu funktionieren.
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: mehrere Datein hintereinander includen

Beitrag von seatfriend »

der header und der footer sind overall_header.html und overall_footer.html aus dem Style subsilver2 des phpbb3.

Müsste der denn nicht eigentlich den Code in html auslesen und anzeigen?
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: mehrere Datein hintereinander includen

Beitrag von Frank1604 »

Wenn du die Dateien mal öffnest, wirst du sehen, das alles einwandfrei funktioniert. Er includet die Dateien und zeigt sie genau so an.

Vielleicht erklärst du was du vor hast, dann kann man dir sicher auch weiter helfen.
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: mehrere Datein hintereinander includen

Beitrag von seatfriend »

Ich habe eine Datei fürs phpbb3, in der sollen wenn man angemeldet ist und in einer bestimmten Gruppe ist Informationen angezeigt werden. Einfach erstmal bloß ne Textseite.

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden

//Funktion Gruppenzugehörigkeit laden
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

$gruppen_id = 7;  // zu überprüfende Gruppen ID (Gruppen ID 7 = Mitglieder  )
$benutzer_id = $user->data['user_id']; // zu überprüfender User (Der User, der diese Seite aufgerufen hat )
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true);  // Nun erfolgt die eigentliche Prüfung:

if ($user->data['user_id'] == ANONYMOUS)
{
        login_box();
}
else if ($is_in_group == true)
{
include_once ($phpbb_root_path . 'styles/aeroblack/template/overall_header.html');
echo 'in Gruppe';
include_once ($phpbb_root_path . 'styles/aeroblack/template/overall_footer.html');
}
else
{
include_once ($phpbb_root_path . 'styles/aeroblack/template/overall_header.html');
echo 'nicht in Gruppe';
include_once ($phpbb_root_path . 'styles/aeroblack/template/overall_footer.html');
}

?>
Soweit so gut. Da ich php-Quereinsteiger bin und keine Ahnung von Templates habe wollte ich das ganze gleich so ausgeben 8über die php). Das habe ich mehrfach schon ähnlich gemacht und es hat funktioniert. allerdings waren die Seiten da einfacher, bzw ich habe in einer php-Datei html mit ausgegeben.

Die Weiterleitung zur login-Box funktioniert bereits.
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: mehrere Datein hintereinander includen

Beitrag von Frank1604 »

Ich denke du gehst den falschen Weg. Soweit ich dich verstanden habe, möchtest du eine eigene Seite im phpBB3 erstellen. Dazu gibt es eine Anleitung: http://wiki.phpbb.com/display/MODDOCS/A ... stom+pages
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: mehrere Datein hintereinander includen

Beitrag von seatfriend »

soweit klar.

später soll jedoch statt dem Text "in der Gruppe" eine Upload-PHP-Datei ausgefürhrt werden:

Code: Alles auswählen

<?php

<?php
extract($_GET);
extract($_POST);
############################################################################
#  Data Uploader
#  Orig. Autor: mylittlehomepage.net
#		Lizenz: GNU GPL
#  Adaption: Reynhard Boegl for kick-image.at
#  Free Download: http://www.kick-image.at > WEBTOOLS
###########################################################################

###########################################################################
#  Einstellungen:
###########################################################################

# Pfad des Zielordners - benötigt Datei-Schreibrechte !!!!
$upload_dir = "uploads";

# maximale Dateigröße in kb
$max_file_size = 50000;

//# erlaubte Dateitypen - möglich: 'image/jpeg','image/pjpeg','image/gif','image/png','text/plain','text/html'
$accepted_file_types = array ('image/jpeg','image/gif','image/png','file/zip','file/rar');

//# erlaubte Dateiendungen - möglich: 'jpg','jpeg','gif','png','txt','html','htm'
$accepted_file_extensiones = array ('jpg','jpeg','gif','png','zip','rar',);

# bei Bildern maximale Abmessungen
# Breite in pixel
$max_image_width = 2048;
# Höhe in pixel
$max_image_height = 1536;

# Bei Verwendung als Bilder-Upload > Thumbnail anzeigen: Höhe des Thumbnails angeben (in Pixel)
# Wenn leer wird nichts angezeigt!
$thumb_height = "30";

# Sprach-Einstellungen
$lang['title'] = 'Data Uploader - Bilder hochladen';
$lang['ersetzen_text'] = 'Bild/Datei ersetzen';
$lang['erlaubt'] = 'Erlaubte Dateitypen: jpg, jpeg, gif, png, zip und rar bis 50 MB Größe!';
$lang['upload_subm_button'] = 'Bild hochladen';
$lang['error_headline'] = 'Fehler:';
$lang['invalid_file_type'] = 'ungültiges Dateiformat ([file_type])';
$lang['invalid_file_extension'] = 'ungültige Datei-Erweiterung ([file_extension])';
$lang['file_too_large'] = 'Datei zu groß ([size] KB)';
$lang['image_too_large'] = 'Bild zu groß ([width] x [height])';
$lang['file_already_exists'] = 'die Datei <b>[file]</b> existiert bereits';
$lang['upload_successful'] = '<font size="5" face="arial">Die Datei </font><font face="arial" color=#FFFFFF size="5"><b>http:&#47;&#47;www.seatfriends-bautzen.de&#47;uploads&#47;[file]</b></font><font face="arial" size="5"> wurde erfolgreich hochgeladen!</font>';
$lang['upload_not_successful'] = '<b>Fehler:</b> Die Datei <b>[file]</b> konnte nicht gespeichert werden!';
$lang['load_up_another_file'] = "Ein weiteres Bild hochladen:";
$lang['content_list'] = "Der aktuelle Inhalt des Zielordners";
$lang['delete_file'] = 'Bild/Datei löschen';
$lang['delete_all'] = 'Alle Bilder/Dateien löschen';
$lang['delete_file_caution'] = ' konnte nicht gelöscht werden!';
$lang['delete_file_successful'] = ' wurde gelöscht!';
$lang['show_file'] = 'Bild/Datei öffnen/ansehen';
$lang['start_img_resizer'] = "Image Resizer starten";
$lang['head_img_resizer'] = "Nach Ende des Uploads";

###########################################################################
#  Sämtliche, zum Download zur Verfügung gestellten Dateien werden
#  von kick-image.at sorgfältig auf Viren und andere Schädlinge
#  überprüft. kick-image.at übernimmt jedoch keinerlei Haftung für
#  eventuell entstehende Schäden jeglicher Art, alle Downloads sind
#  freiwillig und auf eigene Gefahr!
###########################################################################

###########################################################################
#
#  Ab hier nichts mehr ändern!
#
###########################################################################
?>
<head>
<title><?php echo $lang['title']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>

<body>
<span class="sp2">
<?php
if (is_file("gallery_framework_menue.php")) { // wird nur im Gallery Framework benötigt
	include ("gallery_framework_menue.php");
}
?>

<h1><font color=#FFA00A>Uploader der Seatfriends-Bautzen:</font color></h1>


<?php

if (isset ($_FILES['probe']) && $_FILES['probe']['size'] != 0 && !$_FILES['probe']['error']) {
	unset ($errors);

	// extension ok?
	$exts = explode(".", basename($_FILES['probe']['name']));
	$file_extension = strtolower($exts[sizeof($exts) - 1]);
	if (!in_array($file_extension, $accepted_file_extensiones))
		$errors[] = str_replace("[file_extension]", $file_extension, $lang['invalid_file_extension']);
	// file size ok?
	if ($_FILES['probe']['size'] > $max_file_size * 1000)
		$errors[] = str_replace("[size]", number_format($_FILES['probe']['size'] / 1000, 0, ",", ""), $lang['file_too_large']);
	// if it's an image, image size ok?
	if (in_array($_FILES['probe']['type'], $accepted_file_types) && in_array($_FILES['probe']['type'], array (
			'image/jpeg',
			'image/pjpeg',
			'image/gif',
			'image/png',
			'image/bmp'
		))) {
		$image_info = getimagesize($_FILES['probe']['tmp_name']);
		if ($image_info[0] > $max_image_width || $image_info[1] > $max_image_width) {
			$lang['image_too_large'] = str_replace("[width]", $image_info[0], $lang['image_too_large']);
			$errors[] = str_replace("[height]", $image_info[1], $lang['image_too_large']);
		}
	}
	// filename already exists?
	if (!$ersetzen) {
		if (file_exists($upload_dir . "/" . basename($_FILES['probe']['name'])))
			$errors[] = str_replace('[file]', $_FILES['probe']['name'], $lang['file_already_exists']);
	}
	// if everything is ok load up the file:
	if (empty ($errors)) {
		if (move_uploaded_file($_FILES['probe']['tmp_name'], $upload_dir . '/' . basename($_FILES['probe']['name']))) {
			$ulsf = "yes";
			chmod($upload_dir . '/' . $_FILES['probe']['name'], 0644);
?><p class="success"><?php echo str_replace('[file]', '<a href="'.$upload_dir.'/'.$_FILES['probe']['name'].'">'.$_FILES['probe']['name'].'</a>',$lang['upload_successful']); ?></p>
   <?php

		} else {
?><p><?php echo str_replace('[file]', $_FILES['probe']['name'],$lang['upload_not_successful']); ?></p><?php

		}
	}
	// ...else show what's wrong:
	else {
?><p class="caution"><?php echo $lang['error_headline']; ?> <?php foreach($errors as $f) { ?><?php echo $f; ?><?php } ?></p><?php

	}
}
// show the upload form:
if (empty ($_FILES['probe']) || $_FILES['probe']['size'] == 0 || isset ($errors) || $ulsf) {
?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
  <b><?php echo $lang['erlaubt']; ?><br /><br /></b>
 <fieldset>
 <input type="file" name="probe" style="margin-bottom:5px;" /><br />
 <input type="checkbox" name="ersetzen" value="1" /> <?php echo $lang['ersetzen_text']; ?><br />
 <input id="dataupload" type="submit" name="submit-button" value="<?php echo $lang['upload_subm_button']; ?>" />
 </fieldset>
 </form>
 <?php

};
?>
<b>Der Upload-Pfad ist immer: http&#58;&#47;&#47;www.seatfriends-bautzen.de&#47;uploads&#47;"Name der gewünschten Datei mit Endung!"</b><br><br>

<h1 style="margin-top:20px;"><font color=#FFA00A><?php echo $lang['content_list']; ?> <span style="font-size:0.9em; font-weight:normal;">(<?php echo $upload_dir ?>)</span></font color></h1>

<table class="show_content_list">
<font color=#FFFFFF>

<?php

// show file-list
if (is_dir($upload_dir)) {
	if ($dh = opendir($upload_dir)) {
		while (($file = readdir($dh)) !== false) {
			if (is_file($upload_dir . "/" . $file)) {
				echo "<tr>\n";
				echo "<td><a href='$_SERVER[´PHP_SELF´]?loesche=$file' title='" . $lang['delete_file'] . "'><b>(X)</b></a></td>\n";
				echo "<td><a href='$upload_dir/$file' title='" . $lang['show_file'] . "'>$file</a></td>\n";
				if ($thumb_height) {
					echo "<td><a href='$upload_dir/$file' title='" . $lang['show_file'] . "'><img src='$upload_dir/$file' height='$thumb_height' alt='' /></a></td>\n";
				};
				echo "</tr>\n";
				$inhalt ="1";
			}
		}
		closedir($dh);
	}
}
?>
<font color=#FFFFFF face="arial">Der L&ouml;schen&#45Button &#40;X&#41; ist nur für den Administrator!</font><br><br>
</table>
</font color>


</html>
<br><br>
Da ich mich sehr schwer damit tue den Quelltext in php und template zu trennen, bin ich diesen Weg gegangen.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: mehrere Datein hintereinander includen

Beitrag von gn#36 »

Die Templates werden nur geparst, wenn du sie mit den Methoden des $template Objekts ausgibst. Du könntest die Ausgabe deines Skriptes per Ausgabepufferung ([php:ob_start], [php:ob_get_contents] und co.) in eine Variable schreiben und dann ein Template verwenden das so aussieht:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
{DEINE_VARIABLE}
<!-- INCLUDE overall_footer.html -->
Du schreibst die gepufferten Daten per $template in die Variable und gibst dann das Template aus. Innerhalb deines Skriptes musst du dafür nichts umbauen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“