Wie kriege ich diesen Fehler weg?

lp-chester

Erfahrenes Mitglied
Hallo.
Ich bin ein blutiger Anfänger in Sachen PHP. Ich habe bereits ein "Eingabeformular" in meine Seite eingebaut. Wenn man auf abschicken klickt, bekomme ich folgende Fehlermeldung:
************
Template Error: set_file: For handle ArticlePage filename is empty.
Halted.

******************

Mein Quellcode sieht so aus:

PHP:
<link rel="Stylesheet"  href="../style.css">
<?
        include ("template.inc");
        include ("config.php");

	$summary_template = "t_summary.html";
	$max_summary = 5;

	function summary_page ($subject, $date, $summary, $article_id)
	{
		global $summary_template;
        	$t = new Template();
        	$t->set_file("SummaryPage", $summary_template);
		$article_url = "article_".$article_id.".html";
		$date = nl2br($date);
		$summary =  nl2br($summary);	 
		$t->set_var( array(
				"subject" => $subject,
				"date"    => $date,
				"summary" => $summary,
				"article_url" => $article_url
				));
		$t->parse("Summary", "SummaryPage");
		return $t->get_var("Summary");
	}

	function main_page ($subject, $date, $summary, $article_id, $body)
	{
		global $article_template;

                $t = new Template();
                $t->set_file("ArticlePage", $article_template);
                $article_url = "article_".$article_id.".html";
                $date = nl2br($date);
                $summary =  nl2br($summary);
                $body =  nl2br($body);
                $t->set_var( array(
                                "subject" => $subject,
                                "date"    => $date,
                                "summary" => $summary,
                                "body" => $body,
                                "article_url" => $article_url
                                ));
                $t->parse("Article", "ArticlePage");
                return $t->get_var("Article"); 
	}

	function add_article($filename, $news)
	{

		if(file_exists($filename)){
			$fh = fopen($filename, "r");
			$old_news = fread($fh, filesize($filename));
			fclose($fh); 
		}

		/* TODO: Multipage articles
			preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
		
			if( count($matches[0]) >= $max_summary){
				$oldfilename = $filename.($matches[0][0]+1);
			} 
		*/

		$fh = fopen($filename, "w");
		$news = stripslashes($news);
		fwrite($fh, "\n<!--ARTICLE-->\n$news $old_news");
		fclose($fh);
	}

?>

<?
	if(strcmp($subject, "")){	
		if(!(strcmp($passwd, $password))){	
			add_article("article_summary.html", summary_page($subject, $date, $summary, $article_id));
			add_article("article_$article_id.html", main_page($subject, $date, $summary, $article_id, $body));
			echo "<p> Article has been added! <p>";
		}else{
			echo "<p><b> Password is wrong! </b>";
		}
	}
?>
<form action="news.php" method="post">
<table width="351" border="0">
<tr> <td width="345"> Passwort:<br> <input type="password" name="passwd" size="30" style="background-color: #e3ebf8; border: 1px solid #000080; font-family: Comic Sans MS; font-size: 12px; color: #000080;"> </td></tr>
<tr>
  <td>Article ID:&nbsp;<? echo date("Y_m_j_is"); ?>
      <input type="hidden" name=article_id value=<? echo date("Y_m_j_is"); ?> size=30>
  </td>
</tr>
<tr> <td> &Uuml;berschrift:<br> <input type="text" name="subject" size="57" style="background-color: #e3ebf8; border: 1px solid #000080; font-family: Comic Sans MS; font-size: 12px; color: #000080;"> </td></tr>
<tr> <td> Datum/Verfasser/etc:<br> <textarea name="date" cols="20" rows="2" class="tworow" style="background-color: #e3ebf8; border: 1px solid #000080; font-family: Comic Sans MS; font-size: 12px; color: #000080;"><? echo date("M j, Y\n"); ?>Author: </textarea> </td></tr>
<tr> <td> Text:<br> <textarea name="summary" cols="55" rows="7" wrap="OFF" style="background-color: #e3ebf8; border: 1px solid #000080; font-family: Comic Sans MS; font-size: 12px; color: #000080;"></textarea> </td></tr>
</table>
<input type="submit" name="submit" value="Eintragen" style="background-color: #e3ebf8; border: 1px solid #000080; color: #000080;">
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>
</body>
</html>

Versucht mir bitte zu Helfen.

mfg LP-Chester
 
*schrei*

Ich kann dir helfen *arg*.

Lern PHP, und fang bei einfachen Sachen an, und vorallem versuchs nicht gleich mit Templates, ich kenne so viele Leute (gute Programmierer) die sich mit Templates schwer tun. Also überleg dir das nochmal.....

Sorry wenn ich nicht bei der Fehlerbehebung helfen konnte.

#Edit

Vielleicht existiert aber auch einfach das Template nicht oder du hast den Dateinamen falsch geschrieben (t_summary.html)?!
 
Ich würde sagen esl iegt an der Zeile:

PHP:
$t->set_file("ArticlePage", $article_template);

Du versucht die Variable $article_template zu übergeben, die leer zu sein scheint.
Üebrprüfen köntnest du das mit einem var_dump($article_templaet) vor dem $t->set Aufruf.
So wie der Code aussieht existiert diese Variable, welche du per global aus dem globalen Namespace versucht zu holen nicht.
Denn gleiches hast du auch bei summary_page gemacht, dafür existiert allerdigns auch eine globale Variable...

@BSA: Ich kenne genug die sich damit nicht schwer tun. Und jetzt? ;)
 
Zurück