2015. december 9., szerda

Hogyan futtassak PHP programot a Blogger-on?

Bizonyára sokakban felmerült már az igény, hogy kedves kis blogjában lefuttasson egy-két PHP scriptet. S gondolom, csalódottan tapasztalta, hogy közvetlenül a bejegyzésekbe nem lehet PHP scripteket írni.

Nos, mindenre van megoldás!


Először is, mit kell tudni az ilyen célra használt PHP kódokról?


  1. A PHP kódokat egy máshol tárolt fájlba kell beleírnunk!
    A fájlt tegyük egy olyan domain-re, amelyiken a PHP futtatható, és ami elérhető az Internetről! (Nem szükséges biztosítani https elérést.)
      
  2. Fontos, hogy az alábbi header() utasítás szerepeljen benne!

header("Access-Control-Allow-Origin: domain-ahonnan-hívom");

Ha azt szeretnénk, hogy a kérdéses PHP programunk csak akkor adjon normális végeredményt, ha a blogspot (Blogger) valamelyik nyelvi mutációjáról hívják meg, akkor a fenti egysoros utasítást bővítsük ki az alábbi módon:

if(preg_match("/\.blogspot\.[^\.]{2,8}$/", $_SERVER['HTTP_ORIGIN'])) {
  header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_ORIGIN']);
}



Na, és hogyan illesszük be a PHP kimenetét a Blogger bejegyzésbe?



A beillesztést (meghívást) jQuery.ajax()-szal végezzük el!
Például a bejegyzésbe beillesztünk egy div-et, adunk neki egy id-t, s az ajax()-szal meghívott PHP kimenetét beolvastatjuk ebbe a div-be.
Íme egy egyszerű példa:

<script type="text/javascript">
 $.ajax({
    url: "http://a-te-domained/a-te-PHP-fájlod.php",
    crossDomain: true
 }).done(function(data) {
    $('#mydiv').html(data);
 });
</script>
<div id="mydiv"></div>


Ha POST metódussal szeretnéd meghívni a PHP fájlodat, s még adatokat is szeretnél átadni neki, akkor egészítsd ki az ajax() hívást a 'method' és a 'data' beállításokkal. Pl. így:

<script type="text/javascript">
 $.ajax({
    url: "http://a-te-domained/a-te-PHP-fájlod.php",
    crossDomain: true,
    method: "POST",
    data: { param1: "a-param1-értéke", param2: "a-param2-értéke" }
 }).done(function(data) {
    $('#mydiv').html(data);
 });
</script>

És ennyi! Jó programozást! :)

Nincsenek megjegyzések:

Megjegyzés küldése