- Info
- Oktatás
- Web
- Tudás
- Fotók
- Zene
- Pedig az Icának tetszik
- AS együttes
- Szerzemények vagy fordítások
- Koncertek
- Zenetanulás
- Gitártanulás
- Gitártanulás 2
- Gitárvásárlási tanácsok
- Énektanulás kezdőknek 1
- Énektanulás kezdőknek 2
- 4. Énektanulás kezdőknek - Színpadi előadás
- Basszusgitár tanulás 1.
- Basszusgitár tanulás 2
- Basszusgitár tanulás 3
- Basszusgitár tanulás 4
- Basszusgitár tanulás 5
- Basszusgitár tanulás 7
- Elektromos gitárok működése
- Énektanulás kezdőknek 3 - zenekari próba
- Szilykon iskolazenekar
- Griff Együttes
- Linkgyűjtemény zenészeknek
- Kedvenc zenészek, zenekarok
- Egyéb
- Letöltés
Biztonságos ajax hívások használata Drupal környezetben
fz, 2010, június 29 - 2:47du
1. Szerver oldalon generálok egy sóval egy tokent és azt $_SESSION változóba teszem valahogy így:
$_SESSION['tid'] = $token = drupal_get_token('Ez itt a só');
2. Ezt a tokent kiíratom a kliens oldalra, mint javascript változót:
<?PHP print ("<script type='text/javascript'> var tid = ".$token."; </script> "); ?>
3. Amikor ajax hívást indítok a kliens oldalról, akkor paraméterként hozzácsapom a javascript változó értékét (ez itt egy jquery példa):
....
$.post("http://foo.hu/ajax.php", {muvelet: "frissites", id: id,token:token},function (data){
alert(data);
});
....
4. A szerver oldalon az ajax.php először lefuttatja a Drupal inicializálást, majd majd ellenőrzi, hogy létezik-e a küldött tokenhez tartozóan session a sessions táblában, mert ha van, akkor betölti a session useréhez tartozó user paramétereit és végül beállítja a jogosultságokat:
<?php
//Drupal szükséges moduljainak betöltése
drupalize();
session_start();
function drupalize() {
while (!@stat('./includes/bootstrap.inc')) {
chdir('..');
}
require_once './includes/bootstrap.inc';
require_once './includes/file.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
}
//Token átvétele, user ellenőrzése, user betöltése
if( isset($_REQUEST['token'])){
$token =$_REQUEST['token'];
$sql= "select uid FROM {sessions} WHERE session LIKE '%%s%'";
$uid = 0;
$rs =db_query($sql, $token);
if($row = db_fetch_array($rs)){
$uid = $row['uid'];
}
//User betöltése, ha van ilyen user
$user_load($uid);
//User jogosultságok ellenőrzése
if(user_access("edit valami") or user_access("administer valami"))
............. itt lehet az adatázis módosítását elvégezni ...............
}
}
?>











