thomas: Problem mit "-Anführungszeichen!

Hallo; Ich übergebe eine Variable per POST mit dem Inhalt

Ist es "cool"?

an eine andere Datei. Wenn ich per echo diese Variable ausgebe, bekomme ich aber nur

Ist es \

ausgegeben. Irgendwie muss ich die Anführungszeichen noch maskieren, aber addslashes() bringt auch nichts....

thomas.

  1. Moin!

    Hallo; Ich übergebe eine Variable per POST mit dem Inhalt

    input oder textarea?

    Wie ist magic quotes gesetzt?

    Quelltext?

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. input oder textarea?

      Input

      Wie ist magic quotes gesetzt?

      ; Magic quotes
      ;

      ; Magic quotes for incoming GET/POST/Cookie data.
      magic_quotes_gpc = On

      ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
      magic_quotes_runtime = Off

      ; Use Sybase-style magic quotes (escape ' with '' instead of ').
      magic_quotes_sybase = Off

      1. Hoppla hab mich gerade registriert und schon erschein ich unter anderem Namen.. jetzt also exciter!

        1. Hi, es gibt da ne einfache Möglichkeit:
          zu Beginn überprüfst du deine Einstellungen und schmeißt alle Slashes raus, falls sie gesetzt wurden...

          /* Bei PHP Versionen unter 4.10 stehen die neuen Superglobals (REQUEST, POST, GET) noch nicht
          zur Verfügung und müssen mit den Daten aus den alten Arrays gefüllt werden. */
          if($phpversion < 410) {
           $_REQUEST=array();
           $_COOKIE=array();
           $_POST=array();
           $_GET=array();
           $_SERVER=array();
           $_FILES=array();
           $_ENV=array();
           $_SESSION=array();
           get_vars_old();
          }

          /* Magic Quotes fügen den übergebenen Daten automatische Slashes hinzu. Diese müssen wieder
          entfernt werden, um eine allgemeine Behandlung der Daten zu gewährleisten. */
          if (get_magic_quotes_gpc()) {
           if(is_array($_REQUEST)) $_REQUEST=stripslashes_array($_REQUEST);
           if(is_array($_POST)) $_POST=stripslashes_array($_POST);
           if(is_array($_GET)) $_GET=stripslashes_array($_GET);
           if(is_array($_COOKIE)) $_COOKIE=stripslashes_array($_COOKIE);
           if(isset($_SESSION) && is_array($_SESSION)) stripslashes_array($_SESSION);
          }

          @set_magic_quotes_runtime(0);

          Bei den Routinen werden diese zwei Funktionen zusätzlich benötigt:

          /**
           * @return void
           * @desc Diese Funktion füllt die Arrays $_REQUEST $_POST $_GET $_COOKIE usw.
           * mit den Daten aus dem equivalenten Arrays aus PHP Versionen vor 4.10
           */
          function get_vars_old() {
           global $HTTP_COOKIE_VARS, $HTTP_POST_FILES, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS, $HTTP_SESSION_VARS, $_REQUEST, $_COOKIE, $_POST, $_GET, $_SERVER, $_FILES, $_ENV, $_SESSION;

          if(is_array($HTTP_COOKIE_VARS)) {
            while(list($key,$val) = each($HTTP_COOKIE_VARS)) {
             $_REQUEST[$key] = $val;
             $_COOKIE[$key] = $val;
            }
           }

          if(is_array($HTTP_POST_VARS)) {
            while(list($key,$val) = each($HTTP_POST_VARS)) {
             $_REQUEST[$key] = $val;
             $_POST[$key] = $val;
            }
           }

          if(is_array($HTTP_GET_VARS)) {
            while(list($key,$val) = each($HTTP_GET_VARS)) {
             $_REQUEST[$key] = $val;
             $_GET[$key] = $val;
            }
           }

          if(is_array($HTTP_POST_FILES)) {
            while(list($key, $val) = each($HTTP_POST_FILES)) {
             $_FILES[$key] = $val;
            }
           }

          if(is_array($HTTP_SERVER_VARS)) {
            while(list($key, $val) = each($HTTP_SERVER_VARS)) {
             $_SERVER[$key] = $val;
            }
           }

          if(is_array($HTTP_ENV_VARS)) {
            while(list($key, $val) = each($HTTP_ENV_VARS)) {
             $_ENV[$key] = $val;
            }
           }

          if(is_array($HTTP_SESSION_VARS)) {
            while(list($key, $val) = each($HTTP_SESSION_VARS)) {
             $_SESSION[$key] = $val;
            }
           }
          }

          /**
           * @return array array
           * @param array array
           * @desc Diese Funktion wendet die Funktion stripslashes()
           * auf alle Elemente eines Arrays (auch mehrdimensional) an.
           */
          function stripslashes_array(&$array) {
           reset($array);
           while(list($key, $val) = each($array)) {
            if(is_string($val)) {
             $array[$key] = stripslashes($val);
            }
            elseif(is_array($val)) {
             /* rekursiver Aufruf bei mehrdimensionalem Array */
             $array[$key] = stripslashes_array($val);
            }
           }
           return $array;
          }

          Nun hast du alle Daten OHNE Slashes, also musst du für die Abfragen mit SQL usw. wieder welche hinzufügen. Aber für einfache Ausgaben kannst du nun einfach echo $variable machen...

          Gruss Stefan

      2. Moin!

        ; Magic quotes for incoming GET/POST/Cookie data.
        magic_quotes_gpc = On

        Wenn Du die Daten per HTML ausgibst:
        Erstetze alle " durch &quota;

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. Moin!

          Erstetze alle " durch &quota;

          Ersetze alle '"' in den Eingangsvariablen durch '&quote'; oder stelle das Verhalten ab, indem Du
          magic_quotes_gpc = Off einstellst.

          Ich schlag mich hier gerade mit einen kleinen Konfigurationsproblem herum. ATI liefert einen *piep* Treiber und ein noch *fiep* eigenes Konfigurarionsprogramm für den X- Server...

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. Ok danke für die Tipps, werds mal probieren...

  2. Hallo,

    Ist es "cool"?
    Ist es \
    ausgegeben. Irgendwie muss ich die Anführungszeichen noch maskieren, aber addslashes() bringt auch nichts....

    Seltsam.
    Probier's mal mit stripslashes().
    Ich vermute, dass wegen magic_quotes PHP " zu " macht.

    Gruesse,

    Thomas

    --
    Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
    Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
  3. Hallo thomas,

    Hallo; Ich übergebe eine Variable per POST mit
    dem Inhalt

    Was bedeutet das? Machst du ein Formular und
    schickst es per POST ab? Falls ja: maskierst du "
    durch "? Oder wie machst du das sonst?

    an eine andere Datei. Wenn ich per echo diese
    Variable ausgebe, bekomme ich aber nur

    Ist es \

    ausgegeben.

    Hoert sich ganz danach an, dass du " nicht durch
    " maskierst.

    Gruesse,
     CK

    --
    Das Leben ist wie ein Kartenspiel: was dir gegeben wurde, ist vorbestimmt. Doch wie du damit spielst, ist deine Entscheidung.