• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

problem mit auslesen von textdateien

Status
Für weitere Antworten geschlossen.

Sporty

Neues Mitglied
sers,

ich hab einen weblog, der alles in eine textdatei speichert.
jetzt hab ich die textdatei aufgesplittet in mehere, um die einzeln ladne zu lassen.
ich mahc des mit:
Mai

April
usw....

jetzt hab ich allerdings das Problem, dass in der weblog.php immer noch nach der urspurngs textdatei gefragt wird, also die weblog.txt.

Code:
	if (file_exists("weblog.txt")) {
	
	$datei=fopen("weblog.txt","r");
	while (!feof($datei)) {
	$lesen=fgets($datei,100000);
	array_push($eintrag,$lesen);
	}

das if kann ich ja ersetzen durch die switch funktion, aber wie mach ich das mit der anderen abfrage?

Code:
<?php
switch($_GET['action']){
    case "mai":
        include("mai.txt");
    break;
    case "april":
        include("april.txt");
    break;
}
?>
damit lad ich ja die verschiedneen textdateien.
ich bräuchte irgendwas, das dem $datei=fopen sagt, dass er die textdatei anguckn soll, die er mit dem SWITCH befehl läd.
 
1. dateien ohne php quellcode werden nicht mit include eingebunden sondern mit readfile()
2. im switch einfach eine variable deklarieren wie die aktuelle datei heisst?
 
ich blick nich durch, kannste mir das mal an diesem Zeug hier zeigen, wie du das in den Switch umschrieben würdest?

Code:
if (!file_exists("weblog.txt")) { $datei=fopen("weblog.txt","w"); fclose($datei); }
 
[php:1:8b9dba5713]<?php
if(file_exists($_GET['action'].'.txt'))
{
readfile($_GET['action'].'.txt'); // wie includieren
// oder...
$file_content = file_get_contents ($_GET['action'].'.txt'); // inhalt als string in variable
}
else
{
// 404 Error
}
?>[/php:1:8b9dba5713]
 
Sporty schrieb:
Code:
if (file_exists("weblog.txt")) {

$datei=fopen("weblog.txt","r");
while (!feof($datei)) {
$lesen=fgets($datei,100000);
array_push($eintrag,$lesen);
}
den schnipsel verstehe ich uberhaupt nicht.
du speicherst die letzte zeile einer datei in einem string um diesen dann an ein array anzuhaengen.
was bringt das bitte genau?
 
Prophet schrieb:
[php:1:2ab1248b77]<?php
if(file_exists($_GET['action'].'.txt'))
{
readfile($_GET['action'].'.txt'); // wie includieren
// oder...
$file_content = file_get_contents ($_GET['action'].'.txt'); // inhalt als string in variable
}
else
{
// 404 Error
}
?>[/php:1:2ab1248b77]
Prophet damit kann man aber jede beliebige datei unterschieben. das ist doch unsicher.

edit: sporty lade die datei bitte bei http://scripts.underground-irc.net hoch zip dateien kann ich nicht oeffnen (ausserdem ist es viel umstaendlicher :wink: )
 
mh das script sieht fuer so einen eher einfachen verwendungszweck sehr kompliziert aus :|
vieleicht versuchst du statt mehreren dateien mal eine mysql datenbank? sollte sehr sehr viel einfacher sein.
ansonsten einfach in dem switch da so etwas:
[php:1:2ee08230e2]
case 'bla':
$jetzige_datei = "bla.txt";
break;
[/php:1:2ee08230e2]
und dann halt ueberall statt "weblog.txt" $jetzige_datei :|
ist aber wie gesagt viel zu umstaendlicher -> versuchs mit mysql!
 
Code:
switch($_GET['action']){
    case "mai":
        include("mai.txt") 
		 $jetzige_datei = "mai.txt";

meisnte das so?
das funzt irgendwie net
Parse error: parse error, unexpected T_VARIABLE
 
nein das meine ich nicht so.
das meine ich so wie es dort steht.
(dein switch() ist schon richtig. guck dir mal den rest an - was ist dor wohl anders? :roll: )
 
1. nach einem switch { muss auch irgendwann wieder eine schliessende klammer "}" kommen.
2. "$jetzige_datei" < sowas ist muell, entferne die anfuehrungszeichen
 
heiland sorry, ich nerv, aber jetzt labert er das hier.
die mai.txt is eigentlich sicher im verzeichnis....

Warning: fopen(maitxt): failed to open stream: No such file or directory in /usr/export/www/hosting/manuko/log/weblog.php on line 57

Warning: feof(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 58

Warning: fgets(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 59

Warning: feof(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 58

Warning: fgets(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 59
.
.
.
.

hab schon gesucht was das bedeutet aber ich versteh nicht warum der immer zwischen den beiden hin und her springt.
das scheint so ne endlosschleife zu geben, aber ich check nich warum.
er fragt was ab, kriegts aber nich, deshalb fragt ers nochmal ab und so weiter, oder wie?
 
es fehlten anführungszeichen um das mai.txt rum, deshalb funktionierte es nicht.
Jetzt klappts eigentlich wunderbar, bis auf eine Sache ^^
Es speichert keine Einträge.
Wenn ich das teste auf
http://manuko.ma.ohost.de/log/log.html
und dann auf ADMIN klicke, "test" als passwort eingebe und dann was speichern will, dann kommt diese fehlermeldung.

Warning: fclose(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 266

Warning: fputs(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 268

Warning: fclose(): supplied argument is not a valid stream resource in /usr/export/www/hosting/manuko/log/weblog.php on line 269

er meint ja, dass des gelieferte argument falsch sei, aber ich hab nur das weblog.txt argumnet durch das "jetzige_datei" ausgetauscht. die mai.txt is ja jetzt da und da rein sollte er es doch jetzt speichern, da jetzige_datei ja die mai.txt ist.-
 
du musst aber bei admin auch noch das mai mit uebergeben ;)
alos schreibe alle links und formulare um
 
nunja, es geht ja nicht nur um eine textdatei mai.txt, sondern um mehrere textdateien von januar bis dezember.
wenn ich jetzt auf einen link juli klicke, wird die gleiche weblog.php datei geladen, wie wnen ich auf august klicken.
Jetzt sollte die datei doch eigentlich erkennen, dass die datei mai.txt geladen wurde und es dort reinspeichern oder nicht?
denn die weblog.php will ich ja nicht jedne monat bearbeiten...
vielleicht hab ich grad auch nen denkfehler dirn, aber irgendwie scheint das grad ned logisch für mich. vielleicht versteh ichs aber auch nich richtig...
 
Dann hallt mit prüfung auf gültigkeit:
[php:1:b54968c487]<?php
$files = array('jan', 'feb', 'mrz', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dez');

if(file_exists($_GET['action'].'.txt') and in_array($_GET['action'], $files))
{
readfile($_GET['action'].'.txt'); // wie includieren
// oder...
$file_content = file_get_contents ($_GET['action'].'.txt'); // inhalt als string in variable
}
else
{
// 404 Error
}
?>[/php:1:b54968c487]
 
ich bin leider n PHP noob, deshalb würds mich freuen, wenn mir das jemand schonend und einfach erklären würde ^^
ich mein, wnen mir jemand nen codeschnipsel herschmeisst kann ich als anfänger halt ziemlich wenig damit anfangen. sorry :)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben