Clanwars-Script neue links in array hinzufügen

grasman

Mitglied
Hi!

Ich bin gerade dabei ein Clanwars-Script in PHP zu realisieren (ich muss dazu sagen dass ich recht neu bin in Sachen PHP).

Das Script ist in eine Indexseite eingfefügt, und über GET wird die Include-File (das Script) bestimmt (also mit http://blabla.de?section=clanwars).
Die Adressen sind in einem Array gespeichert, welches mit ?sections angesprochen/bestimmt wird. Das sieht so aus:

Code:
$secs = array(
'home'=>'sp_home.php',
'clanwars'=>'sp_clanwars_uebersicht.php',
'clanwar_eintragen'=>'sp_clanwars_eintragen.php',
'clanwar_add'=>'sp_clanwars_add.php',
'nopage'=>'sp_error.php');

Das Problem ist jetzt wenn ein neuer Eintrag in den Clanwars gemacht wird und damit automatisch eine neue Seite mit Details erstellt wird, muss in dieses Array (auf der Startseite) ein neuer Key eingetragen werden und ein neuer Wert. Bei meinem Script setzt sich der Dateiname aus Gegnerkürzel und Datum (um gleiche Dateinamen zu verhindern) zusammen, dieser Pfad ist jetzt der Wert des neuen Array-Eintrags und der Key soll nur das Datum sein. Damit ich die neuen Linkdaten im Array auf der Startseite verwenden kann habe ich das Array in einer Textdatei abgespeichert (mit serialize) in der alle neuen Einträge gesammelt werden:

Code:
if($chk != 0) {
$warfilename = 'war_data/'.$date.'_'.$enemy.'.php';
$linkfile = 'war_data/links.txt';
	if(file_exists($linkfile)) {
	$sData = implode("", file($linkfile));
	$vData = unserialize($sData);
	$newarr = array();
	$newarr[$date] = $warfilename;
	$aData = array_merge($vData, $newarr);
	$sData = serialize($aData);
	$filePointer = fopen($linkfile, "a");
	fwrite($filePointer, $sData);
	fclose($filePointer);
	} else {
	$aData = array();
	$aData[$date] = $warfilename;
	$sData = serialize($aData);
	$filePointer = fopen($linkfile, "w");
	fwrite($filePointer, $sData);
	fclose($filePointer);
	}
}

Das funktioniert eigentlich soweit - also die Einträge werden alle nacheinander angefügt.

Auf der Indexseite steht noch folgender Code:

Code:
$linkfile = 'war_data/links.txt';
if(file_exists($linkfile)) {
$sData = implode("", file($linkfile));
$aData = unserialize($sData);
$sections = array_merge($secs, $aData);
} else {
$sections = $secs;
}

if(isset($HTTP_GET_VARS['section'])) {
	$section = $_GET['section'];
	if($section == '') {
	$section = 'nopage';
	}
	if(!file_exists($sections[$section])) { // Zeile 179
	$sections = 'nopage';
	}
} else {
$section = 'home';
}
include($sections[$section]); // Zeile 185

Das konkrete Problem ist: das ganze funktioniert nur für den ersten Eintrag, da wird alles korekt angezeigt aber beim 2. Eintrag kommen nur 3 Fehlermeldungen:

Notice: Undefined index: 2005-06-23_00.42.28 in c:\Inetpub\wwwroot\clanpage\code\index.php on line 179

Notice: Uninitialized string offset: 2005 in c:\Inetpub\wwwroot\clanpage\code\index.php on line 185

Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.;C:\php5\pear') in c:\Inetpub\wwwroot\clanpage\code\index.php on line 185

(Das wird auf der Seite für die Details des Clanwars angezeigt)

Die URL sieht so aus: url?section=2005-06-23_00.42.28

Ich hoffe ich hab nichts vergessen und dass mir jemand helfen kann. Sorry dass es etwas umfangreich geworden ist aber es ging glaube ich nicht anders.

THX schoma im Voraus!
mfg, grasman
 
Zurück