In eine Datei schreiben od. ähnl.

  • Hallo
    ich wollte eine Variable sicher in eien PHP Variable übertragen?
    Ich hab mir überlegt die Variable von Js in eine Datei zu schreiben.(feht mir befehl finde nichts in selfhtml)
    oder ich mache das mit einen Hidden feld aber da liet das problem das ich den Alten wert zum vergleichen brauch.


    ich brauche dann auch noch eine Möglichkeit umgekehrt von PHP zu Javascript.


    mfg Truck007

  • Mit JavaScript ist das nicht möglich, außer du willst einen Cookie erstellen.
    Cookies sind die einzigen Dateien, die man mit JavaScript erzeugen und/oder ändern kann =/


    Das einzige, was du machen könntest wäre via Ajax etwas an den Server schicken und so eine Variabel
    übertragen und in eine Datei schreiben lassen kannst :/
    Aber ansonsten fällt mir keine Möglichkeit ein.. :/

  • haha ajax.


    versuche mich schon seit 2 Wochen mit Xajax und bisjetzt hat noch nichts geklappt!!!


    und kann mann auch nichts in eine Datenbank schreiben?


    und kann mann mit PHP auf einen Cookies zugreifen ?
    und kann mann die auch ändern?


    oder kann mann irgendwie anderst die Daten von PHP zu Javascript und umgekehrt übertragen?


    mfg Truck007

  • Also von PHP zu JavaScript geht das entweder via z.B beim ersten Seitenaufruf

    PHP
    var meineGluckszahl = <?php echo $gluckszahl; ?>;

    oder via Ajax.
    Bei Ajax können wir 2Sachen gleichzeitig machen, zum einen können wir eine Datei aufrufen, die z.B. die übergebenen Werte in eine Datenbank schreibt und anschließend kann uns diese Datei noch Werte via echo übergeben.
    Dafür wird meistens JSON verwendet :D PHP bietet da auch einige tolle Funktionen für:
    Beim übergeben über Ajax zu PHP verwenden wir json_decode(); und erhalten aus einem JSON ein Array.
    Beim übergeben von PHP zu JavaScript verwenden wir json_encode; und erhalten aus einem PHP-Array ein JSON.


    Ein JSON (übrigens JavaScript-Objekt-Notation) sieht folgendermaßen aus:

    Code
    meinJson = {
        "meineGlueckszahl": 13,
        "meinLieblingswort": "Hallo",
        "einBoolscherWert": true,
        "auchEineFunktionGeht": function(){
            alert(this.meineGlueckszahl + " " + this.meinLieblingswort + " " + einBoolscherWert);
        }

    Aufrufen können wir unsere Sachen einfach über den Variabelnamen.jsonVariabel in unserem Beispiel z.B.meinJson.auchEineFunktionGeht(); oder alert(meinJson.meinLieblingswort);

  • hmm gut das mit den PHP zu Javascript is geklärt
    aber anderstrumm


    geht vielleicht das mann das value von einen Hidden Feld nutzt und das mit Javascript beschreiben kann oder auslesen
    und wenn ja müsste mann da ja auch noch die Seite neu Laden?


    mfg Truck007

  • Dann mache ich 1x javascript:void(document.getElementById("entsprechendeIdDesHiddenAusDemQuellcode").value = 2000000000000000000;); und ich bin der King in deinem Spiel :P


    Und ja, man müsste sonst die Seite neu laden.. wobei das an und für sich kein Problem ist :/
    Dann ist aber eine JavaScript-Lösung sowieso überflüssig^^


    Du musst dir halt wirklich einen guten Weg ausdenken, wie du die Rohstoffe sich vermehren lässt..
    Eine Möglichkeit wäre es via Cronjob z.B. jede Minute ein Script laden zu lassen, welches die Rohstoffe die man bekommt ausliest und auf die derzeitigen aufrechnet^^ Aber das wäre furchtbar Serverlastig =/


    Ne andere Möglichkeit wäre, dass wir uns merken, wann wir dem Spieler zuletzt Rohstoffe überwiesen haben (timestamp) und sobald dieser Spieler irgendeine Aktion macht errechnet man sich die Anzahl an Sek die dazwischen liegen und rechnet sich aus, was wir dem Spieler neu überweisen müssen^^
    Aber hier läge ein Problem mit dem Ausbau von Gebäuden :/ Wobei wir das wieder mit einem Cronjob lösen könnten, der z.B. nur jede Halbe Stunde los geht.. oder damit, dass wir jedesmal wenn ein Spieler irgendwas macht, wir einige Spieler abarbeiten^^


    (Wer auch jemals behauptet hat, dass Programmieren eines Browsergames wäre einfach, der lügt :P
    Es ist wenn du es richtig gut machen willst, richtig aufwendig^^)

  • ehm das wäre schlecht wenn das so gehen würde.
    mal ehrlich geht das???Also kann mann auch z.b. auf irgendeiner Website in den quelltext schauen und dann irgendeine Funktion abrufen??


    hmm... gut das geht also so nicht also komm ich um Xajax nicht drumm herumm??


    ehm trotzdem hab ich wenigstens ver such mit Javascript da ich das noch nicht wusste und binn jetzt bei einen Problem angekommen:


    ich will die Zeit starten mit der Funktion
    aber ich will das auf der Seite immer angezeigt wird ,in welcher Sekunde mann sich befindet


    mein Versuch:


    was ist falsch oder Was habe ich nicht beachtet?


    mfg Truck007

  • Ja.. es geht immer noch.. ich kann ganz einfach eine auf der Seite definierte Funktion aufrufen, oder einfach Elemente verändern.
    Es ist wirklich ganz einfach, ein dummes aber funktionierendes Beispiel:
    Beim Antworten auf diesen Beitrag fügst du gleich einfach mal folgenden Code in die Adresszeile (dort wo die URL der derzeitigen Seite drinsteht :P Also sowas wie http: // www . html-seminar . de / forum / posting.php? ... )
    javascript:void(document.getElementById('colour_palette').style.display = 'block');
    Oder wenn du umbedingt eine Funktion haben willst, die du über die Adresszeile aufrufen willst:
    javascript:void(find_username("Sarkkan"));


    Und doch, du kämst um xAjax rum.. lerne einfach anständig PHP und JavaScript.
    Nichts geht darüber, wenn du die Sprachen richtig kannst, jedes Framework kann dir zwar Arbeit abnehmen, aber was ist, wenn ein Framework mal irgendetwas nicht liefert? Außerdem musst du einfach ein Gefühl für das Programmieren bekommen. Du musst lernen, wie du am Sinnvollsten Algorithmen schreibst und und und..


    Zu deinem Code:
    1. Ist der Code zwischen <script>?
    2. Wird deine Funktion aufgerufen? z.B. via <body onload="Zeit_starten()">
    3. Befindest du dich vllt. einfach nur in einer Sekunde, in der nichts ausgegeben wird?
    4. Ich bin mir nicht sicher, ob deine return-Konstellation funktioniert


    5. Wenn du das auf dem laufenden halten willst, müsstest du eher ein <span id="X"> gebilde basteln und die Funktion jede Sek aufrufen^^

  • ehm... ne das geht nicht mit den Javascript:void.


    die seite sah genau so aus wie auch sonst.



    naja das richtig lernen leicht gesagt im PHP kurs.com bin ich durch aber wo soll ich sonst noch weiter machen?


    und ja ich möchte das das immer angezeigt wird wenn die Sekunde wechselt.(das mit den span kapier ich nicht)


    hier erstmal der code eigentlich is das was du gesagt hast eingehalten:

    PHP
    <span class="syntaxhtml"><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">script language</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"javascript" </span><span class="syntaxdefault">type</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"text/javascript"</span><span class="syntaxkeyword">><br />function </span><span class="syntaxdefault">Zeit_starten</span><span class="syntaxkeyword">()<br />{<br />    var </span><span class="syntaxdefault">jetzt </span><span class="syntaxkeyword">= new </span><span class="syntaxdefault">Date</span><span class="syntaxkeyword">();<br />    var </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">jetzt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">getSeconds</span><span class="syntaxkeyword">();<br />    var </span><span class="syntaxdefault">Zeitk </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">1</span><span class="syntaxkeyword">;<br /><br />    if (</span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">1</span><span class="syntaxkeyword">){</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Es sind ' </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">+ </span><span class="syntaxstring">'Sekunden vergangen'</span><span class="syntaxkeyword">);}<br />    if (</span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">2</span><span class="syntaxkeyword">){</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Es sind ' </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">+ </span><span class="syntaxstring">'Sekunden vergangen'</span><span class="syntaxkeyword">);}<br />    if (</span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">3</span><span class="syntaxkeyword">){</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Es sind ' </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">+ </span><span class="syntaxstring">'Sekunden vergangen'</span><span class="syntaxkeyword">);}<br />    if (</span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">4</span><span class="syntaxkeyword">){</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Es sind ' </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">+ </span><span class="syntaxstring">'Sekunden vergangen'</span><span class="syntaxkeyword">);}<br />    if (</span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">5</span><span class="syntaxkeyword">){</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Es sind ' </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">Sekunden </span><span class="syntaxkeyword">+ </span><span class="syntaxstring">'Sekunden vergangen'</span><span class="syntaxkeyword">);}<br />   </span><span class="syntaxcomment">/*  if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1)<br />    if (Sekunden = 1) */<br /><br /><br />  /*  return(jetzt, Sekunden, Zeitk);<br />*/</span><span class="syntaxkeyword">}<br /><br /><br /><br /><br /><br /><br /></span><span class="syntaxdefault"></script><br /></span><br /><button onclick="Zeit_starten();">Sekunden</button><br /></span>


    zu 3. wie es sill ertmal nur zu den paar am anfang waas ausgegeben werden Wie kann ich mich da in einer Falchen Sekunde aufhalten?


    zu 4. Das return ist eigentlich egal brauche diese Variablen nicht nochmal.


    mfg Truck007

  • Öhm.. bei deinem Script passiert folgendes:
    -> Es wird das aktuelle Datum genommen
    -> wir holen uns die Sekunden (gerade z.B. 36)
    -> wir schauen nach, was bei der If-Abfrage bei 36 passieren soll
    -> 36 ist nicht definiert, ergo: wir machen nichts.


    folgendes Script ist geschickter:

    Was machen wir?
    Wir geben sagen, dass sobald die Seite fertig geladen ist, eine Funktion ausgeführt wird.
    In dieser definieren wir einen Interval (ständig auftretendes Ereignis) in der wir uns das aktuelle Datum holen.
    Dieses Datum setzen wir dann in das Element mit der ID "time". Fertig :D

  • ok Danke das geht ABER ICH WILL NOCH DIE sEITE NEU lADEN DAS HAB ICH NOCH NICHT RAUS


    oh schuldigung ich bin ausversehen auf die hässliche Taste gekommen.(bin zu Faul das jetzt zu Ändern)
    ich hab schon probiert aber iregentwie ging es nicht:


    ich hab es so gemacht: window.onload('index.htm');


    kann mir jemand helfen??


    mfg Truck007

  • Was willst du den mit window.onload('index.htm'); bewirken? O.o
    1. onload ist keine Funktion, sondern quasi eine Variabel/Eigenschaft des Window-Objekts.
    2. ..für den Browser hast du da einen String übergeben.. sehr schön :D Und was soll er mit dem String machen?^^'
    //Ach ja.. ich kann es gar nicht oft genug sagen.. sometimes I believe compiler ignores all my comments.. :P
    3. für das Neuladen der Seite entweder

    Code
    <meta http-equiv="refresh" content="5; URL=meine/Seite.html" />
    <!-- Die 5 steht für 5Sekunden nach Seitenaufruf soll man zu meine/Seite.html weitergeleitet werden. Ich glaube das es theoretisch auch möglich ist den URL Teil weg zu lassen^^ -->
    ODER [Wobei das nicht direktes neuladen ist]
    <a onclick="location.href = 'meine/Seite.html';">Hier klicken</a>
    ODER
    <a onclick="location.reload(true);">Lade diese Seite neu</a>
  • Hallo nochmal.


    ich hab folgendes Problem, ich glaube es kommt davon das die Seite ständig neu geladen wird aber binn mir nicht sicher.



    es wird nie Dazuaddiert es muss ja immer 500 bzw. 1000 dazuaddiert werden?
    oder muss ich das in eine Dateischreiben lasssen und jedesmal auslesen??


    ps: am ende schreib ichh alles in DB nur erstmal so zum testen



    mfg Truck 007

  • Durch einen Seitenreload wird im Normalfall kein Formular abgeschickt, ergo bekommst du keine $_GET-Variablen.. Du könntest aber z.B. auf .php?addieren=X verlinken.. dann würde eine GET-Variabel übermittelt^^
    Auch wenn nichts erhöht würde.. weil nirgends wird der neue Wert eingespeichert :/

  • ehm... ja haste recht wenn nichts gespeichert wird dann wirds auch nicht addiert


    aber ich hab ja seite neu Lagen geklikt und nicht mit sowas : ?addiere=X


    kann mann nicht das Formular in jeder minute abschiken?


    und wie könnte mann das mit den Fragezeichen machen


    etwa so:

    Code
    location.reload(true) = index.php?addieren=X


    mfg Truck007

  • Doch.. auch das mit dem Formular absenden würde gehen^^

    Code
    document.getElementById("Id_des_Forms").submit();


    Und das mit dem ? (query) würde über

    Code
    location.href = 'ziel/adresse.php?addieren=1';

    gehen.


    PS: Hast du eigentlich eine Ahnung von JavaScript?
    Also auch nur den leisesten hauch? Von Syntax und so? :/ Weil du versucht hast, einer Funktion einen Wert zu zu ordnen? O.o
    Also in PHP wäre das

    Code
    fopen($handler) = 'meineSeite.de';

    was ja vollkommender Quatsch wäre :D

  • Zitat von &quot;Sarkkan&quot;

    PS: Hast du eigentlich eine Ahnung von JavaScript?
    Also auch nur den leisesten hauch? Von Syntax und so? :/ Weil du versucht hast, einer Funktion einen Wert zu zu ordnen? O.o


    also ich hab mir gedacht dass es so gehen ,könnte ob das richtug ist ist eine andere Sache ich denke mir immer was was dann eben nicht geht weil ich nicht drüber nachgedacht habe regeln einzuhalten.
    erst beim2. mal drüberlesen fällt mir sowas auf.


    war genau das gleiche un den SQL Befehl im PHP Forum

    Zitat von &quot;Sarkkan&quot;

    also dachtest du dir das so:

    Code
    select from Sarkan where Passwort


    klingt gut ist aber föllig falsch.


    oder irgentwie so hattest du das doch geschrieben.




    Zitat von &quot;Sarkkan&quot;

    Also in PHP wäre das

    Code
    fopen($handler) = 'meineSeite.de';

    was ja vollkommender Quatsch wäre :D


    uh das sieht ja schreklich aus also ich glaube so einen Fehleer würde ich in PHP nicht machen.

  • Sollte auch kein Angriff oder so auf dich sein^^
    Aber du solltest wenn doch lieber mal anfangen anständig JavaScript zu lernen :/
    Es ist zwar wirklich tricky, aber wenn man 1x den dreh raus hat, dann lachst du über deine Fragen :D
    Hier habe ich JavaScript gelernt :mrgreen: Als Nachschlagewerk empfiehlt sich dann noch SELFHTML: JavaScript / Objektreferenz^^ Dort findest du eig. alle JavaScript Objekte und deren zugehörigen Eigenschaften und Funktionen, jeweils immer noch mit einem kleinen Beispiel :)
    Und auch die Fehlerkonsole deines Browsers wird sicherlich dein absolut bester Freund werden :wink:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!