Quellcode per POST verschicken?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
antwort
antworten
bekommen
bestehen
button
code
datum
funktion
index
input
post
posten
quellcode
senden
server
setzen
type
url
warten
-
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? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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
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 -
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
. Aber wo ist hier der Name eines Inputs?$_POST['namedesinputs']
Ich kenn mich da nicht so aus.
Vielen Dank für die Antworten! (und natürlich die kommenden :P) -
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
sagst. Denn wir haben diese Daten im xhr.send als quelltext= gesendet, also auf PHP Seiten auch mit dem Namen ansprechen.$_POST['quelltext']
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 -
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
irgendwie hängen bleibt. Weil xhr.responseText gibt er irgendwie nicht aus.if (xhr.readyState==4) { alert(xhr.responseText);}
und xhr.send führt er auch nicht aus. -
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 -
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
aus und sendet auch nicht ab...xhr.responseText
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 -
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 ); }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage