 |
06.04.2006, 14:22
| Nach oben
#1 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
| Fehlermeldung bei include einer bestimmten Datei
Moin
ich habe mich heute wiedermal an einer PHP-Version meiner Seite versucht, in die ich auch ein auf dem Server liegendes (nicht selbst programmiertes) Newssystem intergireren will. Funktioniert per DIVs und funktioniet auch eigentlich so weit, bis ich versuche die index.php-Datei des Newssystems einzufügen. Dann liefert er mir anstelle des Newssystems folgende Fehlermeldung: Wunderlicherweise funktioniert eben jene /news/index.php -Datei astrein, wenn man sie so im BRowser aufruft.
Der Quelltext der Indexdatei, über die das Newssystem eingebunden werden soll ist folgender: PHP-Code:
<html> <head> <title>The-Bookworm.de</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <link rel="stylesheet" type="text/css" href="styles.css"> </head>
<body>
<div id="head"> <br> </div>
<div id="left"> <br> </div>
<div id="content"> <? include ('http://www.the-bookworm.de/Site/news/index.php'); ?> </div>
<div id="right"> <br> </div>
<div id="foot"> <br> </div>
</body>
</html> Ihr seht, ich include es - ganz einfach - per include. So, und nun der Quelltext der angeblich fehlerhaften Datei: PHP-Code: <?php
require("pnews_main.php"); $pagetitle.=" - Aktuelle News"; require("kopf.php");
//Willkommen Text if ( $pset_news['welcome'] != "" ) { if ( $pset_news['welcomeview'] == 1 ) { echo $pset_news['welcome']; } else { if ( $_SESSION['welcomenews'] != 1 ) { echo $pset_news['welcome']; $_SESSION['welcomenews'] = 1; } } }
$showkat = $_REQUEST['showkat'];
//Head anzeigen if ( $pshowhead !=0 ) { include("head.php"); }
//Doooh machmer zwei Templates $TNewsHead = new Template("./tpl/news_head.html"); $TNewsRow = new Template("./tpl/news_row.html");
//Lasst uns hier die Kategorien für die Auswahl zusammenstellen $sqlbefehl= "Select kategorie,count(id) as anzahl FROM $tab_news Where status='view' group by kategorie order by kategorie"; $getkat = mysql_query($sqlbefehl, $serverid); while ($kategorie = mysql_fetch_array ($getkat)) { if ($kategorie[kategorie] == $showkat) { $kat_select_options = $kat_select_options."<option selected value=\"$kategorie[kategorie]\">$kategorie[kategorie] ($kategorie[anzahl])</option>"; } else { $kat_select_options = $kat_select_options."<option value=\"$kategorie[kategorie]\">$kategorie[kategorie] ($kategorie[anzahl])</option>"; } }
//wir legen einen Seitentitel fest, das ist der Newstitel bei Einzelanzeige if ($_REQUEST['shownews'] != "") { $sqlbefehl="Select titel from $tab_news Where id = '".intval($_REQUEST['shownews'])."'"; $gettitel = mysql_query($sqlbefehl,$serverid); $news=mysql_fetch_array($gettitel); $pagetitle = $pagetitle." - ".htmlspecialchars($news['titel']); //Hit Count $sqlbefehl = "Update $tab_news Set Counter=Counter+1 Where id = '".intval($_REQUEST['shownews'])."'"; @mysql_query($sqlbefehl,$serverid); }
//News Head ausgeben eval($TNewsHead->TemplateVar("tpl_news_head")); echo $tpl_news_head;
//echo $HTTP_USER_AGENT;
if ($viewticker == 1 and strstr($HTTP_USER_AGENT,"MSIE") ) { echo "<table border=\"0\" cellspacing=1 cellpadding=2 width=\"100%\" class=\"info\"><tr><td align=\"center\" colspan=2>"; require("ticker.php"); echo "</td></tr><tr></tr></table>"; }
// Ausgabe der Datensätze :::::::::::::::::::::::::::::::::::::::::::::::::::::
if ($_REQUEST['shownews'] != "") { $sqlbefehl= "Select n.id,titel,news,n.time,kategorie,n.author,name,allowkom,u.nickname,u.email,newsformat,n.catimages FROM $tab_news n left join $tab_user u on u.id=n.author where n.id = '$_REQUEST[shownews]'"; } else { $zeit=time(); $sqlbefehl= "Select n.id,titel,news,n.time,kategorie,n.author,name,allowkom,u.nickname,u.email,newsformat,n.catimages FROM $tab_news n left join $tab_user u on u.id=n.author where n.kategorie like '%$showkat' and n.status='view' and n.time < '$zeit' order by n.time DESC limit $frontpagenews"; }
$ergebnis = mysql_query($sqlbefehl, $serverid); echo mysql_error($serverid); $newscounter = 0;
while ( $news = mysql_fetch_array ($ergebnis)) { //News anzeigen -> Anpassen $news[titel]=stripslashes($news[titel]); $news[time] =date("d.m.Y, H:i",$news[time]+$time_offset); if ($news[author] == 0 or $news[nickname] == "") { $news[autor] = stripslashes($news[name]); } else { $news[autor] = "<a href=\"mailto:$news[email]\">$news[nickname]</a>"; }
//Kategoriebilder $catimg = ""; if ( $catimages == 1 and $news['catimages'] == 1 ) { $catfile = "./catimg/$news[kategorie].gif"; if (file_exists($catfile) ) { $catimg = "<img src=\"$catfile\" border=\"0\" hspace=\"4\" vspace=\"4\" align=\"left\"> "; } $catfile = "./catimg/$news[kategorie].jpg"; if (file_exists($catfile) ) { $catimg = "<img src=\"$catfile\" border=\"0\" hspace=\"4\" vspace=\"4\" align=\"left\"> "; } $catfile = "./catimg/$news[kategorie].png"; if (file_exists($catfile) ) { $catimg = "<img src=\"$catfile\" border=\"0\" hspace=\"4\" vspace=\"4\" align=\"left\"> "; } }
if ( $newscounter < $pset_news[morefrom] or isset($_REQUEST['shownews']) ) { $news[news] = formatnews($news['news'],$news['newsformat']); } else { if (strpos($news[news],"<more>")) { $cutposition = strpos($news['news'],"<more>"); $news['news'] = substr($news['news'],0,$cutposition); $news['news'] = formatnews($news['news'],$news['newsformat'])."... <img src=\"news.gif\" border=\"0\" align=\"absmiddle\"> <a href=\"index.php?shownews=$news[id]\">mehr<a>"; } else { $news['news'] = formatnews($news['news'],$news['newsformat']); } }
//Links : $sqlbefehl= "Select name,url,target FROM $tab_links where newsid='$news[id]' order by name"; $getlinks = mysql_query($sqlbefehl, $serverid); unset($news_links); unset($news_link_list); if (mysql_num_rows($getlinks)>0 ) { $news_links = "Links zum Thema:<br>"; $news_link_list= "Links zum Thema: "; while ( $newslink = mysql_fetch_array ($getlinks)) { $news_links = $news_links."<img src=\"news.gif\" border=\"0\" align=\"absmiddle\"> <a href=\"".htmlentities($newslink['url'])."\" target=\"".$newslink['target']."\">$newslink[name]</a><br>"; $news_link_list = $news_link_list." <a href=\"".htmlentities($newslink['url'])."\" target=\"".$newslink['target']."\">$newslink[name]</a> - "; } $news_link_list = substr($news_link_list,0,(strlen($news_link_list) -2)); } //Kommentare if ( $news['allowkom'] != 0 ) { $counter = mysql_query("SELECT id FROM $tab_newskom where newsid = $news[id]"); $eintraege = mysql_num_rows($counter); $komlink= " <a href=\"newskom.php?newsid=$news[id]\">$eintraege "; if ( $eintraege==1) { $komlink .= "Kommentar"; } else { $komlink .= "Kommentare"; } $komlink .= "</a> "; } else { $komlink= "-"; } eval($TNewsRow->TemplateVar("tpl_news_row")); $newscounter++; }
echo $tpl_news_row;
// ################## Fusszeile ################################### echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" width=\"100%\" class=\"content\"> <tr><th colspan=\"2\" class=\"head\"><font size=\"1\"> Optionen</font></th></tr> <tr><td colspan=\"2\" align=\"center\" class=\"left\"><font size=\"1\"> [ <a href=\"archiv.php\">Archiv</a> | <a href=\"topposter.php\">Top Poster</a>"; if ( $allowsubmit == 1 ) { echo " | <a href=\"submitnews.php\">Submit News</a> "; }
echo " | <a href=\"admin.php\">Admin</a> ]</font></td></tr></table> <font size=\"1\" class=\"body\">$pnews_copyright</font>"; require("fuss.php");
?> Der Fehler soll angeblich in der ersten Zeile liegen, aber die beginnt ja nur die PHP Datei.
Ich habe alles, was mir einfiele (Tippfehler etc.) überprüft und habe nichts gefunden. Auch wenn ich eine andere PHP-Datei einbinde, funktioniert es wunderbar. Es muss wohl irgendwie an diesem Newssystem (von powie.de) liegen, aber mir fällt einfach nicht ein, wo der Fehler liegt? Vorallem, dass er mir einen String meldet, wo keiner sein sollte....
Hoffe, ich könnt mir helfen
Bye
Bookworm
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
06.04.2006, 15:29
| Nach oben
#2 | | Martin Eisengardt
Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
php ist ein String
Stichwort short_open_tags? (ini) Mach mal spasseshalber in der ursprünglichen Datei aus dem <? ein ordentliches <?php
|
| |
06.04.2006, 17:33
| Nach oben
#3 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
|
Habe ich. Effekt gleich Null. So what to do?
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
06.04.2006, 17:48
| Nach oben
#4 | | Martin Eisengardt
Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Bei mir klappts (bis auf die Fehler wegen DB, aber geschenkt). Das ist wirklich die komplette Fehlermeldung? Nicht was mit "eval'd code" oder sowas?
|
| |
06.04.2006, 18:26
| Nach oben
#5 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
|
Guck mal in den Anhang... SIeht nicht danach aus, würde ich sagen.
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
06.04.2006, 19:05
| Nach oben
#6 | | Benjamin Klaile
Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Komisch.  .. Was ist denn, wenn in der Datei gar nichts drin steht?
|
| |
06.04.2006, 22:44
| Nach oben
#7 | | Daniel Golowin
Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
@Bookworm
Ich hab jetzt mal dein Fehler reproduziert.
Wenn du jetzt in der news/index.php Datei dein ertsellten HTML Code direkt abspeicherst. Also der Inhalt der Datei nicht mit <?php ... beginnt, sondern mit <?xms ... (also HTML Code), dann kommt genau die selbe Meldung.
Für mich heißt das, dass der HTML Code schon generiert wird bevor er geladen (included) wird, wodurch der Fehler entsteht. Warum das jetzt aber so ist kann ich leider nicht sagen. Hoffe aber, dass es dir bei der Lösung hilft!
EDIT: Ausserdem hast du da einen Denkfehler drin!
Dein News Script erzeugt eine komplette Seite, also mit allen HTML, HEAD und BODY Tags. Wenn du jetzt die Datei so ladest, dann hast du am Ende folgende Struktur: HTML-Code: <HTML>
<HEAD> ... </HEAD>
<BODY>
...
<!-- Hier kommt jetzt dein eigefügtes Inhalt -->
<HTML>
<HEAD> ... </HEAD>
<BODY>
...
</BODY>
<HTML>
<!-- ENDE des eingefügten Inhalts -->
...
</BODY>
</HTML> Sowas funktioniert nur mit IFRAMES. Du soltest den Script anpassen, sonst funktioniert es so nicht richtig.
Geändert von dago (06.04.2006 um 23:07 Uhr).
|
| |
07.04.2006, 12:39
| Nach oben
#9 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
|
@dago:
gut, okay, da könnte echt der hase im pfeffer liegen.... aber was soll ich dagegen tun? ich darf meines wissens ganricht so einfach in den datein des newssystems rumspielen.... theoretisch müsste ich die direkte auslese der datenbank in meiner datei machen, ohne dass ich die index-datei des systems verwende. ich habe dummerweise aber keine ahnung von mysql, weil mein phpmyadmin nicht funktioniert und ich mich somit damit nicht auseinander setzen kann.... aber ich schu mir den sh** nochmal an, vll kommt mir die erleuchtung... bis dahin mal danke
so long
bookworm
//edit: so, ich habe jetzt mal den php quellcode der newsseite genommen und direkt in meiner normalen index-datei verwendet. funktioniert wunderbar, jetzt funkt nur noch das css dazwischen... aber das dürfte ich dann noch selbst hinbekommen... danke für die tipps, ich glaub ohne euch wär ich vo der wand gestanden...
bye
booki
p.s. ihr könnt den thread meinetwegen schließen oder offenlassen ka^^
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Geändert von Bookworm (07.04.2006 um 13:22 Uhr).
|
| |
08.04.2006, 17:35
| Nach oben
#10 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
|
Sorry wegen des doppelposts, aber: hat einer von euch eine idee, wie ich den code doch in eine externe datei auslagern kann, so geht mir das nämlich ehrlich gesagt ziemlich auf den wecker.
slb
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
08.04.2006, 22:01
| Nach oben
#11 | | Erfahrener Benutzer
Registriert seit: 08.01.2006 Ort: Mannheim
Beiträge: 483
|
ja, wieder mittels include und angepasstem Code diesmal.
|
| |
09.04.2006, 00:27
| Nach oben
#12 | | Martin Eisengardt
Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Wenn du mittels "http://...." die Datei includest, wird nicht die Original-Datei, sondern die geparste Datei eingefügt. Also das, was du als Ergebnis erhälst, nicht der PHP-Source. Es ist auch logisch, dass die Datei, wenn du sie eins zu eins reinkopierst, problemlos funktioniert, oder wenn du sie im Browser direkt aufrufst.
Liegen die beiden Dateien aufm gleichen Server, dann mache ein include auf lokale Pfade (ohne http:// usw.)
Wenn die nicht aufm gleichen Server liegen, dann packe sie auf den gleichen Server...
|
| |
10.04.2006, 18:50
| Nach oben
#13 | | n00b -.-
Registriert seit: 10.11.2005
Beiträge: 318
|
doll.... nagut, ist egal.... ich schuster es mir schon hin
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| | |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | | | | Themen-Optionen | Thema durchsuchen | | | |
Forumregeln
| Es ist dir nicht erlaubt, neue Themen zu verfassen. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +2. Es ist jetzt 08:30 Uhr.
|