Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge

 
Erweiterte Suche

5476 Beiträge in 1178 Themen- von 498 Mitglieder - Neuestes Mitglied: Rithaquesri

22.05.2012 10:23
ProfiHost - SupportforumTechnikProgrammiersprachenHilfe bei Variablen Übergabe HTML -> PhP gesucht !
Seiten: [1]   Nach unten
Drucken
Autor Thema: Hilfe bei Variablen Übergabe HTML -> PhP gesucht !  (Gelesen 4111 mal)
Andreas_Lenz
Newbie
*
Offline Offline

Beiträge: 2


Profil anzeigen
« am: 28.01.2004 00:09 »

Hallo zusammen,
ich habe ein grösseres Problem mit PhP.
Ich moechte einem Anmeldeformular (anmeldung.php) eine
Variable ueber "anmeldung.php?kurstag="AP7 / Samstag"
uebemitteln. Diese sollte dann in einem Textfeld als Inhalt erscheinen.
Die vorhergehende Seite ist eine reine DHTML-Seite.
Trotz eifriger Suche in einschlägigen Foren habe ich noch keine geeignete
Methode gefunden.

Kann mir jemand weiterhelfen ?

Vielen Dank im Voraus.

Gruss,

Andreas Lenz
Gespeichert
stefan
Gast
« Antworten #1 am: 28.01.2004 14:32 »

Hallo Andreas,

wenn ich Deine Frage richtig verstanden habe, sollte es reichen, wenn das entsprechende Formular den Wert der Variablen $_GET['kurstag'] bekommt. Also z.B. etwa so:

...
<input type="text" name="kurstag" value="<?php echo $_GET['kurstag']; ?>">
...

Gruß,

Stefan
Gespeichert
Andreas_Lenz
Newbie
*
Offline Offline

Beiträge: 2


Profil anzeigen
« Antworten #2 am: 28.01.2004 21:02 »

Hallo Stefan,

Vielen Dank fuer deine Hilfe.
Es funktioniert fast so wie es sein sollte.
Einziges Problem :
gebe ich anmeldung.php?kurstag="AP8 Donnerstag" ein,
erscheint im Textfeld :   ="\"AP8
Ich muss wohl noch die HTML URL irgendwie aufloesen.

Trotzdem ein sehr guter Tip!
Vielen Dank nochmal.

Gruss,
  Andreas Lenz
Gespeichert
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #3 am: 28.01.2004 22:45 »

Hallo Andreas,

Leerzeichen müssen natürlich entsprechend kodiert werden (%20), da eine URL nunmal nach dem ersten Leerzeichen endet.

BTW: Ich würde auf keinen Fall einen Teil der URL ungefiltert wieder ausgeben. Auf diese Art könnte Dir sonst jemand Code in die Seite einschleusen, den Du da nicht haben willst!
Also immer erst ausreichend filtern, wenn der Wert schon so wieder ausgegeben werden muß.

Gruß
Michael
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
Netizen
Newbie
*
Offline Offline

Beiträge: 37


Profil anzeigen WWW
« Antworten #4 am: 29.01.2004 20:30 »

Zitat von: "Michael"
BTW: Ich würde auf keinen Fall einen Teil der URL ungefiltert wieder ausgeben. Auf diese Art könnte Dir sonst jemand Code in die Seite einschleusen, den Du da nicht haben willst!

Stichwort "Cross Site Scripting" ...

Zitat
Also immer erst ausreichend filtern, wenn der Wert schon so wieder ausgegeben werden muß.

Das kann man gar nicht oft genug betonen, leider wirds nicht immer gemacht.

Gruß
n!
Gespeichert
Socke
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen WWW
« Antworten #5 am: 20.07.2004 04:17 »

Hallo,

zum einen kannst du zum übergeben der URL auch urlencode() benutzen, damit die leerzeichen und "&" zeichen entsprechend übersetzt werden.

als nächstes solltest du
Code:

$checked=1;
foreach ($_GET as $key => $var)
{
if (strlen($var)>50){$checked=0;}
if (eregi("[\]", $var)){$checked=0;}
if (eregi("[<]", $var)){$checked=0;}
if (eregi("[>]", $var)){$checked=0;}
if (eregi("[&]", $var)){$checked=0;}
if (eregi("[%]", $var)){$checked=0;}
if (eregi("[§]", $var)){$checked=0;}
if (eregi("[$]", $var)){$checked=0;}
if (eregi("[?]", $var)){$checked=0;}
if (eregi("[+]", $var)){$checked=0;}
if (eregi("[*]", $var)){$checked=0;}
if (eregi("[~]", $var)){$checked=0;}
if (eregi("[#]", $var)){$checked=0;}
if (eregi("[']", $var)){$checked=0;}
if (eregi("[\"]", $var)){$checked=0;}
}

\\ Hier irgendwas ausführen falls $checked==0 ist. Z.B weiterleitung auf ne Fehlerseite oder so.

es ist ne ganz simple Sache, habe ich auch nicht selbst gebaut, und geht auch etwas schicker, aber eigentlich völlig ausreichend

Um den String zu übergeben, ungeachtet dessen was drinsteht kannst du folgendes machen:

Code:

<script type="text/javascript"><!--

   var keyStr = "ABCDEFGHIJKLMNOP" +
                "QRSTUVWXYZabcdef" +
                "ghijklmnopqrstuv" +
                "wxyz0123456789+/" +
                "=";

   function encode64(input) {
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      do {
         chr1 = input.charCodeAt(i++);
         chr2 = input.charCodeAt(i++);
         chr3 = input.charCodeAt(i++);

         enc1 = chr1 >> 2;
         enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
         enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
         enc4 = chr3 & 63;

         if (isNaN(chr2)) {
            enc3 = enc4 = 64;
         } else if (isNaN(chr3)) {
            enc4 = 64;
         }

         output = output +
            keyStr.charAt(enc1) +
            keyStr.charAt(enc2) +
            keyStr.charAt(enc3) +
            keyStr.charAt(enc4);
         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";
      } while (i < input.length);

      return output;
   }

   function decode64(input) {
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
      var base64test = /[^A-Za-z0-9\+\/\=]/g;
      if (base64test.exec(input)) {
         alert("There were invalid base64 characters in the input text.\n" +
               "Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\n" +
               "Expect errors in decoding.");
      }
      input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

      do {
         enc1 = keyStr.indexOf(input.charAt(i++));
         enc2 = keyStr.indexOf(input.charAt(i++));
         enc3 = keyStr.indexOf(input.charAt(i++));
         enc4 = keyStr.indexOf(input.charAt(i++));

         chr1 = (enc1 << 2) | (enc2 >> 4);
         chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
         chr3 = ((enc3 & 3) << 6) | enc4;

         output = output + String.fromCharCode(chr1);

         if (enc3 != 64) {
            output = output + String.fromCharCode(chr2);
         }
         if (enc4 != 64) {
            output = output + String.fromCharCode(chr3);
         }

         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";

      } while (i < input.length);

      return output;
   }

   //--></script>


Dann im Formular:

Code:

onClick="document.base64Form.theText.value=encode64(document.base64Form.theText.value);"


einbauen.

Aus "AP7 / Samstag" wird "QVA3IC8gU2Ftc3RhZw=="

Zurückwandeln einfach mit php oder der entsprechenden Javascript function decode64(input):

Code:

$kurstag=base64_decode($_GET['kurstag']);


dann kann man auch benutzen:

Code:

<input type="text" name="kurstag" value="<?php echo $kurstag?>">


Gruss

Marcus
Gespeichert
Seiten: [1]   Nach oben
Drucken
Gehe zu: