![]() |
PHP-Variablen wiederholt an Javascript übergeben
Hallo DPler,
ich habe eine PHP-Datei, die globale Variablen hält, welche über "Pointer"-Variablen referenziert werden. Diese werden gefüllt wenn das PHP-Skript ausgeführt wird (gefüllt via MySQL). Nun möchte ich aus einem Javascript heraus diese "Pointer"-Variablen wiederholt füllen lassen und im Javascript zugänglich machen. Ist das machbar? Wenn Ja, wie? Grüße, dnub |
AW: PHP-Variablen wiederholt an Javascript übergeben
|
AW: PHP-Variablen wiederholt an Javascript übergeben
Danke für deine Anwort.
Nochmal zur Erklärung: Ein PHP-Skript füllt globale Variablen mit Informationen aus einer MySQL-Datenbank. Diese PHP-Variablen möchte ich in einem Javascript zur Verfügung stellen und tue dies auch indem ich das Skript inkludiere und dann in meinem Javascript die PHP-Variablen auslese:
Code:
Einmalig funktioniert das super, doch ich muss die Variablen in bestimmten Abständen neu füllen lassen und dann wieder an mein Javascript übergeben.
var test = "<?php echo($ref_phpvartest);?>";
Ich habe bereits versucht das Script mit einem AJAX XMLHTTPREQUEST neu ausführen zu lassen, aber die Daten in den globalen Variablen ändern sich leider nicht. Darum frage ich nun hier :) |
AW: PHP-Variablen wiederholt an Javascript übergeben
zum senden:
Code:
zum ausführen:
function setRequest(url,parameter) {
// Request erzeugen if (window.XMLHttpRequest) { request = new XMLHttpRequest(); // Mozilla, Safari, Opera } else if (window.ActiveXObject) { try { request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5 } catch (e) { try { request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6 } catch (e) {} } } // überprüfen, ob Request erzeugt wurde if (!request) { alert("Kann keine XMLHTTP-Instanz erzeugen"); return false; } else { // Request öffnen request.open('post', url, true); // Requestheader senden request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Request senden request.send(parameter); // Request auswerten request.onreadystatechange = function() { interpretRequest(); }; } }
Code:
muss man dann halt anpassen
function interpretRequest() {
switch (request.readyState) { // wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen case 4: if (request.status != 200) { alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status); } else { // Antwort des Servers -> als XML-Dokument var xmlDoc = request.responseXML; // Name aus dem XML-Dokument herauslesen var error = xmlDoc.getElementsByTagName('error')[0].getAttribute('code'); if (error != '0') { alert('Error '+error+' : '+xmlDoc.getElementsByTagName('error')[0].getAttribute('name')); return;} var id = xmlDoc.getElementsByTagName('deleted')[0].getAttribute('id'); document.getElementById('row_'+id).style.display = "none"; } break; default: break; } } |
AW: PHP-Variablen wiederholt an Javascript übergeben
der php script dazu:
Code:
$id = $_POST['row']; $sql = 'select * from '.$GLOBALS['sql_pre'].'Stations'; $result = sql_query($sql , array('')); if (count($result) >= 2) { $ajax_error = '3'; $check_error = "Eine Station muss bleiben!"; } $sql = 'DELETE FROM '.$GLOBALS['sql_pre'].'Stations WHERE ID = '.$id; $result = sql_query($sql , array('')); echo "<?phpxml version=\"1.0\" encoding=\"utf-8\"?>\n"; echo "<content>\n"; echo " <error code=\"".$ajax_error."\" name=\"".$check_error."\"/>\n"; echo "<deleted id=\"".$id."\"/>\n"; echo "</content>\n"; |
AW: PHP-Variablen wiederholt an Javascript übergeben
Das PHP-Script ist hochgradig unsicher!
SQL-Injections ! |
AW: PHP-Variablen wiederholt an Javascript übergeben
Code:
jetzt ist er sicher!
<?php
$badwords = Array('/(.*)(SELECT)( *?)(\*|\'?[a-z]\'? *?,? *?){1,}( *?)(FROM)(.*)/', '/(.*)(DELETE)( *?)(\[[A-Z0-9]\],?){0,4}( *?)(FROM)(.*)/', '/(.*)(DROP|ALTER)( *?)(\[[A-Z0-9]\],?){0,}( *?)(TABLE)( *?)(.*)/', '/(.*)(UPDATE)( *?)([a-z0-9[]]*?)( *?)(SET)( *?)(.*)/', '/(.*)(INSERT)( *?)(\[[A-Z0-9]\],?){0,4}( *?)(INTO)( *?)([A-Z0-9_\-]*)( *?)(VALUES)(.*)/', '/(.*)( *?)([A-Z0-9]{1,})(\'|"| *?)(AND|OR)( *?)(\'?|"?)([A-Z0-9]*)(\'?|"?)( *?)([=<>]{1,2})(.*)/'); function anti_inject(&$array) { global $badwords; foreach ($array as $key => $value) { $value = strtoupper($value); foreach ($badwords as $bad) { $bad = strtoupper($bad); if (preg_match($bad,$value)) { return true; } } } unset($bad); foreach ($array as $key => &$value) { $value = addslashes(stripslashes(mysql_real_escape_string($value))); } unset($value); return false; } if ((anti_inject($_POST)) or (anti_inject($_GET)) or (anti_inject($_COOKIE))) { die('Injectionsversuch erkannt!'); } ?> |
AW: PHP-Variablen wiederholt an Javascript übergeben
Um Gottes Willen, bloß nicht! So sollte man niemals programmieren! Bitte füge das letztere Script nicht in dein Projekt ein. :(
Der gesamte PHP-Code aus #5 und #7 ist (nimm's bitte nicht persönlich) grauenhaft. Da sind so viele Negativbeispiele zu finden... Was die Sicherheit des Scripts angeht reicht das hier völlig aus:
PHP-Quellcode:
Liebe Grüße,
$id = intval($_POST['row']);
Valentin |
AW: PHP-Variablen wiederholt an Javascript übergeben
Danke für die vielen Antworten.
Zitat:
|
AW: PHP-Variablen wiederholt an Javascript übergeben
Sicher reicht aus, aber in dem Projekt wo ich das kommen so viele Eingaben zusammen (beben int, Text, ect.) und das scannt einfach alles, wenn man mal vergisst zu überprüfen.
Des weiteren war das nur n Ausschnitt aus einem bestehendem Projekt, und ich hab mir php selbst beigebracht. Aber wenn du möchtest kannst du beide Ausschnitte korrigieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz