PHP Code in einer externen Datei?

B

Blümchen

Hallo euch allen,

heute morgen im Büro fragte mich ein Kollege warum ich eigentlich den ganzen PHP Code immer mit in die Datei schreibe. Da wurde die Datei viel zu groß. Hmm ich fragte ihn dann hmm wie soll ich das denn sonst machen, denn ich brauch den doch in der Seite. Mein Kollege meinte dann nur, ach Blümchen das kannst du alles in eine externe Datei jeweils schreiben und dann jedes mal wenn du wieder was machen willst einfach einbinden. Darauf hin fragte ich Ihn dann hmm und wie soll das denn gehen. Dann meinte er nur das kann er mir jetzt nicht mal so eben einfach erklären. Leider sehe ich den Kollegen erst wieder in zwei Wochen.

Nun wollte ich mal euch fragen ob Ihr mir da helfen könnt wie man so was machen kann. Gehen wir mal von einem Gästebuch aus.

Bis jetzt habe ich das immer so gemacht:

posting_gb.php ( damit wird das ganze in die DB eingetragen )

PHP:
<?php
//Konfigurations Datei einbinden
include "../data/config.php";
include "../configs/functions.php";
session_start();
if(isset($_GET["deleteid"]) AND $_SESSION["rights"] == "admin")
{
if(is_numeric($_GET["deleteid"]))
{
$sql = "DELETE FROM gastebuch
WHERE id = ".$_GET['deleteid'];
 mysql_query($sql) OR die(mysql_error());
}
} 
if(!empty($_POST))
{
$sql = "INSERT INTO gastebuch
(
name,
email,
url,
betreff,
text,
IP,
betriebsystem,
woher_kommt_user,
welche_software,
welcher_server,
datum
)
VALUES
(
'" . addslashes($_POST["name"]) . "',
'" . addslashes($_POST["email"]) . "',
'" . addslashes($_POST["url"]) . "',
'" . addslashes($_POST["betreff"]) . "',
'" . addslashes($_POST["text"]) . "',
'" . $_SERVER["REMOTE_ADDR"]. "',
'" . $_SERVER["HTTP_USER_AGENT"]. "',
'" . $_SERVER['HTTP_REFERER']. "',
'" . $_SERVER['SERVER_SOFTWARE']. "',
'" . $_SERVER['SERVER_NAME']. "',
NOW()

)
";
mysql_query($sql) OR die(mysql_error());
		
header("Location: http://www.meine_seite.de/gaestebuch.php");
exit;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="95%"  border="0" align="center">
<tr>
<td height="124"><form name="form1" method="post" action="posting_gb.php">
<table width="100%"  border="0">
<tr bgcolor="#efefef">
<td width="22%" height="28"><p>Name:</p></td>
<td width="78%"><input name="name" type="text" id="name" size="40"></td>
</tr>
<tr bgcolor="#efefef">
<td height="27"><p>WebSeite:</p></td>
<td><input name="url" type="text" id="url" size="40"></td>
</tr>
<tr bgcolor="#efefef">
<td height="29"><p>eMail:</p></td>
<td><input name="email" type="text" id="email" size="40"></td>
</tr>
<tr bgcolor="#efefef">
<td height="26"><p>Betreff:</p></td>
<td bgcolor="#efefef"><input name="betreff" type="text" id="betreff" size="40"></td>
</tr>
<tr bgcolor="#efefef">
<td height="38"><p>Nachricht:</p></td>
<td><textarea name="text" cols="40" rows="4" id="text"></textarea></td>
</tr>
<tr bgcolor="#efefef">
<td height="38">&nbsp;</td>
<td><input type="submit" name="Submit" value="&gt;&gt; eintragen"></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>

gaestebuch.php ( damit werden die Einträge auf der Seite dann dargestellt )

PHP:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Gästebuch</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Stil10 {font-family: Arial, Helvetica, sans-serif; color: #000000; }
.Stil25 {font-family: Arial, Helvetica, sans-serif; color: #FFFFFF; font-weight: bold; }
.Stil7 {font-family: Arial, Helvetica, sans-serif}
.style3 {color: #000000}
.style6 {color: #000000; }
-->
</style>
</head>

<body>
<table width="95%" align="left">
<tr>
<td height="198">
<?php
$sql = "SELECT
id,
name,
email,
url,
text,
betreff,
DATE_FORMAT(datum, '%Y-%m-%d') AS datum,
DATE_FORMAT(datum, '%H:%I') AS uhrzeit
				
FROM
gastebuch
ORDER BY
datum DESC
";
$return = mysql_query($sql) OR die(mysql_error());
?>
<?php
while($_data = mysql_fetch_assoc($return))
{
?>
<table width="95%"  border="0">
<tr>
<td><table cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td colspan="2" height="12"><div align="left"><img src="../img/grafiken/nachricht.jpg" height="12" width="128"></div></td>
</tr>
<tr>
<td background="pixel.jpg" bgcolor="#A00608" width="1"><img src="fake.gif" height="1" width="1"></td>
<td width="100%"><table width="100%">
<tbody>
<tr>
<td align="left"><table width="98%"  border="0" align="center">
<tr>
<td><p><span class="Stil25"><span class="style6"><?php echo $_data['betreff']; ?></span></span></p>
<p><span class="Stil7"><font color="#000000" size="2"><span class="Stil10"><font size="2"><font size="1"><?php echo htmlentities(stripslashes($_data['text'])); ?></font></font></span></font></span><br>
<br>
<span class="Stil7 style6"><span class="Stil7"><font size="2"><font size="1">Autor: <?php echo $_data['name']; ?>&nbsp;&nbsp; Email: <font size="2"><font size="1"><?php echo $_data['email']; ?> <span class="style3">
<?php 
if($_SESSION['rights'] == "admin")
{
?>
<a href="<?php
echo $_SERVER["PHP_SELF"];
echo "?deleteid=".$_data['id'];
?>"><img src="../img/grafiken/del.gif" width="15" height="14" border="0"></a>
<?php
}
?>
</span></font></font></font></font></span></span> <br>
<br>
</p></td>
</tr>
</table></td>
</tr>
</tbody>
</table></td>
</tr>
<tr background="pixel.jpg" bgcolor="#A00608">
<td height="1" colspan="2" background="pixel.jpg"><img src="fake.gif" height="1" width="1"></td>
</tr>
</tbody>
</table>
<br></td>
<?php
}
?>
</tr>
<tr>
<td height="23"><div align="center"><a href="posting_gb.php" class="style6">[eintragen]</a></div></td>
</tr>
</table></td>
</tr>
</table>
<p>&nbsp;</p>

</body>
</html>

So nun ist meine Frage. Wie kann ich das nun so machen, dass ich den ganzen Code auslagere und wie muss ich das dann wieder einbinden und vor allem was muss ich dann bei Action schreiben?

Ich hoffe ich konnte das erklären, dass Ihr das alle verstanden habt. Wurde mich über eine antwort freuen.

Gruß Blümchen
 
Zuletzt bearbeitet von einem Moderator:
also gaaanz genau hab ich deine Frage nicht verstanden...
Du kannst aber durchaus weitere scripte in ein anderes per include('extern.php') einfügen.

Ich nutzedas ganze dann wie folgt:

header.php:
Code:
<html>
<head>
<title>TeCe</title>
<meta http-equiv='Content-Style-Type content=text/css'>

<link href=/styles/<?=$_SESSION[style]?>.css rel=stylesheet type=text/css>
</head>
<body marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>
<table cellpadding=0 cellspacing=0 align=center width=600>
	<tr>
		<td>

footer.php:
Code:
			</td>
		</tr>
	</table>
</body>
</html>

index.php:
Code:
<?
include('header.php');
echo "Hallo, hier ist der schick zentrierte Inhalt";
include('footer.php');
?>

Wenn wir's noch etwas brauchbarer machen wollen:

functions.php:
Code:
<?
//erstmal nur eine Funktion die man öfters braucht:
function showmenu() {
echo "<a href=?impressum>Impressum</a><a href=?portfolio>portfolio</a> und andere schicke Men&uuml;punkte...";
}
?>

index.php:
Code:
include('functions.php');
include('header.php');
showmenu(); //unsere Funktion aus functions.php
echo "Hallo, hier ist der schick zentrierte Inhalt";
include('footer.php');
?>

Du könntest dann sogar die Funktion showmenu schon in der header.php aufrufen, da ja erst der Inhalt von functions.php included wird und erst dann die header.php...
Arbeitest du an einem strukturiertem Projekt bieten sich die seit PHP5 aufgebesserten Klassen an...aber dazu vielleicht ein andernmal :)
 
Hallo,

danke für deine Antwort. Aber leider hast du mich ein wenig falsch verstanden. Es geht nur darum dass ich den PHP Code in eine andere Datei bekommen.

Er meinte dass dann das so aussieht:

PHP:
 funktionen.inc.php

da könnte dann der Code rein und dass ich den dann einfach wieder einbinde wenn ich den brauch. Aber wie muss ich das dann bei Action und so machen das verstehe ich nicht so ganz.

Hast du nun verstanden was ich meine?

Gruß Blümchen
 
sorry, nein, noch immer nicht verstanden :)
im 2. Beispiel hab ich doch eine functions.php die nur bestimmte Funktionen bereitstellt...

PHP:
<?php
//Konfigurations Datei einbinden
include "../data/config.php";
include "../configs/functions.php";
session_start();
if(isset($_GET["deleteid"]) AND $_SESSION["rights"] == "admin")
{
if(is_numeric($_GET["deleteid"]))
{
deleteid($_GET["deleteid"]); // Funktion in deiner ../configs/functions.php
//...

../configs/functions.php:
PHP:
//...
function deleteid($id) {
mysql_query("DELETE FROM gastebuch WHERE id=$id") OR die(mysql_error());
//...
 
Hallo,

es geht mir eigentlich hauptsächlich um den Code mit dem Eintragen also das was in der Datei posting_gb.php steht da wollte ich einfach mal wissen wie ich das in eine andere Datei setzten kann und wie ich das dann wieder einbinden muss und vor allem wie ich dann das wieder anwenden muss.

Aber ich denke du verstehst immer noch nicht was ich meine oder?

Gruß Blümchen
 
scheinbar nicht :-(
Ich übergeb den Fall an den nächsten Frauenversteher ;-)
 
Hallo,

was hast du denn nicht verstanden? Ich habe doch nun alles so ausführlich geschrieben oder? Aber na ja ich hoffe dass jemand anderes das versteht.

Gruß Blümchen
 

Neue Beiträge

Zurück