Verzweifelt PHP-TXTDatei-Inhalt(e) in Tabelle anzeigen

Sojabone

unregistriert
Thread Starter
Dabei seit
22.01.2004
Beiträge
258
Reaktionspunkte
0
hi Leute ich versuche hier gerade ein wenig PHP zu nutzen nur habe ich keinerlei schimmer wie ich wohl eine einfache funktion in php mache ...

<tr bgcolor="#CCCCCC">
<td colspan="3"><a href="page.php?id=&content=news">News</a> <a href="page.php?id=band">Band</a> Media GuestBook Links Kontakt </td>
</tr>
<tr bgcolor="#990000">
<td colspan="3"><div id="contentl"><?php if (empty ($id)) {include "news";} else {include "$id/$content";}?> <div></td>
</tr>

also es soll bei den beiden links jeweils in den unteren tabellenteil ein anderer inhalt geladen werden ... hab schon sämtliche sachen ausprobiert aber irgendwie raffe ich das nicht - derjenige den ich normal frage ist im urlaub ...

danke schonmal ...
 
Hi,

am besten lässt du dir mal die Variablen, die übergeben werden, mit echo ausgeben. Ich vermute, da kommt gar nichts an. In diesem Fall musst du die Variablen per $_GET auswerten.

Beispiel:
PHP:
$id = $_GET['id'];

Stichwort: register_globals
 
hmmm habe gerade nachgeschaut (google) was du mir vorgeschlagen hast ... ich steig da nicht durch ...

mir ist eben nur gerade schleierhaft was die "id" in der ausgabezeile bedeutet

=>id="contentl"><?php if (empty ($id)) {include "news";} else {include "$id/$content";}?>

denn wenn ich im link z.b.

"page.php?id=&content=news" die gleiche "id" angebe würde ich denken ok ... er läd den inhalt aus der txt-datei "news" in die position der gleichen "id" - mehr will ich ja nicht aber scheint doch nicht sooo einfach zu sein wie ich mir das denke
 
Also, im ersten Link übergibst Du die Parameter $id mit dem Wert "", also leer, und $content mit dem Wert "news".
Im Zweiten Link hast Du nur den Parameter $id mit dem Wert "band".

Bei der Ausgabe hast Du folgendes:
Wenn $id leer ist (ist der Fall beim ersten Link) bindest Du die Datei "news" ein.
Wenn $id belegt ist (zweiter Link) versuchst Du die Datei $content (also das was in $content steht), die im Verzeichnis $id liegt (Inahlt von $id) einzubinden. $content ist aber garnicht gesetzt.

Was Du wahrscheinlich willst sieht eher so aus:

<tr bgcolor="#CCCCCC">
<td colspan="3"><a href="page.php?content=news">News</a> <a href="page.php?content=band">Band</a> Media GuestBook Links Kontakt </td>
</tr>
<tr bgcolor="#990000">
<td colspan="3"><div id="contentl"><?php if (empty ($id)) {include "news.txt";} else {include "$content.txt";}?> <div></td>
</tr>

Ich habe Dir mal die Endung .txt an die Files gemacht. Wenn die Dateien wirklich keine Endung haben, nimms einfach wieder weg.

Wenn Du register_globals auf off hast, so wie lindic vermutet, dann ersetze $id durch $_GET['id']
 
Zuletzt bearbeitet von einem Moderator:
ich vergaß

aus dieser zeile läd er komischerweise den inhalt der "news" datei rein ... da am anfangslink kein inhalt angegeben ist ... nur eben nicht bei den beiden links
<?php if (empty ($id)) {include "news";} else {include "$id/$content";}?>
 
oh mann ich liebe dieses forum und die sehr hilfreichen leute ... ach ja meinen mac auch ...

@dms

wo finde ich das hier
"Wenn Du register_globals auf off hast, so wie lindic vermutet, dann ersetze $id durch $_GET['id']"
 
Sojabone schrieb:
oh mann ich liebe dieses forum und die sehr hilfreichen leute ... ach ja meinen mac auch ...
:)
Sojabone schrieb:
"Wenn Du register_globals auf off hast, so wie lindic vermutet, dann ersetze $id durch $_GET['id']"
In der php.ini steht der Eintrag für register_globals. Erstelle eine PHP-Datei mit folgender Zeile:
PHP:
<?php phpinfo(); ?>
und rufe diese Datei im Browser auf. Da steht relativ weit oben, wie die register_globals eingestellt sind.
 
also im moment arbeite ich auf nem server

das mit dem register_globals hat doch sicherlich was mit meinem rechner zu tun oder?

sorry ich hab weniger als null ahnung von php ...
 
register_globals ist eine Einstellung in der php.ini, der PHP-Konfigurations-Datei. Auf einem Shared-Space-Server wirst Du darauf höchstwahrscheinlich keinen Einfluss haben.
Diese Einstellung legt folgendes fest: Du kannst Variablen ja über verschiedene Methoden an ein Script weiterreichen. In Deinem Fall verwendest Du die Methode GET, also über die URL. Wenn register_globals auf on steht, brauchst Du Dir darüber keine Gedanken zu machen. Da dies allerdings ein paar Sicherheitsrisiken birgt, ist diese Einstellung auf vielen Servern auf off gestellt. Das heisst, Du kannst eine Variable, die Du in der URL per "variable=wert" übergeben hast nicht direkt über $variable abfragen. In Deinem Fall (GET) musst Du dann über das globale Array $_GET auf den Inhalt der Variable zugreifen. Also $_GET['id'] bzw. $_GET['content']. Damit bist Du immer auf der sicheren Seite, egal welche Einstellung der Server hat.
Wie lindic schon sagte, kannst Du über phpinfo() ganz einfach rausbekommen welchen Wert register_globals enthält.

Vielleicht hilft Dir auch dieser Thread weiter.
 
Hi und guten morgen,

@dms danke für die auführliche erklärung und den link!

habe gestern abend noch eine stunde ausprobiert und es tatsächlich geschafft das was ich wollte hinzubekommen (als vorlage diente eine page die ein freund erstellt hatte - gerade im urlaub!).
also die links sehen nun so aus:
<a href="page.php?id=page&content=news">News</a>
<a href="page.php?id=page&content=band">Band</a>
wobei id für einen unterordner steht in dem die txt dateien (news, band usw.) enthalten sind.

die ausgabe ist nun folgendermaßen:
<div id="content"><?php if (empty ($id)) {include "page/news";} else {include "$id/$content";}?></div>

hat jemand ne ahnung warum das nur per unterordner geht? nicht dass es mich stört aber es ist schon verwunderlich - naja wegen php muss ich eben noch ne menge lernen ...
was mir noch auffiel ist das in allen tutorials usw sehr viel mit rechenaufgaben (dynmaisches rechnen usw) gearbeitet wurde. klar php ist für solche dinge gemacht aber gibt es auch tutorials die solche themen behandeln die ich z.b. gesucht habe??

danke schonmal
 
So geht es sicherlich auch ohne Unterordner:

<div id="content"><?php if (empty ($content)) {include "news";} else {include "$content";}?></div>

id kannst Du dann in den Links natürlich weglassen.

Tutorials kenne ich nicht, sorry.
 
Zurück
Oben Unten