Gå til innhold

Sende data fra en server til en annen server via content


Anbefalte innlegg

Jeg har en fil på localhost som innholder Javascriptet i koden under.

Dette Javascriptet sender TEXT fra localhost til en fil på ekstern server som heter receive.php. Hvordan skriver jeg receive.php slik at jeg kan motta teksten TEXT som ligger i content.

 

Jeg ønsker ikke å bruke Javascript for å motta TEXT i receive.php.

 

var text = 'TEXT';
var sendIt = typeof(window.XMLHttpRequest) == 'undefined' ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();

sendIt.open('POST', 'receive.php', true);
sendIt.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');
sendIt.setRequestHeader('Content-length', text.length);
sendIt.setRequestHeader('Connection', 'close');
sendIt.send(text);

Endret av Hobbyhorse73
Lenke til kommentar
Videoannonse
Annonse

Variabler som blir sendt via form med method lik POST legges automatisk i superglobalen $_POST[].

 

Jeg klarer ikke å se navnet på variabelen du setter teksten i ut fra skriptet men jeg går ut i fra at skriptet simulerer noe slikt:

 

<form method="POST" action="http://example.com/recieve.php">
<textarea name="my_text">tektsten ligger her</textarea>
</form>

 

I recieve.php vil teksten da finnes i variablen $_POST['my_text'] siden det er navnet på textarea.

 

Håper det hjelper.

Lenke til kommentar

Jeg skal sende automatisk data fra localhost til en ekstern server via en nettside på localhost og dataen skal sendes som HTML innhold... Alså motsatt vei av det som skjedde nettopp da du lastet ned akkurat denne her siden.

 

Hvis jeg hadde brukt et skjema, så ville transmit.php på localhost ha sett cirka noe slikt ut:

 

<script>
 function doSendIt() {
   var text = document.someName.value;
   var sendIt = typeof(window.XMLHttpRequest) == 'undefined' ?
      new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
   sendIt.open('POST', 'receive.php', true);
   sendIt.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');
   sendIt.setRequestHeader('Content-length', text.length);
   sendIt.setRequestHeader('Connection', 'close');
   sendIt.send(text);
 }
</script>
<form onsubmit='javascript: doSendIt(); return false;'>
 <input name='someName' value='someValue'>
</form>

 

Når dette genereres i transmit.php, så sendes data fra localhost til

serverfilen recieve.php og i variablen for content i $_SERVER er da:

 

$_SERVER[CONTENT_TYPE]=application/x-www-form-urlencoded; charset=UTF-8;

$_SERVER[CONTENT_LENGTH]=9

 

Nå skal recieve.php lese HTML innholdet som følger etter som er someValue.

 

Jeg klør meg i hode, for det her får jeg ikke til.

Endret av Hobbyhorse73
Lenke til kommentar

Når du har sagt A, så får du si B, Thomas. Spytt ut hva du hadde tenkt å si, jeg er helt på felgen å finne en bedre løsning enn det jeg har nå.

 

Nå bruker jeg

  sendIt.open('GET', 'receive.php?data som skal sendes', true);
  sendIt.send(null);

 

Den kan jeg lese via $_SERVER[QUERY_STRING]. Det er en dårlig løsning som får fungere til jeg har en bedre løsning.

Lenke til kommentar

Nå er mine JS-kunnskaper litt varierende, men husker jeg ikke helt feil må variablen text i det første innlegget inneholde en string ala.

param1=verdi&param2=verdi2&osv.

For å få ut $_POST med param1 og param2 som definerte indekser med tilhørende verdi.

 

Forøvrig finnes det rammeverk som gjør dette og ganske mye annet for deg uten at du trenger å tenke på nettlesere o.l.

Endret av Ernie
Lenke til kommentar

function ajax_send() 
{   
   if (http.readyState == 4) 
{
	if(http.status == 200) 
	{
           var results = http.responseText;
		document.getElementById(update_div).innerHTML = results;
       }
   }
}


function ajax_request_search_s(SEARCH) 
{     	
var url = "ajax_search.php?search=";

http.open("GET", url + escape(SEARCH));
http.onreadystatechange = ajax_send;
http.send(null);

document.getElementById('ajax').innerHTML = "<div align=\"center\"><img src=\"http://www.ksl.com/images/loading.gif\" alt=\"Loading...\"></div>";
update_div = "ajax";
}

function getHTTPObject() 
{
var xmlhttp;

if(window.XMLHttpRequest)
{
	xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	if (!xmlhttp)
	{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
}

return xmlhttp;
}

var http = getHTTPObject();

 

Det er mitt Ajax-script. Kall funksjonen ajax_request_search_s noe annet, og det som settes i SEARCH, er contenten av input-fielden din :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...