Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert in externer Datei speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wert in externer Datei speichern

    Servus,

    Vorweg: Sorry wenn es die Frage schon gab aber ich brauch Hilfe

    Ich arbeite derzeit an einem Script und komme nicht weiter, bei php datei 1 kann der Nutzer auf einen Button klicken das eine action auslöst, er wird dann zu der php datei 2 weitergeleitet die dafür sorgt das Variabel $sp_verwaltung die sich in einer dritten php datei befindet um 1 erhöht sofern eine bedingung erfüllt wurde. Sollte die Bedingung nicht erfüllt werden wird dem Nutzer gesagt das diese Aktion nicht ausgeführt werden kann. Problem an der sache ist einfach das er den Wert in der dritten datei ums verrecken nicht erhöht, hab mir bei google einen wolf gesucht, getestet aber nichts funkt deswegen hab ich gedacht ich versuchs hier einmal:

    Btw. an die Include Funktion hab ich natürlich gedacht und ist auch drin weiter oben, habs net extra rein gepostet, wollt nicht den ganzen kram mit html und so rein hauen da es sonst zu komplex wird.

    Inhalt von Datei 1 kann ich mir sparen denk ich,

    Inhalt von Datei 2:

    <?php
    $fp=fopen("userdata.php","w");
    if ($sp_points > 120000) { fwrite ($fp, $sp_verwaltung++); }
    else {echo "Ihre Punkte reichen nicht aus";}
    fclose($fp);
    ?>

    Inhalt von Datei 3:

    <?php

    $Punkte = 0;
    $Bonus = 0;

    ?>

    Problem ist: Wenn ich das ganze teste und in Datei 1 auf den Button klicke werd ich zur Datei 2 geleitet, in der Datei 2 gibt er sofern die Punkte unter 120000 sind den Text "Ihre Punkte reichen nicht aus" aus, wenn die Punkte aber über 120000 sind passiert fast gar nichts, der Wert in der Datei 3 wird nicht erhöht und es wird auch keine fehlermeldung ausgegeben, das einzige was passiert ist das er den gesamten inhalt von datei 3 löscht.

    Jetzt die Frage: Was mach ich falsch? Oo

    Wäre über Hilfe sehr dankbar und bitte net zu doll meckern, its my first day (okay not really) ^^

  • #2
    du benutzt fwrite falsch:

    Code:
    $string = '$sp_verwaltung = '.$sp_verwaltung++;
    fwrite($fp, $string)
    Du kannst mit fwrite nicht direkt die Variablen manipulieren, nur Strings in eine Datei schreiben:

    http://de.php.net/fwrite
    twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

    $live->free() OR die();

    Kommentar


    • #3
      Servus,

      Danke vorweg für den tipp aber hab da trotzdem ein problem, nun sieht das script aus datei 2 so aus:

      $fp=fopen("userdata.php","w");
      if ($sp_points > 120000) { $string = '$sp_verwaltung = '.$sp_verwaltung++;
      fwrite($fp, $string); }
      else {echo "Nicht genug Punkte vorhanden";}
      fclose($fp);


      Wenn ich nun in Datei 1 auf den Button klickt werd ich wie gewünscht zur Datei 2 geleitet und dort führt er anscheinend auch was aus, wenn die Punkte unter 120.000 sind gibt er natürlich aus das die punkte nicht ausreichend, wenn sie allerdings reichen dann führt er die if anweisung aus aber nicht so wie ich möchte, es besteht nachwievor das problem das er die Datei userdata.php durch eine leere datei ersetzt, er schreibt leider gar nichts : /

      Irgendjemand ne Idee? bzw. kennt jemand eine alternative möglichkeit um das ganze umzusetzen?

      Edit: Hab bissl herum experimentiert und folgendes Script gecodet, jetzt wird ein wert von datei 2 zu datei 3 geleitet und gespeichert allerdings an einer völlig falschen stelle und nicht wie gewünscht bei $sp_verwaltung, stattdessen fügt er hinter ?> folgendes ein: $sp_verwaltung = 0$sp_verwaltung = 0. Resultat ist das dann in datei 2 ganz oben das auch zu lesen ist. Hoffe ich habs verständlich geschildert.

      Hier das script:

      $fp=fopen("userdata.php","a");
      if ($sp_points > 120000) { $string = '$sp_verwaltung = '.$sp_verwaltung++;
      fwrite($fp, $string); }
      else {echo "Nicht genug Punkte vorhanden";}
      fclose($fp);
      ?>

      grüße

      Abakay

      Kommentar


      • #4
        PHP-Code:
        <?php
         $fp
        =fopen("userdata.php","w"); // falscher schreibmodus
                          
        if ($sp_points 120000) { $string '$sp_verwaltung = '.$sp_verwaltung++; 
                      
        fwrite($fp$string); }
                          else {echo 
        "Nicht genug Punkte vorhanden";}
                          
        fclose($fp);
                           
        ?>
        du musst entweder die Datei ganz neu schreiben (inkl dem Skriptaufbau) oder eine andere Lösung wie zB ein DBMS nutzen.

        Oder du liesst die Datei mit file() als array ein und ersetzt die entsprechende Zeile in dem Array. Dann überschreibst du die Datei mit jeder Zeile aus dem Array
        twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

        $live->free() OR die();

        Kommentar


        • #5
          Ich denke mal ich werd die möglichkeit mit den Arrays angehen, werde mich bei problemen wieder melden. Danke dir aufjedenfall moveax1 für deine Hilfe und das du dir Zeit genommen hast.

          grüße

          Abakay

          Kommentar


          • #6
            Warum postet der immer doppelt? ich klick doch nur einmal -.-

            Kommentar


            • #7
              Keine Ahnung, passiert manchmal. Ich habe den Doppelpost gelöscht.
              Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

              Kommentar

              Lädt...
              X