PHP Prob - Verzeichnis erstellen

Kermit

Enthusiast
Thread Starter
Mitglied seit
14.07.2002
Beiträge
1.708
Ort
Schwarzwald!!! und Karlsruhe
Hi
Hab mir vorgenommen ein Forum komplett zu programmieren mit Hilfe von PHP und MySQL.

So weit so gut ;)

Ich will, dass wenn nen Thread erstellt wird, das PHP Programm nen eigenen Ordner mit einer eindeutigen ID erstellt und dazu noch der Post in einer Textdatei in diesem Ordner gespeichert wird.
Dazu nutz ich die Funktionen mkdir() und fopen(). Funktioniert alles auch wunderbar, nur gibt er beim erstellen des Ordner bzw. der Datei nen Fehler aus, von wegen er hätte keine Schreibrechte usw.

Dann hab ich mich etwas schlau gemacht und div. Sachen probiert, u.a. mittels chmod() den Modus in 0775 geändert, per FTP Programm die Ordner und Dateien ebenfalls auf 0775 gestellt, aber es will einfach nicht gehen.

Weiß einer von euch vielleicht, woran das genau liegt? :confused:

Hier mal noch der Code:
PHP:
<?php
	$db = mysql_connect("*****", "******", "******");
	$res = mysql_db_query("******", "SELECT threads FROM foren WHERE id = $forumid");
	$threads = (mysql_result($res, 0, "threads")) + 1;
	$res2 = mysql_db_query("******", "UPDATE foren SET threads = $threads WHERE id = $forumid");
	mysql_close($db);
	
	$db = mysql_connect("*****", "******", "******");
	$last = date("Y-j-n H:i:s");
	$res = mysql_db_query("******", "INSERT forumid$forumid (thema, ersteller, posts, hits, last) VALUES ('$thema', '$ersteller', 0, 0, '$last')");
	$res2 = mysql_db_query("******", "SELECT id, posts FROM forumid$forumid WHERE thema = '$thema'");
	$threadid = mysql_result($res2, 0, "id");
	$posts = mysql_result($res2, 0, "posts");
	$posts = $posts + 1;
	mysql_close($db);

	mkdir("forumid/$forumid/$forumid_$threadid", 0775);
	$fp = fopen("forumid/$forumid/$forumid_$threadid/$threadid_$posts.txt", "w");
	fputs($fp, "$beitrag");
	fclose($fp);
?>

Vielen Dank schonmal :)

Gruß
Alex
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
schonmal 0777 probiert? denk nicht das es daran liegt, aber nen versuch isses wert
 
Hmm daran sollte es eigentlich nicht liegen. Das würde dann bedeuten, dass jeder das Recht hat, auf dem Server daten zu speichern. Aber ich werds mal testen.

Kann es sein, das der Hoster da die Finger im Spiel hat? Ich glaub ich schick denen mal ne mail ;)

Thx
Alex
 
Hi,
versuchs doch mal bitte so:
PHP:
mkdir("".$_SERVER['DOCUMENT_ROOT']."/forumid/$forumid/$forumid_$threadid", 0700);

Lasse dir doch einmal mit $_SERVER['DOCUMENT_ROOT'] den Pfad ausgeben, und gucke ob alles stimmt... Du versucht den Pfad da zu erstellen, wo du keine Rechte dazu hast, und die haettest du in _deinen_ Webspace Verzeichnissen ueberall...

Gruß,
Else
 
Hi
Jetzt kommt
Warning: mkdir(/home/www/htdocs/derkermit.de/kermit2/forum/forumid/0/17) [function.mkdir]: Permission denied

Also das Verzeichnis findet er schon. Nur hat er angeblich keine Schreibrechte. Hab auch schon mit 0777 probiert, geht aber auch nicht :(
 
Welche Verzeichnisse exisitieren denn?

Else
 
Also es soll so ein Struktur enstehen:

forum
...forumid0
...0_0
...0_0.txt
...0_1.txt
...0_2.txt
...forumid1
...1_0
...0_0.txt
...0_1.txt
...0_2.txt
...forumid2
...2_0
...0_0.txt
...0_1.txt
...0_2.txt
...forumid3
...3_0
...0_0.txt
...0_1.txt
...0_2.txt
.
.
.
.
...forumidn
...n_0
...0_0.txt
...0_1.txt
...0_2.txt

so in etwa zumindest.

Wird jetzt ein neues Forum erstellt, dann soll auch dazu nen Ordner erstellt werden (z.B. forumid4). Wird nen thread erstellt, dann soll in diesem ordner wiederrum nen ordner erstellt werden (z.B. 4_0 -> forum 4 + thread 0). In den Ordner kommen dann die Posts als .txt File.
 
Also kann ich jetzt davon ausgehen, dass die Ordner "forum" und "forumid" schon existieren? Welche chmod Rechte hat das Script?

Gruß,
Else
 
also ich glaube, du willst lieber ein forum mit datenbank-anbindung bauen :)

denn SQL gibt dir die möglichkeit, beliebig aus deinen daten auszuwählen, diese flexibilität wirst du mit einfachem aufwand mit flatfiles längst nicht hinbekommen.

nur so ein tipp, bevor du später zu dieser erkenntnis gelangst und dich über die verschwendete zeit ärgerst.
 
Genau das wuerde ich auch vorschlagen, aber jedem das seine... Mir waers mit Dateien deutlich unnoetig zu kompliziert!
 
Original geschrieben von Y0Gi
also ich glaube, du willst lieber ein forum mit datenbank-anbindung bauen :)

denn SQL gibt dir die möglichkeit, beliebig aus deinen daten auszuwählen, diese flexibilität wirst du mit einfachem aufwand mit flatfiles längst nicht hinbekommen.

nur so ein tipp, bevor du später zu dieser erkenntnis gelangst und dich über die verschwendete zeit ärgerst.
Da is ne SQL Datenbank dabei ;)
Kann ich da beliebig lange Texte drin speichern?

Wollt nur die Post-Texte in den Textfiles speichern, weil sonst wird die Datenbank doch ewig groß, oder?
 
Die Datenbank wird in etwa genauso, bzw. minimal groeßer sein als Textdateien, und deutlich komfortabler, meine volle Plaedierung hierfuer (ein kleines Beispiel: mein kleines Forum).

Gruß,
Else
 
jowa :d

Na dann werd ich das natürlich auch so machen ;)

Muss nur noch checken obs bei meinem Hoster nen Datenbank-Größenlimit gibt. Denk aber nich :d

EDIT:
Was fürn "Datensatztyp" ist dann so ein Post? Also nur der Text davon. Gibts ja verschiedene, z.B. TEXT, MEDTEXT,...
 
Zuletzt bearbeitet:
Normalerweise wird die Groeße der Datenbank vom Webspace abgezogen. Aber bis die Datenbank mal 10MB groß wird, musst du schon ziemlich viele Beitraege haben... Ich habe mittlerweile knapp 2000, und die Datenbank ich 800kb groß.

Else
 
Ich hab Text genommen, dann hast du genuegend Freiraum. Such mal bei google nach "MySQL Datentypen".

Else
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh