PHP per Javascript einfügen (Sicher?)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
auslese
browser
code
datei
datenbank
datum
dumme frage
einbinden
frage
funktion
mache
problem
quellcode
server
stehen
testen
tun
werfen
wissen
-
Hallo Leute,
ich möchte gerne eine PHP Datei auf einer externen Webseite einbinden und das mit Javascript.
Der PHP Code sieht in etwas so aus:
document.write("<?php include " ... } ?>");
Der Code zum einbinden etwa so:
<script src="DOMAIN/DATEI.php" type="text/javascript"></script>
Es sollte eigentlich funktionieren ... habe es noch nicht getestet :)
Mein Problem ist nun das ich nicht weiß ob das sicher ist, da ich in der PHP Datei meine Mysql-Daten stehen sollen.
So wie ich das nun gelernt habe wird PHP auf dem Server interpretiert (??RICHTIGES WORT??) und als HTML an den Browser gesendet und Javascript auf dem PC ausgeführt.
Also können meine Mysql Daten ausgelesen werden?
Ich wäre euch sehr verbunden^^
Mit freundlichem Gruß
Marvin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich behaupte dass es nicht geht da Javascript ja Browsereseitig interpretiert wird. Falls es dennoch klappen sollte hättest du ein riesieges Sicherheitsloch. Denn fast jede Programmiersprache-Sprache kann den Quellcode einer Seite auslsesen also auch deine Zugangsdaten.
-
Das Problem ist ja das es eine php Datei ist, in der die Daten stehen, welches nicht auslesbar ist. Doch wird das ganze von einer Javascript Datei aufgerufen :(
????
Aber eigentlich müsste die PHP Datei ja erst vom Server in Html umgewandelt werden und dann vom Javascript angezeigt werden oder kann Javascript etwa auch PHP interpretieren
Gehen wir mal davon aus, das es ein Loch ist wie kann ich das stopfen?
Beitrag zuletzt geändert: 25.4.2011 0:13:22 von besuchernews -
Das funktioniert so nicht.
Das höchste der Gefühle ist, Javascript durch den PHP-Parser zu jagen (mit Hilfe von mod-rewrite bzw. .htaccess allgemein). Je nachdem, was genau du vor hast, ist das auch garkeine so schlechte Lösung.
Andernfalls musst du ein wenig mit Ajax tricksen, wobei es auch hierbei wieder darauf ankommt, was du eigentlich vor hast.
Beitrag zuletzt geändert: 25.4.2011 0:15:56 von fabo -
Dann ruf die PHP-Datei einfach mittels Ajax auf. Das ist sicher und der beste Weg.
-
Das kann jeder Server, der einen normalen Seitenaufruf einer PHP-Datei zulässt. Lima kann das also. Dem Server ist es egal, ob die Seite durch Ajax, oder durch Eingabe der Adresse in den Browser durch den User aufgerufen wurde. Er erledigt einfach seinen Job.
Wie man Ajax benutzt, googelt man am Besten, es gibt eine Menge Tuts und vorgefertigte Codes.
Achte unbedingt darauf, dass der JS-Teil nur Anfragen stellt. Ob der Server die Anfragen ausführt, muss auch auf dem Server, also im PHP-Script, entschieden werden. Der Server kann nicht wissen, wer die Anfrage veranlasst hat und ob sie rechtens ist. Das muss er prüfen. -
besuchernews schrieb:
Da werfen sich 2 weitere Fragen auf^^ Entschuldigt
Wie mache ich das?
Kann das jeder Server? (Kompatibilität mäßig)
1. Nachfolgend ein simples Beispiel. Nach Klick auf den Button wird "datei.php" aufgerufen. In dieser Datei machst du dann deinen MySQL-Kram und gibst irgendetwas aus. Die Ausgabe wiederrum wird in "mydiv" übertragen und dort auch ausgegeben.
test.html:
<html> <head> <script type="text/javascript"> function ajaxRequest() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById('myDiv').innerHTML=xmlhttp.responseText; } } xmlhttp.open('GET', 'datei.php', true); xmlhttp.send(); } </script> </head> <body> <div id="myDiv"> </div> <button type="button" onclick="ajaxRequest()">Anfrage senden</button> </body> </html>
datei.php
<?php echo "Hello World"; ?>
2. Das o.g. Script ist für so ziemlich alle Browser kompatibel geschrieben. Der Server hat damit in erster Linie nichts zu tun, weil es Clientseitig aufgerufen wird. Lediglich die aufgerufene "datei.php" arbeitet serverseitig.
Beitrag zuletzt geändert: 25.4.2011 0:36:26 von fabo -
--------------------Mal was ganz anderes---------------------
Was ist wenn ich die per Javascript eingefügte PHP Datei noch einmal eine PHP Datei includen lasse?
1. Das Javascript
2.<?php header('Content-Type:text/javascript'); echo 'document.write("<?php include \'die Datei.php\'; ?>");'; ?>
3. Die eigentliche Datei mit den Daten
So ganz dumme frage: muss der Server, von dem die php datei eingebunden wird php können/unterstützen ?
-
Wie wäre es einfach mit testen? Zumal ich nicht verstehe, warum du es dir so schwer machst...
So ganz dumme frage: muss der Server, von dem die php datei eingebunden wird php können/unterstützen ?
Vielleicht nicht ganz so blöd: Du kannst mit JS keine externen Dateien aufrufen (Sicherheitsrichtlinie sämtlicher Browser). Allerhöchstens als Iframe. Dementsprechend müssen die Javascript und die PHP-Datei innerhalb der selben Domain vorhanden sein. Wenn der Server dann kein PHP unterstützt, ist dein gesamtes Vorhaben folglich für die Katz.
Beitrag zuletzt geändert: 25.4.2011 0:45:58 von fabo -
Testen ist schlecht^^
Das Testen, ob das Script funktioniert kann ich ja, das Problem ist, das mir das Wissen fehlt die Kinffe zu wissen, wie man meine Daten auslesen kann.
Mein Problem ist ganz einfach das ich zu doof bin wie einer zu denken, der meine Daten wohl möglich auslesen könnte.
Vielen Dank, das du meine Frage trotzdem beantwortet hast. -
Wenn du es genau so machst, wie ich es dir oben gezeigt habe, kann keiner deine Daten auslesen. Es sei denn, du lässt sie im Klartext anzeigen (was du sicherlich nicht tun wirst...).
Beitrag zuletzt geändert: 25.4.2011 0:49:18 von fabo -
Kann ich anstatt des "function ajaxrequest()" auch "window.onload = function ()" einfügen?
Und funktioniert das onload auch wenn ich es per src einfüge? also externe Datei?
Beitrag zuletzt geändert: 25.4.2011 0:53:52 von besuchernews -
Wie du die Funktion aufrufst, ist gänzlich dir überlassen ;)
EDIT:
Sollte ja so reichen:
<html> <head> <script type="text/javascript"> window.onload = function() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById('myDiv').innerHTML = xmlhttp.responseText; } } xmlhttp.open('GET', 'datei.php', true); xmlhttp.send(); } </script> </head> <body> <div id="myDiv"> </div> </body> </html>
Beitrag zuletzt geändert: 25.4.2011 1:04:38 von fabo -
Also funktionieren würde das meiner Meinung nach schon. Zum Beipiel wenn du mit JavaScript den Quellcode für ein PopUp-Fenster innerhalb der "Mutterseite" schreiben möchtest. Dann sehe der Code allerdings noch nen bisschen anders aus. Allerdings würde ich genau wie harrybotter davon abraten, denn so kann man mit Leichtigkeit die einzubindende Datei im Quelltext nachlesen.
Hoffe, dass ich helfen konnte. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage