Seite 1 von 1

Unterstützte mysql Version Contendi 4.6.x

Verfasst: Fr 16. Nov 2007, 21:41
von clipboard
Hallo

Ich bin dankbar, wenn das hier jemand findet, aber ich finde es nicht. Aber vielleicht weiss es ja jemand auswendig.

Welche Version von mysql wird unterstützt? Habe heute auf meinem Testrechner ein Update von mysql-server_5.0.27-1 auf mysql-server_5.0.45-2 gemacht und da lief gar nichts mehr mit Contenido. Klar habe ich vergessen den Fehler beiseite zu kopieren, irgendwas mit fopen...

Danke :D
Fabian

Verfasst: Fr 16. Nov 2007, 22:54
von HerrB
Na, wenn es "fopen" war, war es eine PHP-Meldung, die zunächst nix mit der mySQL-DB-Version zu tun hat.

Mir ist eine Einschränkung nicht bekannt - nächstes Mal die Meldung retten... :wink:

Gruß
HerrB

Verfasst: Fr 1. Feb 2008, 17:05
von dani_ela
Hat zwar jetzt nix mit mySQL zu tun, aber bei mir gibt es auch eine Fehlermeldung mit fopen:
Warning: fopen(dbfs:/###.txt) [function.fopen]: failed to open stream: Invalid argument in ######## : eval()'d code on line 206
Ich kann damit nur leider nix anfangen. In meinem Quelltext gibts keine Zeile 206...

Zum Drumherum: Ich möchte mir den Inhalt einer Datenbank, der in einer .txt-Datei abgelegt ist, anzeigen lassen und mit einem Formular neue Inhalte einfügen. Hier der Quelltext, den ich in den Output eines extra Moduls geschrieben habe:

Code: Alles auswählen

<?php
$dateiname="dbfs:/###.txt";

//Schreiben
if(isset($titel)&&$titel<>""){
  $zeile="$titel~$beginn~$ort~$bemerkung\n";
  $datei=fopen($dateiname,"a");
  if($datei){
    fputs($datei,$zeile);
    fclose($datei);
  }
}

//Lesen
if(file_exists($dateiname)){
  $datei=fopen($dateiname,"r");
  if($datei){
      while($zeile=fgets($datei)){
          echo stripslashes($zeile)."<br>\n";
      }
      fclose($datei);
  }
}
?>

<hr>
<form method="post">
<table border=0>
<tr><td>Titel</td><td><input name="titel" type="text" size="40" maxlength="55"></td></tr>
<tr><td>Beginn</td><td><input name="beginn" type="text" size="40" maxlength="20"></td></tr>
<tr><td>Einsatzort</td><td><input name="ort" type="text" size="40" maxlength="40"></td></tr>
<tr><td colspan=2>sonstige Bemerkungen<br><textarea name="bemerkung" cols="74" rows="3"></textarea></td></tr>
<tr><td colspan=2 align=right><input type="submit" value="absenden"><input type="reset" value="Zurücksetzen"></td></tr>
</form>
Vielleicht kennt jemand das Problem und kann mir einen Tip geben?

Verfasst: Fr 1. Feb 2008, 18:29
von tono
Eigentlich schlau gedacht, aber leider ist dbfs eine Contenido-eigene Technik um Dateien in der Datenbank zu speichern, PHP besitzt keinen URL-Wrapper für diese Technik. Auf Deutsch, Du kannst mit Dateien, die im dbfs liegen nicht mit fopen, fgets, usw. arbeiten.

Contenido bringt dafür die Klasse DBFSCollection mit:

Code: Alles auswählen

cInclude("classes","class.dbfs.php");				# notwendige Datei includieren

$dbfs = new DBFSCollection();						# Objekt initialisieren
$inhalt = $dbfs->getContent("/pfad/zur/datei.txt");	# Inahlt laden
$dbfs->setContent("/pfad/zur/datei.txt",$inhalt);	# Inhalt speichern

unset ($dbfs);										# Objekt zerstören, Speicher freigeben
code ungetestet

Es gibt noch mehr Methoden, schau mal in contenido/classes/class.dbfs.php.

Verfasst: Mo 4. Feb 2008, 11:29
von dani_ela
Hey danke sehr. :)

Habs mir aber einfacher gemacht: habe einfach die txt-Datei in das upload-Verzeichnis gelegt, da kann ich jetzt drauf zugreifen. Sollte ich mal eine größere Datenbank anlegen, werde ich aber wohl oder übel auf das dbfs-Verzeichnis zurückgreifen müssen ;) jetzt weiß ich wenigstens Bescheid, dass es dafür extra Befehle gibt.

Vielen Dank für die schnelle Hilfe :P