[PHP]Dateisystem wie DINI/dubd_mod in PHP

  • 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?

    Mit freundlichen Grüßen


    Einstein

  • Entfern sonst flock aus mirm_dataIsset.
    (Fix:)

    PHP
    function 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:


    //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?

    Mfg kony




    2 Mal editiert, zuletzt von QwErTs ()

  • 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 ein

    PHP
    if(mirm_DataIsset(datei, "nameoderso"){

    dadurch verhinderst du, das er nen timeout macht.



    at blackfox oder DMA, könnt ihr bitte nochmal die dataset funk angugen, funzt ne richtig...:


    PHP
    function 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!

    Mfg kony




  • 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 ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • 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=1


    sowas zb.
    wäre nett ;)

  • 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
    Grex


    EDIT: Ups fgetcsv funktioniert ja garnicht..., naja dann poste ich mal wie ich es derzeit gelöst habe, steige aber bald auf MySQL um :)



    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 :)


    San Andreas [Fun]RealLife
    [ TOOL ] Grex's RCON Tool
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher" - Albert Einstein

    2 Mal editiert, zuletzt von Grex ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen