Ergebnis 1 bis 10 von 10
  1. #1
    Iltis ist offline Lounge-Member
    registriert
    14-05-2001
    Ort
    Bern
    Beiträge
    619

    [PHP] register_globals = off

    Hallo zusammen,

    ich habe zum Teil noch Webseiten, die mit register_globals = on arbeiten. Da dies ja bekanntlich eine Sicherheitslücke ist, möchte ich diese eigentlich ausschalten.

    Ich möchte nun wissen, ob die folgenden Variablen die einzigen sind, die es gibt und ob es reicht diese zu ersetzen.

    $_GET['variablenname']
    $_POST['variablenname']
    $_COOKIE['variablenname']
    $_SERVER['variablenname']

  2. #2
    Avatar von stanleyB
    stanleyB ist offline Doppel-As
    registriert
    09-05-2001
    Ort
    /dev/null
    Beiträge
    116
    $_SESSION[] ist noch ein Superglobal.

    Gruesse,
    stanleyB
    Homefucking Kills Prostitution!

  3. #3
    Avatar von rasputin
    rasputin ist offline Lounge-Member
    registriert
    31-10-2001
    Beiträge
    3.102
    es gibt insgesamt acht superglobale variablen. wie so oft hätte dir das phpmanual weitergeholfen...
    http://www.php.net/manual/en/languag...predefined.php

  4. #4
    Iltis ist offline Lounge-Member
    registriert
    14-05-2001
    Ort
    Bern
    Beiträge
    619
    @rasputin: Danke für die Antwort.

    Nun habe ich schon ein nächstes Problem. Ich kann zwar die Variablen mit echo ohne Probleme aufrufen, aber bei einem MySQL-Eintrag, gibt es einen Fehler:


    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING


    PHP-Code:
    $sql_query "INSERT INTO kurse (datum, ip, system, kursname, kurstext, kursart, tab_name, zimmer1, zimmer2, zimmer3, zimmer4, zimmer5, zimmer6, anf_datum, end_datum, reihenfolge, aktiv) ";
      
    $sql_query .= "VALUES('$datum', '$ip', '$system', '$_POST['kursname']', '$_POST['kurstext']', '$_POST['kursart']', '$tab_name', '$_POST['zimmer1']', '$_POST['zimmer2']', '$_POST['zimmer3']', '$_POST['zimmer4']', '$_POST['zimmer5']', '$_POST['$zimmer6']', '$anf_datum', '$end_datum', '$reihenfolge', '$_POST['aktiv']')";
      
    $result mysql_query($sql_query$mysql_verbindung);
      
      if (
    $result) {
       echo 
    "gelungen";
      } 
    (Die MySQL-Verbindung funktioniert.) Der Fehler trat auf der Zeile $sql_query .= "VALUES ..."; auf. Ich finde ihn aber nicht. (register globals globals ist noch auf on gestellt)

  5. #5
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    schau dir mal die Anführungszeichen an...
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

  6. #6
    Iltis ist offline Lounge-Member
    registriert
    14-05-2001
    Ort
    Bern
    Beiträge
    619
    Original geschrieben von .marc
    schau dir mal die Anführungszeichen an...
    Welche meinst du? Wenn ich $_POST['Var'] in $_POST["Var"] umwandle gehts auch nicht.

  7. #7
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    die hier '$_POST['kursart']'
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

  8. #8
    Iltis ist offline Lounge-Member
    registriert
    14-05-2001
    Ort
    Bern
    Beiträge
    619
    @.marc: Danke für die Antwort jetzt funktionierts.

    Aber wieso ist das so, dass es beim MySQL-Eintrag keine ' braucht und sonst kann man sie verwenden? Das erscheint mir jetzt unlogisch.

  9. #9
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    du unterbrichst bzw. beendest den MySql String sonst zu früh...
    und das es ohne geht liegt daran das man assoziative Arrays auch so ansprechen kann, ob das sonderlich gut ist, weiss ich jedoch nicht.
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

  10. #10
    Avatar von rasputin
    rasputin ist offline Lounge-Member
    registriert
    31-10-2001
    Beiträge
    3.102
    wenn error_reporting auf E_ALL eingestellt ist, gibt es einen error, wenn man assoziative arrays ohne ' anspricht.
    da ich persönlich immer mit registerglobals off und error_reporting e_all arbeite, würde ich den query so schreiben: (so siehst du am syntax-highlighting, dass es korrekt funktionieren sollte)
    PHP-Code:
     $sql_query .= "VALUES('".$datum."', '".$ip."', '".$system."', '".$_POST['kursname']."', '".$_POST['kurstext']."', '".$_POST['kursart']."', '".$tab_name."', '".$_POST['zimmer1']."', '".$_POST['zimmer2']."', '".$_POST['zimmer3']."', '".$_POST['zimmer4']."', '".$_POST['zimmer5']."', '".$_POST['$zimmer6']."', '".$anf_datum."', '".$end_datum."', '".$reihenfolge."', '".$_POST['aktiv']."')"

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •