Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP-Variablen wiederholt an Javascript übergeben (https://www.delphipraxis.net/169153-php-variablen-wiederholt-javascript-uebergeben.html)

delphinub23 2. Jul 2012 20:38

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

BUG 2. Jul 2012 20:45

AW: PHP-Variablen wiederholt an Javascript übergeben
 
Ich habe zwar nicht verstanden, was du genau willst, aber es kling so, als ob Bei Google suchenAJAX (+ Bei Google suchenJSON) helfen könnte.

delphinub23 2. Jul 2012 21:01

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:
var test = "<?php echo($ref_phpvartest);?>";
Einmalig funktioniert das super, doch ich muss die Variablen in bestimmten Abständen neu füllen lassen und dann wieder an mein Javascript übergeben.

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 :)

schlagzu 2. Jul 2012 21:32

AW: PHP-Variablen wiederholt an Javascript übergeben
 
zum senden:
Code:
   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();
         };
      }
   }
zum ausführen:
Code:
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;
   }
}
muss man dann halt anpassen

schlagzu 2. Jul 2012 21:37

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";

generic 3. Jul 2012 08:41

AW: PHP-Variablen wiederholt an Javascript übergeben
 
Das PHP-Script ist hochgradig unsicher!

SQL-Injections !

schlagzu 3. Jul 2012 13:04

AW: PHP-Variablen wiederholt an Javascript übergeben
 
Code:
<?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!');
   }
?>
jetzt ist er sicher!

Valle 3. Jul 2012 14:04

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:
$id = intval($_POST['row']);
Liebe Grüße,
Valentin

delphinub23 3. Jul 2012 14:18

AW: PHP-Variablen wiederholt an Javascript übergeben
 
Danke für die vielen Antworten.

Zitat:

$id = intval($_POST['row']);
Die Zeile füllt doch die PHP-Variable mit dem Wert, der mit dem Aufruf übergeben wird, oder?

schlagzu 3. Jul 2012 14:34

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 19:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz