PHP Einstellungen unter Mac OS X Server?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von allesinmac, 28.07.2005.

  1. allesinmac

    allesinmac Thread Starter MacUser Mitglied

    Beiträge:
    113
    Zustimmungen:
    0
    MacUser seit:
    28.09.2003
    Wo kann man unter Mac OS X Server Einstellungen für PHP einstellen? Ich bräuchte die Funktion das er auch Befehle die man in der URL eingibt, zulässt. Also wie index.php?page=4

    Wo kann man sowas Einstellen?


    Danke im Voraus!
     
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.044
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    das tut PHP! Der Wert findet sich dann in

    $_GET['page']

    wieder. Bei Formularen die Variable per HTTP_POST übermitteln findet man die Werte in $_POST[] wieder ( hier also $_POST['page']). Diese arrays sind Superglobal, also überall verfügbar und enthalten die Vorgaben von aussen. Ob sie zulässig sind und im Skript verwendet werden, mußt Du dann prüfen.
     
  3. esbmm

    esbmm MacUser Mitglied

    Beiträge:
    6
    Zustimmungen:
    0
    MacUser seit:
    28.07.2005
    PHP: Parameter als Variable verwenden

    Hallo zusammen,

    der Moderator hat Recht, trotzdem möchte ich noch etwas ergänzen, was auch die Sicherheit des PHP-Scripts noch etwas erhöht. Zunächst ein Code-Schnipsel:

    $Parameters = explode("&",$_SERVER['QUERY_STRING']);
    foreach($Parameters as $Parameter)
    {
    list($key,$value) = explode("=",$Parameter);
    switch($key)
    {
    case "print": $PrinterOutput = $value; break;
    case "validate": $ShowValidation = $value; break;
    }
    }

    Zur Erläuterung: Jeden erwarteten Parameter in einer case-Anweisung zu behandeln, halte ich für sicherer. Individuelle Prüfungen u.v.m. sind möglich.
    Die Liste läßt sich beliebig erweitern.

    Die Verwendung von $print und $validate (s. Beispiel) auf jeden Fall vermeiden, sondern nur selbst initialisierte Variablen verwenden!

    MfG
    Manfred

    PS: Auslöser bei mir war, daß ICH die Seiten-Parameter "einfach so" verwenden wollte - mein SERVER aber nicht !
     
  4. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.044
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    Ja, das ist hier per Definition so :D
    *schnellduck*

    Danke für die Ergänzung Manfred,
    die Methode mit dem QUERY_STRING kannte ich noch nicht, aber ich bevorzuge meist ohnehin POST, weise aber auch immer indirekt zu. Deine Methode gefällt mir, werds mir merken. Btw.: wenn Du Tags verwendest, ist Dein Tipp besser lesbar
    (php) und (/php) nur eben in eckigen Klammern:

    PHP:
    $Parameters explode("&",$_SERVER['QUERY_STRING']);
    foreach(
    $Parameters as $Parameter)
    {
      list(
    $key,$value) = explode("=",$Parameter);
      switch(
    $key)
      {
        case 
    "print"$PrinterOutput $value; break;
        case 
    "validate"$ShowValidation $value; break;
      }
    }
    Gruß wegus
     
  5. allesinmac

    allesinmac Thread Starter MacUser Mitglied

    Beiträge:
    113
    Zustimmungen:
    0
    MacUser seit:
    28.09.2003
    versteh ich jetzt irgendwie nicht so ganz. wo soll ich das rein schreiben? mein script läuft auf anderen webserver einbandfrei nur auf mac os x wurde irgendwas deaktiviert sodass nichts passiert wenn ich das hinter der url dran hänge. das ist doch glaub ich ne .ini wo man das alles einstellen kann...?
     
  6. dms

    dms Gast

    Rufst Du die Seiten auch wirklich über einen Webserver auf (also z.B. Apache)? Ich bezweifle dass die Parameterübergabe standarmässig deaktiviert ist. Falls doch, die PHP-Konfigurationsdatei heisst php.ini, für Apache schau mal in der httpd.conf bzw. apache2.conf...
     
  7. djsmokie

    djsmokie MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    0
    MacUser seit:
    17.02.2004
    Ja, und was genau müsste man dann in der php.ini Datei einntragen?

    Danke,

    DJ Smokie
     
  8. Paefchen

    Paefchen MacUser Mitglied

    Beiträge:
    144
    Zustimmungen:
    0
    MacUser seit:
    04.05.2003
    php.ini
    [...]
    register_globals = On
    [...]

    ich verweise aber mal darauf hin das man diese so soggenanten Superglobalen nicht verwenden sollte. In der php.ini steht:

    ; Whether or not to register the EGPCS variables as global variables. You may
    ; want to turn this off if you don't want to clutter your scripts' global scope
    ; with user data. This makes most sense when coupled with track_vars - in which
    ; case you can access all of the GPC variables through the $HTTP_*_VARS[],
    ; variables.
    ;
    ; You should do your best to write your scripts so that they do not require
    ; register_globals to be on; Using form variables as globals can easily lead
    ; to possible security problems, if the code is not very well thought of.


    diese liegt übrigens auf einem Mac OS X Server unter /etc und heisst: /etc/php.ini.default. Musst Du also umbenenne in /etc/php.ini

    Aber sonst lese mal das http://www.php.net/manual/de/security.globals.php darüber. Das sagt eigentlich alles dazu...

    Die sind übrigens nicht nur bei Mac OS X auf aus, sondern sind seit Version 4.1 (glaube ich das es 4.1 wahr) Standardmäßig auf aus!
     
  9. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.044
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    Ah, ich glaube anders herum wird da ein Schuh draus! Wenn Du noch eine ältere PHP-Version laufen hast, dann wird aus jedem übergebenen Parameter

    index.php&page=4

    in der datei eine Variable $page. Ist es das was Du suchst? Dann mußt Du in der php.ini

    register global = on

    setzen. In nem Intranet ist das o.k., im web aus Sicherheitsgründen nicht mehr targbar. Daher ist register globals per default of. Es gelten daher in neueren Versionen die oben genannten Superglobalen arrays $_GET und $_POST.
    Bei alten skripten, mußt Du register globals wieder aktivieren. Ich hab davon auch noch etliche im Intranet laufen...
     
  10. Paefchen

    Paefchen MacUser Mitglied

    Beiträge:
    144
    Zustimmungen:
    0
    MacUser seit:
    04.05.2003
    Der Vollständigkeit halber. Wenn Du einen Server mit Virtual-Hosts hast, kann es auch sinn machen das nur für eine Domain zu ändern. Dann einfach in der Apache Konfigurationsdate in der VirtualHost Definition:

    php_flag register_globals on

    und wenn man darauf kein zugriff hat, kann man es immer noch in die .htaccess schreiben..

    Gruß
    Aron
     
Die Seite wird geladen...
Ähnliche Themen - PHP Einstellungen unter
  1. alex1000
    Antworten:
    5
    Aufrufe:
    159
    pmau
    26.08.2016
  2. mad dog
    Antworten:
    19
    Aufrufe:
    2.085
    MacEnroe
    14.08.2015
  3. 404
    Antworten:
    0
    Aufrufe:
    483
  4. Akeno
    Antworten:
    5
    Aufrufe:
    1.189
    Akeno
    12.09.2014
  5. macboehni
    Antworten:
    2
    Aufrufe:
    933
    macboehni
    24.01.2014