leerer cookie string bei INSERT INTO

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • leerer cookie string bei INSERT INTO

    Hallo,

    ich will den cookie als string username in der MySQL-Datenbank ablegen, der code:

    PHP-Code:
    //connection ausgelassen
    if (isset ($HTTP_COOKIE_VARS['username']))
    {
        
    $sql="INSERT INTO survey (player_name, session, timestamp)
                    VALUES ('
    $HTTP_COOKIE_VARS['username']', $session, CURRENT_TIMESTAMP)";
                
            if (!
    mysql_query($sql,$connection))
            {
             die(
    'Error when inserting: ' mysql_error());
            }

    Ich bekomme den Fehler: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/WebDev/jef/index.php on line 53
    - wobei line 53 die VALUES (...) ist - bei T_STRING meckert der parser auch...die anderen beiden Werte werden eingefuegt, also, die Bedingung ist wahr.

    Komisch ist, dass

    PHP-Code:
    echo ("Welcome back, "$HTTP_COOKIE_VARS['username']. "."); 
    den string einwandfrei ausgibt, ein typecast à la:

    PHP-Code:
    $user=$HTTP_COOKIE_VARS['username']; 
    ist immer "null"...?



    Bin ueber jeden Hinweis dankbar!
    Zuletzt geändert von jef; 26.05.2008, 01:07.

  • #2
    $HTTP_COOKIE_VARS ist seit PHP 4.0.1 deprecated. Nimm $_COOKIE.

    Kommentar


    • #3
      Das hätte ich vielleicht dazu sagen sollen, ich benutze $HTTP_COOKIE_VARS weil ich PHP mit WML verwende. Das ganze soll auch auf älteren WAP Handys laufen, die nur WML1.1 unterstützen, da funktioniert $_COOKIE nicht.

      Ausserdem: habs mal testweise mit $_COOKIE probiert (mit WMLBrowser für Firefox getestet, der versteht auch $_COOKIE) - das löst das Problem aber nicht.

      Hat jemand vielleicht noch eine andere Idee, was hier nicht stimmen könnte? Danke.

      Kommentar


      • #4
        Ich würde es mal so probieren
        PHP-Code:
        $sql="INSERT INTO survey (player_name, session, timestamp)
                        VALUES ('
        $HTTP_COOKIE_VARS[username]', $session, CURRENT_TIMESTAMP)";
        //oder gleich
        $sql="INSERT INTO survey (player_name, session, timestamp)
                        VALUES ('"
        .$HTTP_COOKIE_VARS['username']."',".$session.", CURRENT_TIMESTAMP)"
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von jef Das hätte ich vielleicht dazu sagen sollen, ich benutze $HTTP_COOKIE_VARS weil ich PHP mit WML verwende. Das ganze soll auch auf älteren WAP Handys laufen, die nur WML1.1 unterstützen, da funktioniert $_COOKIE nicht.

          Ausserdem: habs mal testweise mit $_COOKIE probiert (mit WMLBrowser für Firefox getestet, der versteht auch $_COOKIE) - das löst das Problem aber nicht.
          Du willst nicht allen Ernstes behaupten $_COOKIE würde auf dem Server nicht funktionieren, weil die Ausgabe deines Scripts WML ist?!

          Du kannst doch ausgeben was du willst, meinetwegen Weissbier und Brezen, das hat auf die Fähigkeiten deines Servers überhaupt keinen Einfluss. Wenn $_COOKIE bei dir nicht funktioniert, aber $HTTP_COOKIE_VARS, dann liegt das an deiner PHP-Version. Wenn der Client keine Cookies unterstützt, kannst du weder das eine noch das andere verwenden. In diesem Fall musst du den Usernamen eben anders weitergeben, z.B. per Session (SID in der URL).

          Kommentar


          • #6
            Vielen dank @jahlives! Manchmal ist man einfach betriebsblind....


            Original geschrieben von onemorenerd
            [Wenn $_COOKIE bei dir nicht funktioniert, aber $HTTP_COOKIE_VARS, dann liegt das an deiner PHP-Version....[/B]
            Richtig, hatte da nen Denkfehler, so ists manchmal wenn man trial-and-error auf nem server programmiert, auf dem man das environment nicht selbst aufgesetzt hat...

            Danke für den Support.

            Kommentar

            Lädt...
            X