2011-01-16 6 views
0

Wie würden Sie Token mit den folgenden verwenden?Ajax mit Tokens

$('#DIV').load('child.php?id='+id);

Damit Sie nicht child.php direkt aus dem Browser zugreifen können, und geben Sie child.php? Id = 1

Ist dies nicht möglich, mit Token ist, würde es anders sein?

Gedanken über XMLHttpRequest wie folgt:

var mygetrequest=new ajaxRequest(); 
mygetrequest.onreadystatechange = function(){ 
    if (mygetrequest.readyState==4){ 
     if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){ 
      document.getElementById("DIV").innerHTML = mygetrequest.responseText; 
     } else{ 
      alert("An error has occured making the request"); 
     } 
    } 
} 
mygetrequest.open("GET", "child.php?id="+id, true); 
mygetrequest.send(null); 

Vielen Dank.

Antwort

1

Was Sie brauchen, ist zu überprüfen, ob die Anforderung eine Ajax-Anforderung ist (von load()) ist oder nicht, kann dies durch die folgenden erfolgen:
child.php:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
    // it's an ajax request validate id and continue! 
} else { 
    // this is not an ajax request, get out of here! 
} 
+0

hi habe deinen Kommentar nicht gesehen Sorry, würde das Bearbeitungselement, das ich in der Frage hinzugefügt habe, dann funktionieren? – Alfie

+0

@Alie: 1) Warum JS verwenden, wenn Sie jQuery bereits laden 2) Wenn Sie überprüfen möchten, ob der Benutzer von einer Jax-Anfrage oder von der Adressleiste auf die Datei 'child.php' zugreift, würde die von mir bereitgestellte Methode ausreichen dass – ifaour

+0

Funktioniert gut! Danke! – Alfie

0

Sie könnten jQuery Post verwenden, um die Parameter "hinter der Szene" zu senden und dann zu überprüfen, ob die Anfrage von einem bestimmten Ort oder IP innerhalb der eigentlichen PHP-Datei gesendet wurde. Wenn der Standort oder die IP nicht die Berechtigung haben, auf sie zuzugreifen, geben Sie einfach einen Fehler aus, indem Sie z. die die() Methode vor allem anderen wurde ausgegeben.

+0

Posteingang leicht erhalten manipuliert können ! und das Setzen einer IP ist keine generische Lösung! – ifaour

+0

Ich realisiere, dass Posteingaben manipuliert werden können, also der IP-Schutz sozusagen. Und die Verwendung der Variablen '$ _SERVER' in PHP, um die IP zu erhalten, würde jegliche Probleme mit dynamischen IPs beseitigen. Es würde auch nur die Anfragen an den Server beschränken. Was, ich schätze, reicht für OP's Problem. – eklundchristopher

Verwandte Themen