JA hatte ich vorher, was muss ich machen wenn er da False ausgiebt? Wie speicher ich dann eine neue Variable rein?
[PHP]Dateisystem wie DINI/dubd_mod in PHP
- QwErTs
- Geschlossen
- Erledigt
-
-
Wird bei jedem Key ,,Falsch´´ zurück gegeben auch wenn er existiert ?
-
testing...
//€ Er returnt immer false...egal obs drinne is oder ne.. -
dann liegt es wohl an der Funktion selber & dataset müsste gehen wenn du es in die abfrage einbezogen hast nur er konnte den Befehl nicht ausführen da die abfrage Falsch zurück gab
-
Hab auch dataset alleine schon probiert, passiert nichts.
-
Kann es hier verwenden ohne Probleme, bei isSet habe ich aber keine Ahnung, wir haben die Funktion nie gebraucht und die hatte DMA auch damals nicht getestet. ;). Datei hat aber schon Schreibrechte oder?
-
Entfern sonst flock aus mirm_dataIsset.
(Fix:)
PHPfunction mirm_dataIsset($dataname, $key){ if(mirm_exist($dataname) == true) { $data = fopen($dataname, "r"); $ext = ""; while(!feof($data)) { $mem_backup = fgets($data, 4096); $ext = strtok($mem_backup, "="); if($mem_backup != "\r\n") { if($key == $ext) { fclose($data); return true; } } } fclose($data); } return false;}
-
lol, seit gestern bekomm ich das:
"Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/vhosts/apocalypse-rp.de/httpdocs/te/mirm.php on line 94"
das Sind die Zeilen:PHP
Alles anzeigenfunction mirm_dataGet($dataname, $key) { if(mirm_exist($dataname) == true) { $numline = -1; $data = file($dataname); while(true) { $numline++; if($data[$numline] != NULL)/////////LINE 94 { $array = explode("=", $data[$numline]); if($array[0] == $key) { return trim($array[1]); break; } } } } return false; }
//deit ok das funzt nun wieder, nur speichert er nichts, alle beide dateien(auszuführende && worein gespeichert werden soll) haben 777
//also es geht nun alles außer das speichern, was mir aber wichtig ist ;D könnt ihr mir helfen, muss evtl. bei dataset das flock raus? -
Was hast du gemacht Kony damit dieser error nicht mehr kommt?
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\Panel\include.php on line 95
Bitte um Hilfe.
-
Wenn du eine Variable Auslesen willst die nicht vorhanden ist, dann passiert das, überprüfe ob alle variablen die du auslesen willst auch in der Datei vorhanden sind.
Ansonsten mach vor jedem dataget eindadurch verhinderst du, das er nen timeout macht.
at blackfox oder DMA, könnt ihr bitte nochmal die dataset funk angugen, funzt ne richtig...:
PHPfunction mirm_dataSet($dataname, $key, $value) {if(mirm_exist($dataname) == true) {$data = fopen($dataname, "r");flock($data, 2);$numline = -1;$replaceline = -1;$ext = "";$badreplace = false;$numline = 0;while(!feof($data)) {$mem_backup = fgets($data, 4096);$ext = strtok($mem_backup, "=");if($mem_backup != "\r\n") {if($key != $ext) {$dataline[$numline] = $mem_backup;} else {$replaceline = $numline;}$numline++;}}fclose($data);unlink($dataname);$data = fopen($dataname, "w");for($i = 0; $i < $numline; $i++) {if($i != $replaceline) //&& !empty($dataline[$i]))fwrite($data, $dataline[$i]);else {fwrite($data, $key."=".$value."\r\n");$badreplace = true;}}if($badreplace == false)fwrite($data, $key."=".$value."\r\n");flock($data, 3); fclose($data);return true;}return false;}
Danke! -
-
DMA/Black könnt ihr mir helfen, die schreiben funktion will einfach ne..
-
wie DMA sagte versuch mal flock zu löschen , das soll normal bezwecken das die Datei für den Dateizugriff gesperrt bleibt bzw.
das andere Dateizugriffe kein Zugriff mehr haben soweit ich weiß , ansonsten musst du auf DMA warten , der Entwickler muss schließlich die Fehler im System erkennen -
Ok, ich gug wegen dem Flock.
Danke nochmal, das dataisset funzt nun perfeckt!
-
Check ich nicht xD:
Kannst du mal ein kleines Script machen
das die Datei.txt ausließt was im selben ordner ist
wie die index.php?Ausgelesen werden sollen nur
zb.Name=Hanens
Job=1sowas zb.
wäre nett -
Pn im Briefkasten ;D
AT DMA:
Darf ich die editierte Version, mit dem dataisset und dataset uppen? Ich frag lieber.
-
Pn im Briefkasten ;D
AT DMA:
Darf ich die editierte Version, mit dem dataisset und dataset uppen? Ich frag lieber.
Sry das ich auf so alte Threads stoße aber ich bin grad drauf gekommen und wollte fragen ob du mir das script auch schicken könntest... :o
Danke im vorraus. -
Ich weiß garnicht, warum so einen Umstand.... eigentlich müsste es mittels fgetcsvfunktionieren, in meinem Webinterface habe ich teils diese Methode angewandt, für die *.ini Auslesung jedoch eine andere, aber auch einfache Methode.
Mfg
GrexEDIT: Ups fgetcsv funktioniert ja garnicht..., naja dann poste ich mal wie ich es derzeit gelöst habe, steige aber bald auf MySQL um
PHP
Alles anzeigen<?php //~~~~~~~~[http://sa-rl.de]~~~~~ $file = "Grex.ini"; // Geben Sie den Dateinamen inklusiv Pfad an. (Beispiele: C:\user.ini ; /home/user.ini //~~~~Script~by~Grex~~~~~~~~~~~~ $handle = fopen($file,"r") or die('Datei nicht gefunden'); $i = 1; while(!feof($handle)) { $line[$i] = fgets($handle,1000); $i++; } list($a, $Money) = split("=", $line[13]); list($a, $Bankamount) = split("=", $line[14]); $all = $Money + $Bankamount; echo '<table border=1><tr><th>Geld</th><td>$' . $Money . '</td></tr><tr><th>Bank</th><td>$' . $Bankamount . '</td></tr><th>Gesamt</th><td><u>$' . $all . '</u></td></tr></table>'; ?>
Eventuell gehört das $line[13] bzw. $line[14] noch richtig angepasst, muss man halt schauen in der ini File wo Money= und Bank= steht -
Extrem undynamisch, dann doch lieber meine Methode, bei der ist es egal wo was steht und es ist total dynamisch.
-
Ui, dann werd ich das bei Gelegenheit einmal ausprobieren Zahlt sich nicht mehr aus bei mir
-
Wenn du die funktionierende Version brauchst:
http://ul.to/5btk25
Hoffe das geht klar DMA