Menü wird nicht angezeigt

svennson

Erfahrenes Mitglied
hi,
hab ein bisschen mit rumprobiert wie man so eine Seite ohne Frames schön gestallten könnte, nur leider komm ich noch nichtmal soweit, da das Menü erst gar nicht erstellt wird.

Wäre schön wenn mir jemand sagen kann, woran das liegt... :p

Hier der Quelltext:
PHP:
<?php
//enthält alle Angebane zum Erstellen eines Linkes
class newLink{

var $ver;//link	
var $text;//linktext	
var $methode;
var $target;//zielfenster: _self

function newLink($str){
$lines = explode(",",$str);
$this->ver = $lines[0];
$this->text = $lines[1];
$this->methode = $lines[2];
$this->target = $lines[3];
}
}

function openLinkfile($file){
$lines = file($file);
for($i=0;$i<=count($lines);$i++)
$aus[$i] = new newLink($lines[$i]);
return $aus;
}

function erstellLink($ver){
for($i=0;$i<=count($ver);$i++)
$html= '<a href="'.$ver[$i]->ver.'" target="'.$ver[$i]->target.'">'.$ver[$i]->text.'</a><br>';
return $html;
}

//Menü-Links 
$links = openLinkfile("seitenlinks.txt");
$linkhtml = erstellLink($links);
//Inhalt
if($_GET&&$_GET["link"]) {//wenn Link aus Menü aktiviert
  $aktinhalt = implode("", file($_GET["link"]));
}
else
  $aktinhalt = "Willkommen";


?>
<html>
<head>
<title></title>
</head>
<body>
<h3 align="center">Testseite</h3>
<table align="left">
<tr><div class=Links_txt><?echo $linkhtml;?></tr></div>
</table>
<table align="right"
>
<tr><div class=Inhalt_txt><?echo $aktinhalt;?><tr></div>
</table>
</body>
</html>
 
Hallo.
So wie ich das sehe, greifst du außerhalb der Klasse auf die Klasseninhalte zu,z.B.:$ver[$i]->target.
Meines wissens nach geht das nicht, da diese Variablen nur innerhalb der Klasse gültig sind. Baue die Funktionen entweder in die Klasse ein, oder mache sie global verfügbar! Also: global $var1,$var2,...
mb fanste
 
Was kommt denn bei einem var_dump($ver) raus?
Stehten da noch die Inhalte aller Arrayelemente bzw wichtiger hier, die Inhalte der Objekte die du im Array gespeichert hast?
Wenn nein liegt es daran, dass die Objekte gelöscht wurden und keine Kopie übergeben wurde.

Ich verstehe allerdings den Sinn dieses Objektes sowieso nicht. Da hätte auch ne "normale " Funktion gereicht.
Ich hätte es eher so gemaht das du ein Objekt hast, dem gibts du eine Datei aus der die Links gelesen werden und dann ne Methode die dir die gewünschten Links zurückliefert. Aber uach hier würde eine einzelne Funktion reichen, so wie ich diese Seite jetzt sehe.

Eine andere Sache, hier: $aktinhalt = implode("", file($_GET["link"]));
wäre ich vorsichtig. Da man sofern php selbst nicht ordentlich gesichert ist bzw. das Serverumfeld du Injections tür und Tor öffnest. So hätte ich bei einer Angabe von /etc/passwd für link den Content der Passwd Datei des Linuxservers...
Daher würde ich eine Liste aller gültigen Linkfiles machen, oder diese generieren anhand aller Datei aus einem Bestimmten Ordner x und dessen Inhalt mit $_GET['link'] vergleichen.
 
Zurück