kostenloser Webspace werbefrei: lima-city


Quellcode per POST verschicken?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    schachfeld

    schachfeld hat kostenlosen Webspace.

    So da ich leider keine Antworten mehr bekomme habe ich beschlossen ein neues Thema aufzumachen:
    Ich brauche bei file_put_contents($filename, $data) als Variable $data Teil aus dem Quellcode der eigenen Datei. Ich denke, dass man das mit dem POST Verfahren lösen kann, jedoch weiß ich nicht wie ich Quellcode mit POST verschicken kann.
    Geht das?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Du hättest schon eine Antwort bekommen, es braucht nur Zeit. Hier ist auch nicht alles so, dass alle nur darauf warten zu posten. Der einzige der darauf zu warten scheint, posten zu können, scheint Hackyourlife zu sein :-D

    Also, du benötigst eine XMLHTTPRequest, also eine Ajax Anfrage. Folgendes würde den Content senden:
    var xhr = new xmlhttprequest();
    xhr.open( "POST" , "myURL.de" , true );
    xhr.onreadystatechange = function() {
        if ( xhr.readystate == 4 ) {
            // verarbeite antwort
            alert( xhr.responseText );
        }
    }
    xhr.send( "quelltext=" + document.body.innerHTML );

    Damit sollte deine Anfrage getätigt sein :)

    Liebe Grüße
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du könntest auch den Content-Type auf
    text/plain
    setzen, die Daten schicken und sie am Server in PHP durch Lesen von
    php://input
    bekommen.

    Bei ggamees Beispiel müsstest du die Daten (
    document.body.innerHTML
    ) urlcodieren…
  5. Autor dieses Themas

    schachfeld

    schachfeld hat kostenlosen Webspace.

    Tut mir leid ;) Danke für die Antworten! Ich brauchd den ganzen Kram nur morgen fertig und deshalb hab ichs so eilig.
    Tut mir leid dass ich jetzt nochmal so doof frage... aber ich verstehe das noch nicht so ganz. Wie kann ich das machen, dass ich wenn ich auf einen Button clicke, er das dann versendet? Mit einer Funktion? Aber da sagt mir dreamveaver, dass das so nicht geht. Wie kann ich dass dann mit PHP empfangen? Also normalerweise ist es ja
    $_POST['namedesinputs']
    . Aber wo ist hier der Name eines Inputs?

    Ich kenn mich da nicht so aus.

    Vielen Dank für die Antworten! (und natürlich die kommenden :P)
  6. g****e

    Fangen wir mal vorne an, du brauchst eine Funktion, welche das Senden übernimmt:
    function sendSource() {
        var xhr = new xmlhttprequest();
        xhr.open( "POST" , "index.php" , true );
        xhr.onreadystatechange = function() {
            if ( xhr.readystate == 4 ) {
                // verarbeite antwort
                alert( xhr.responseText );
            }
        }
        xhr.send( "quelltext=" + encodeURI( document.body.innerHTML ) );
    }

    Wenn du diese funktion aufrufst, werden die Daten an den Server gesendet. Die XHR ist eine asynchrone Anfrage an den Server. Diese werden als "POST" übertragen, und an die index.php gesendet. Als daten übergebe ich dem xhr, also dem Senden, ein Feld "quelltext", welches dann den jetzt encodierten Wert, also den Quelltext enthält. Ich bin zwar nicht ganz sicher, ob der wirklich encoded werden muss, aber wenn hackyourlife das sagt, ists wohl wahr.
    In der index.php kannst du nun auf diesen Wert zugreifen, indem du
    $_POST['quelltext']
    sagst. Denn wir haben diese Daten im xhr.send als quelltext= gesendet, also auf PHP Seiten auch mit dem Namen ansprechen.
    Um das jetzt auf einen Button zu mapen, musst du diesen Button selektieren, und das click event mit der Funktion verknüpfen:
    document.getElementById( "meinTollerButtonBeiDemGesendetWerdenSoll" ).addEventListener( "click" , sendSource );

    Damit hast du dann das Clickevent mit der Funktion verknüpft. Ist das soweit klar?

    Wenn Fragen bestehen, immer her damit.

    Liebe Grüße

    Beitrag zuletzt geändert: 3.12.2012 17:30:43 von ggamee
  7. Autor dieses Themas

    schachfeld

    schachfeld hat kostenlosen Webspace.

    So jetzt hab ich es schon mal vernünftig geschafft... also so ähnlich. Aber er sendets mir trotzdem noch nicht :(
    function sendSource() {
    	alert('hallo1');
        var xhr = new XMLHttpRequest();
        xhr.open( "POST" , "svgneu.php" , true );
        if (xhr.readyState==4) {
            // verarbeite antwort
            alert(xhr.responseText);
        }
        xhr.send( "quelltext=" + encodeURI( document.body.innerHTML ));
    }

    ich hab festgestellt dass er die funktion ausführt aber bei
    if (xhr.readyState==4) { alert(xhr.responseText);}
    irgendwie hängen bleibt. Weil xhr.responseText gibt er irgendwie nicht aus.
    und xhr.send führt er auch nicht aus.
  8. g****e

    Darum ein
    xhr.onreadystatechange = function() {
        if ( xhr.readystate == 4 ) {
            // verarbeite antwort
            alert( xhr.responseText );
        }
    }

    Tut mir leid, das hab ich im zweiten Post mal ergänzt, das hatte ich total vergessen. Ansonsten bringt er da ab.

    Liebe Grüße
  9. Autor dieses Themas

    schachfeld

    schachfeld hat kostenlosen Webspace.

    So siehts jetzt insgesamt aus:
    function sendSource() {
    	alert('hallo1');
        var xhr = new XMLHttpRequest();
        xhr.open( "POST" , "svgneu.php" , true );
        xhr.onreadystatechange = function() {
        if ( xhr.readystate == 4 ) {
            // verarbeite antwort
            alert( xhr.responseText );
        }
    }
        xhr.send( "quelltext=" + encodeURI( document.body.innerHTML ));
    }

    Funktioniert leider trotzdem nicht :(
    Gibt immer noch nicht
    xhr.responseText
    aus und sendet auch nicht ab...

    Nachtrag:

    So habs jetzt geschafft :P endlich fertig... phuu... Vielen lieben Dank für die Hilfe!!!!! Is nämlich für nen Wettbewerb :P muss heute zur Post :)

    Beitrag zuletzt geändert: 3.12.2012 18:11:24 von schachfeld
  10. Und wie hast du es geschafft?

    Würde andere User bestimmt genauso interessieren.
  11. Autor dieses Themas

    schachfeld

    schachfeld hat kostenlosen Webspace.

    Ich hab ein bisschen eingedacht und hab jetzt hiervon den Code kopiert und ein wenig verändert:
    http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_post2
    Am ende siehts dann so aus:
    function sendSource() {
        var xmlhttp;
    if (window.XMLHttpRequest)
      {// code für IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code für IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        alert( smlhttp.responseText );
        }
      }
        xmlhttp.onreadystatechange = function() {
        if ( xmlhttp.readystate == 4 ) {
            // verarbeite antwort
            alert( xmlhttp.responseText );
        }
    }
    	xmlhttp.open( "POST" , "svgneu.php" , true );
    	xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.send( "quelltext=" + encodeURI( document.getElementById('post').innerHTML );
    }

  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!