daniel: Sessionvariablen werden nicht gespeichert :(

Hallo an alle PHP Gurus :)

ich bin schön langsam am verzweifeln mit diesen sessions.dabei möchte ich doch nur ein login script mit sessions machen..
also mein problem ist folgendes: ich habe hier ein kleines loginscript:
----------------------------------------
<?php
session_name("s_login");
session_start();
?>
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
include("../conn.php");
if($verbindung)
  {//Verbindung vorhanden
  $sql_login = 'SELECT benutzername,passwort FROM benutzerdaten WHERE benutzername = "'.$_POST["benutzername"].'"
      AND passwort = "'.$_POST["passwort"].'"';
  $erg_login = mysql_query($sql_login,$verbindung);
  if(mysql_num_rows($erg_login)==1)
    {//Login erfolgreich
 $sql = 'SELECT anrede,vorname,nachname FROM benutzerdaten   WHERE benutzername = "'.$_POST["benutzername"].'"';
 $erg = mysql_query($sql,$verbindung);
 list($anrede,$vorname,$nachname) = mysql_fetch_row($erg);
 //setzen der begrüssungsvariablen in der session

$_SESSION["s_anrede"] = $anrede;
 $_SESSION["s_vorname"] = $vorname;
 $_SESSION["s_nachname"] = $nachname;

//session_register($anrede,$vorname,$nachname);
 echo 'Willkommen, '.$anrede.' '.$vorname.' '.$nachname;
 echo '
 <br><br><br><br>
 <a href="logout.php" target="_self">Logout</a>
 ';

}
  else
    {//Login fehlgeschlagen
 echo "Login fehlgeschlagen";
 }
  mysql_close($verbindung);
  }
else
  {//Es konnte keine Verbindung zur Datenbank hergestellt werden
  echo "<br><br>Verbindung zur Datenbank konnte nicht aufgebaut werden!";
  }

?>
</body>
</html>
----------------------------------------

ok, also wenn der benutzer sich richtig eingeloggt hat sollen die 3 variablen $anrede,$name,$nachname als sessionvariablen gespeichert werden

das menü wird natürlich schon etwas grösser werden, jedoch zum test habe ich erst einmal eine logout seite gemacht(logout.php) mit diesem inhalt:
----------------------------------------
<?php
session_start();
?>
<html>
<head>
<title>Logout</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
echo $_SESSION["s_anrede"];
echo $_SESSION["s_vorname"];
echo $_SESSION["s_nachname"];
//echo $anrede;
//echo $vorname;
//echo $nachname;
$anrede = $_SESSION["s_anrede"];
$vorname = $_SESSION["s_vorname"];
$nachname = $_SESSION["s_nachname"];

$_SESSION = array();
if(session_destroy()==TRUE)
  {
  echo '<br><br>Auf Wiedersehn, '.$anrede.' '.$vorname.' '.$nachname;
  }
?>
<body>

</body>
</html>
----------------------------------------

egal wie ich es auch drehe oder wende, es kommt immer aufs gleiche raus, die variable existiert nicht, ob ich nun mit der funktion session_register() und der normalen variable arbeite, oder ob ich die angeblich seit php4.0 zu bevorzugende methode mit $_SESSION[] verwende.

noch dazu bin ich auf dem gebiet sessions ein ziemlicher newbie,habe erst gestern damit angefangen.was mich auch noch interressiert, wie denn der ungefähre ablauf einer session aussieht, ich meine zu wissen:

1.session wird gestartet mit session_start() ->wenn eine session vorhanden, wird diese übernommen, wenn keine session vorhanden wird eine neue erzeugt

2.session wird am server im dafür vorgesehenen verzeichnis laut php.ini angelegt

3.wenn eine variabl registriert wird werden die daten am server in die sessiondatei geschrieben

4.äquivalent zu 3 wenn daten unregistriert(oder wie das heisst :) ) werden

5.session bleibt solange am server erhalten wie es in der php.ini über maxlifetime festgelegt ist

6.session wird mit session_destroy() wieder gelöscht

das glaube ich über sessions zu wissen(ob es richtig ist oder nicht sei einmal dahingestellt).
welche bedeutung haben dann eigentlich die clientseitigen cookies, wenn eh alles am server gespeichert wird? wird hier dann nur die session id gespeichert und an den server geschickt damit der benutzer wieder erkannt wird und die session wieder aufgenommen werden kann ?

ich weiss das sind viele fragen, aber ich habe mich gestern den ganzen tag mühselig durch die aberwitzigsten seiten durchgekämpft um näheres über diese "ominösen" sessions zu erfahren aber man findet fast nirgends eine wirklich gute erklärung zu diesem thema und da kann man dann schon verzweifeln wenn man sich mühselig aus verschiedensten seiten noch so kleine informationen zusammensuchen muss :(

jedenfalls bedanke ich mich einmal im vorraus an diejenigen die sich diesem thema(wahrscheinlich eh schon zum 153.mal annehmen :))und mir einen kleinen einblick in die sache geben.

mfg
daniel

  1. Hi,

    1.session wird gestartet mit session_start() ->wenn eine session vorhanden, wird diese übernommen, wenn keine session vorhanden wird eine neue erzeugt

    richtig

    2.session wird am server im dafür vorgesehenen verzeichnis laut php.ini angelegt

    richtig

    3.wenn eine variabl registriert wird werden die daten am server in die sessiondatei geschrieben

    richtig

    4.äquivalent zu 3 wenn daten unregistriert(oder wie das heisst :) ) werden

    denke ich mal

    5.session bleibt solange am server erhalten wie es in der php.ini über maxlifetime festgelegt ist

    bzw. wenn der Browser geschlossen wird oder ähnliche Ereignisse eintreten

    6.session wird mit session_destroy() wieder gelöscht

    richtig

    welche bedeutung haben dann eigentlich die clientseitigen cookies, wenn eh alles am server gespeichert wird? wird hier dann nur die session id gespeichert und an den server geschickt damit der benutzer wieder erkannt wird und die session wieder aufgenommen werden kann ?

    auch richtig erkannt

    Durch Dein großes Beispiel blicke ich gerade nicht durch, hab auch nicht wirklich Böcke, aber versuch doch mal wirklich ein einfaches Beispiel

    seite1.php

    dort initierst Du eine session mit session_start()
    und schreibst in das Session_array 2 Variablen
    $_SESSION["test1"] = "hallO";
    $_SESSION["test2"] = 3;

    seite2.php

    wieder session_start()
    und dann die 2 Variablen ausgeben

    geht das?
    wenn nicht musst Du Deine Einstellungen in der php.ini zB. überprüfen.
    wenn doch, gehe Dein Script Schritt für Schritt durch

    <tip> nur soviel hinschreiben wie funktioniert un den Rest nach und nach reinkopieren und ausprobieren </tip>

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. hallo,

      Durch Dein großes Beispiel blicke ich gerade nicht durch, hab auch nicht wirklich Böcke, aber versuch doch mal wirklich ein einfaches Beispiel

      seite1.php

      dort initierst Du eine session mit session_start()
      und schreibst in das Session_array 2 Variablen
      $_SESSION["test1"] = "hallO";
      $_SESSION["test2"] = 3;

      seite2.php

      wieder session_start()
      und dann die 2 Variablen ausgeben

      geht das?
      wenn nicht musst Du Deine Einstellungen in der php.ini zB. überprüfen.
      wenn doch, gehe Dein Script Schritt für Schritt durch

      danke erst einmal für die hilfe, ich habe es anhand eines simplen beispieles ausprobiert, aber es funktioniert nicht.

      an welchen einstellungen in der php.ini könnte dies liegen?

      ich habe einmal irgendwo gelesen, dass in bestimmten php4.x versionen bugs im bezug auf das sessionhandlings aufgetreten sind, vielleicht hat das damit was zu tun? meine version ist 4.2.2

      grüsse,
      daniel

      1. Hi,

        danke erst einmal für die hilfe, ich habe es anhand eines simplen beispieles ausprobiert, aber es funktioniert nicht.

        funktioniert nicht heisst, dass die beiden Variablen leer bleiben, oder ?
        Also echo $_SESSION["variable"]; zeigt nichts an?

        an welchen einstellungen in der php.ini könnte dies liegen?

        gute Frage!
        nutzt Du Windows oder Linux?
        Bei Windows musst in der php.ini die Pfade anpassen, da diese meist an die Linuxssyntax angepasst sind
        Ansonsten fällt mir dazu nicht viel ein
        google nach php.ini und deiner php-Version

        ich habe einmal irgendwo gelesen, dass in bestimmten php4.x versionen bugs im bezug auf das sessionhandlings aufgetreten sind, vielleicht hat das damit was zu tun? meine version ist 4.2.2

        selbst wenn, haben bugs nichts mit der konkreten Verfügbarkeit zu tun.
        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. hallo romy,

          danke erst einmal für die hilfe, ich habe es anhand eines simplen beispieles ausprobiert, aber es funktioniert nicht.
          funktioniert nicht heisst, dass die beiden Variablen leer bleiben, oder ?
          Also echo $_SESSION["variable"]; zeigt nichts an?

          nein, sonst wärs ja nur halb so schlimm :)
          die variablen werden überhapt nicht gesetzt, "undefinded index"

          an welchen einstellungen in der php.ini könnte dies liegen?
          gute Frage!
          nutzt Du Windows oder Linux?
          Bei Windows musst in der php.ini die Pfade anpassen, da diese meist an die Linuxssyntax angepasst sind
          Ansonsten fällt mir dazu nicht viel ein
          google nach php.ini und deiner php-Version

          also ich nutze windows, normalerweise müssten die pfade alle richtig sein, zumindest werden die cookies am server ja angelegt, und die werte auch richtig eingetragen, aber ausgelesen werden sie halt nicht wieder....

          aber trotzdem danke für deine hilfe

          mfg,
          daniel

  2. egal wie ich es auch drehe oder wende, es kommt immer aufs gleiche raus, die variable existiert nicht, ob ich nun mit der funktion session_register() und der normalen variable arbeite, oder ob ich die angeblich seit php4.0 zu bevorzugende methode mit $_SESSION[] verwende.

    <?php
      session_name("s_login");

    session_name() ist nicht zwingend notwendig.

    session_start();
      ?>

    $sql_login = 'SELECT benutzername,passwort FROM benutzerdaten WHERE benutzername = "'.$_POST["benutzername"].'"
          AND passwort = "'.$_POST["passwort"].'"';

    Daten von "draußen" niemals 1:1 übernehmen. Benutze die Funktion mysql_[real_]escape_string() auf $_POST[..], dafür ist sie da. Ähnliche Problematik etwas weiter unten, dort ist htmlentities() gefragt.

    $erg_login = mysql_query($sql_login,$verbindung);

    mysql_query() folgt keine richtige Fehlerprüfung, sehr unschön, denn..

    if(mysql_num_rows($erg_login)==1)

    ..wenn mysql_query() doch mal fehlgeschlägt, wundern sich nicht wenige, warum hier ein Fehler kommt (siehe Forumsarchiv, Stichwort "not a valid MySQL result resource"). Siehe auch mysql_error().

    {//Login erfolgreich
    $sql = 'SELECT anrede,vorname,nachname FROM benutzerdaten   WHERE benutzername = "'.$_POST["benutzername"].'"';

    Diese beiden Abfragen kannst Du zusammenfassen:

    $rnutzer=mysql_query('select anrede,vorname,nachname from benutzerdaten where benutzername="'.mysql_escape_string($_POST["benutzername"]).'"' and passwort = "'.mysql_escape_string($_POST["passwort"]).'"';
      if ($rnutzer) // mysql_query() ok
        {
         ...

    $_SESSION["s_anrede"] = $anrede;
    $_SESSION["s_vorname"] = $vorname;
    $_SESSION["s_nachname"] = $nachname;

    echo 'Willkommen, '.$anrede.' '.$vorname.' '.$nachname;

    Wenn Du schon Sessionvariablen anlegst, solltest Du sie auch benutzen. Prinzipiell ist es zwar kein Problem, zweigleisig zu fahren, aber das Speichern von ein und denselben Daten an zwei unabhängigen Positionen birgt einige ärgerliche Stolperfallen.

    Außerdem solltest Du Variablen beim Ausgeben immer durch htmlentities() jagen; einzige Ausnahme: Du bist Dir 110%ig sicher, daß die Variable entweder eine Zahl enthält oder frei von den Browser verwirrenden Zeichenketten ist (alles, was ein < enthalten kann, ist gefährlich). Das Argument "Es wird sich schon keiner '<script> while (true) alert("Bla!")</script>' nennen", zählt nicht. Wirklich.

    <?php
    session_start();
    ?>

    Schau Dir oben nochmal an, ob Du nicht zufälligerweise der Session einen anderen Namen gegeben hast..

    noch dazu bin ich auf dem gebiet sessions ein ziemlicher newbie,habe erst gestern damit angefangen.was mich auch noch interressiert, wie denn der ungefähre ablauf einer session aussieht, ich meine zu wissen:

    Du weißt richtig, allerdings..

    5.session bleibt solange am server erhalten wie es in der php.ini über maxlifetime festgelegt ist

    ..ist das genauer gesagt die Zeit, in der die Session nicht benutzt worden sein darf, bevor sie gelöscht wird.

    ich weiss das sind viele fragen, aber ich habe mich gestern den ganzen tag mühselig durch die aberwitzigsten seiten durchgekämpft um näheres über diese "ominösen" sessions zu erfahren aber man findet fast nirgends eine wirklich gute erklärung zu diesem thema und da kann man dann schon verzweifeln wenn man sich mühselig aus verschiedensten seiten noch so kleine informationen zusammensuchen muss :(

    Wahrscheinlich ist die Geschichte zu einfach zum Erklären :)

    Gruß,
      soenk.e

    1. hallo sönke

      jetzt habe ich deinen post doch glatt übersehen ;)

      mysql_query() folgt keine richtige Fehlerprüfung, sehr unschön, denn..

      if(mysql_num_rows($erg_login)==1)

      ..wenn mysql_query() doch mal fehlgeschlägt, wundern sich nicht wenige, warum hier ein Fehler kommt (siehe Forumsarchiv, Stichwort "not a valid MySQL result resource"). Siehe auch mysql_error().

      da hast du natürlich recht, normalerweise prüfe ich den rückgabewert von mysql_query auch ab, aber in dem fall habe ich diese abfrage zuerst einmal weggelassen da ich mich primär um die session kümmern wollte

      Diese beiden Abfragen kannst Du zusammenfassen:

      »»

      $rnutzer=mysql_query('select anrede,vorname,nachname from benutzerdaten where benutzername="'.mysql_escape_string($_POST["benutzername"]).'"' and passwort = "'.mysql_escape_string($_POST["passwort"]).'"';
        if ($rnutzer) // mysql_query() ok
          {
           ...

      $_SESSION["s_anrede"] = $anrede;
      $_SESSION["s_vorname"] = $vorname;
      $_SESSION["s_nachname"] = $nachname;

      echo 'Willkommen, '.$anrede.' '.$vorname.' '.$nachname;

      Wenn Du schon Sessionvariablen anlegst, solltest Du sie auch benutzen. Prinzipiell ist es zwar kein Problem, zweigleisig zu fahren, aber das Speichern von ein und denselben Daten an zwei unabhängigen Positionen birgt einige ärgerliche Stolperfallen.

      was genau macht denn die funktion mysql_escape_string() ? setzt es escape zeichen am anfang und ende, falls in der variable ein ' oder ein " enthalten ist und es sonst zu einem fehlerhaften string kommen könnte ?

      Außerdem solltest Du Variablen beim Ausgeben immer durch htmlentities() jagen; einzige Ausnahme: Du bist Dir 110%ig sicher, daß die Variable entweder eine Zahl enthält oder frei von den Browser verwirrenden Zeichenketten ist (alles, was ein < enthalten kann, ist gefährlich). Das Argument "Es wird sich schon keiner '<script> while (true) alert("Bla!")</script>' nennen", zählt nicht. Wirklich.

      das ist ein super tip, danke.jetzt wo du es sagst frage ich mich wirklich wieso deswegen noch nie ein fehler passiert ist :) .anscheinend sind die benutzer halt doch zu 99% vertrauenswert und zu 1% unwissend was sie damit hätten anrichten können :) (oder umgekehrt)
      manchmal denkt man halt auf die einfachsten sachen nicht.

      <?php
      session_start();
      ?>

      Schau Dir oben nochmal an, ob Du nicht zufälligerweise der Session einen anderen Namen gegeben hast..

      ich hab das einmal mit 2 ganz simplen dateien probiert (und ohne session namen), die variablen werden gespeichert in der session, aber komischerweise danach nicht wieder ausgelesen...

      ich weiss das sind viele fragen, aber ich habe mich gestern den ganzen tag mühselig durch die aberwitzigsten seiten durchgekämpft um näheres über diese "ominösen" sessions zu erfahren aber man findet fast nirgends eine wirklich gute erklärung zu diesem thema und da kann man dann schon verzweifeln wenn man sich mühselig aus verschiedensten seiten noch so kleine informationen zusammensuchen muss :(

      Wahrscheinlich ist die Geschichte zu einfach zum Erklären :)

      na klar ist die geschichte eine einfache, wenn man einmal heraus hat wie das funktioniert, wenn man nicht weiss wie man essen kann, könnte man doch glatt vor einem schönen dicken roastbeefsteak und folienkartoffeln des hungertodes sterben :))

      grüsse,
      daniel

      1. was genau macht denn die funktion mysql_escape_string() ? setzt es escape zeichen am anfang und ende, falls in der variable ein ' oder ein " enthalten ist und es sonst zu einem fehlerhaften string kommen könnte ?

        Sie kümmert sich um Zeichen, die die Syntax Deines SQL-Befehls zerlegen könnten. Das sind primär in der Tat die Anführungszeichen, die wie üblich einzeln mit einem Rückstrich maskiert werden.

        Die Problematik ist dabei garnicht mal eine möglicherweise falsche SQL-Anweisung. Gibt jemand als Passwort

        " or ""="

        ein, hättest Du beispielsweise in der Abfrage

        select * from nutzer where name="$name" and passwort="$passwort"

        ein klitzekleines Problem:

        select * from nutzer where name="Peter Lustig" and passwort="" or ""=""

        Das Stückchen ""="" am Ende ist immer wahr - die Passwortprüfung ist somit also sehr elegant umgangen.

        Außerdem solltest Du Variablen beim Ausgeben immer durch htmlentities() jagen

        das ist ein super tip, danke.jetzt wo du es sagst frage ich mich wirklich wieso deswegen noch nie ein fehler passiert ist :)

        manchmal denkt man halt auf die einfachsten sachen nicht.

        Nicht nur manchmal.. ;) So ziemlich jedes selbstprogrammierte PHP-Board oder -Gästebuch, das hier vorgestellt wurde, hatte dieses Problem. Und selbst einige große Anbieter achten da nicht drauf.

        ich hab das einmal mit 2 ganz simplen dateien probiert (und ohne session namen), die variablen werden gespeichert in der session, aber komischerweise danach nicht wieder ausgelesen...

        Dann solltest Du ganz unten anfangen: Schalte im Browser die Cookiewarnung ein, um zu prüfen, ob überhaupt Cookies kommen.

        Gruß,
          soenk.e

        1. hallo sönke

          ein klitzekleines Problem:

          select * from nutzer where name="Peter Lustig" and passwort="" or ""=""

          Das Stückchen ""="" am Ende ist immer wahr - die Passwortprüfung ist somit also sehr elegant umgangen.

          das wäre in der tat ein grosses problem, aber da ich das in zukunft natürlich berücksichtigen werde ist dieses somit auch umgangen :)

          ich hab das einmal mit 2 ganz simplen dateien probiert (und ohne session namen), die variablen werden gespeichert in der session, aber komischerweise danach nicht wieder ausgelesen...

          Dann solltest Du ganz unten anfangen: Schalte im Browser die Cookiewarnung ein, um zu prüfen, ob überhaupt Cookies kommen.

          gute idee, habe ich probiert (eingabeaufforderung bei cookies). da aber niemals eine aufforderung gekommen ist, bzw noch weniger oft ein cookie lokal auf meinem rechner abgelegt worden ist gehe ich einmal davon aus das hier das problem liegt.

          dazu möchte ich auch noch erwähnen das der server auf dem ich das ganze ablaufen lasse lokal auf meinem rechner läuft(webserver=iis, php als isapi modul und mysl als dienst installiert)
          könnte das das problem sein?
          wenn es wirklich hier liegen sollte wäre es nicht soooo tragisch, da ich das projekt früher oder später sowieso auf einen anderen server übertrage, um die sicherheit zu gewährleisten.

          aber zum testen ist es halt am lokalen rechner am komfortabelsten. ein problem stellt dann nur der umzug auf ein andres system dar, da diese meistens etwas anders konfiguriert sind und dann probleme auftreten können.

          mit freundlichen grüssen,
          daniel

          1. gute idee, habe ich probiert (eingabeaufforderung bei cookies). da aber niemals eine aufforderung gekommen ist, bzw noch weniger oft ein cookie lokal auf meinem rechner abgelegt worden ist gehe ich einmal davon aus das hier das problem liegt.

            Tja, dann bleibt mir nur der Hinweis auf die "session"-Einstellungen in Deiner php.ini, insbesondere session.use_cookies. Mehr fällt mir dazu nicht ein.
            Mißtrauisch wie ich bin, würde ich persönlich wahrscheinlich auch noch statt des Browsers telnet benutzen, um wirklich sicher gehen zu können, daß kein Cookie kommt. Falls Dich vor lauter Verzweiflung die telnet-Methode interessiert: Suche hier im Archiv unter den Stichworten "telnet" und "http", es sollte sich etwas finden lassen.

            dazu möchte ich auch noch erwähnen das der server auf dem ich das ganze ablaufen lasse lokal auf meinem rechner läuft(webserver=iis, php als isapi modul und mysl als dienst installiert)
            könnte das das problem sein?

            Eigentlich nicht. Eigentlich..

            aber zum testen ist es halt am lokalen rechner am komfortabelsten. ein problem stellt dann nur der umzug auf ein andres system dar, da diese meistens etwas anders konfiguriert sind und dann probleme auftreten können.

            Vielleicht hast Du einen alten 486er rumstehen (oder Du besorgst Dir einen für "5 Maaak"). Die Kisten eignen sich unter Linux hervorragend als lokaler Ausprobier- und Bastelserver. Ich habe hier beispielsweise einen 90 MHz Pentium mit 16 MByte RAM und irgendeiner Trident-ISA-Grafikkarte stehen, statt der aufgeblähten Distributionen à la SuSE, Red Hat, Debian und Co., wo man nie weiß, was wo wie passiert, ist http://www.linuxfromscratch.org installiert.

            Nicht, daß ich pauschal etwas gegen den IIS hätte (zumindest nicht so richtig;), aber so ein "Nanoserver" ist dem IIS und selbst einem Apache unter Windows halt doch vorzuziehen, weil man exakt die Konfiguration laufen hat, die auch bei den meisten Hostern läuft (Unix/Apache/PHP/MySQL).

            Gruß,
              soenk.e

            1. Mißtrauisch wie ich bin, würde ich persönlich wahrscheinlich auch noch statt des Browsers telnet benutzen, um wirklich sicher gehen zu können, daß kein Cookie kommt. Falls Dich vor lauter Verzweiflung die telnet-Methode interessiert: Suche hier im Archiv unter den Stichworten "telnet" und "http", es sollte sich etwas finden lassen.

              verzweifelt...wie wahr.....

              dazu möchte ich auch noch erwähnen das der server auf dem ich das ganze ablaufen lasse lokal auf meinem rechner läuft(webserver=iis, php als isapi modul und mysl als dienst installiert)
              könnte das das problem sein?

              natürlich muss ich auch sagen das mir der iis auch nur wegen seiner benutzerfreundlichkeit und kompatibilität zu windows zusagt, wenn ich jetzt behaupte, dass ich 10x länger dazu gebraucht habe php unter iss(aus welchen gründen auch immer) zum laufen zu bringen als für eine komplette linux neuinstallation+konfiguration wird mir das warscheinlich keiner glauben (oder doch? :))

              aber zum testen ist es halt am lokalen rechner am komfortabelsten. ein problem stellt dann nur der umzug auf ein andres system dar, da diese meistens etwas anders konfiguriert sind und dann probleme auftreten können.

              Vielleicht hast Du einen alten 486er rumstehen (oder Du besorgst Dir einen für "5 Maaak"). Die Kisten eignen sich unter Linux hervorragend als lokaler Ausprobier- und Bastelserver. Ich habe hier beispielsweise einen 90 MHz Pentium mit 16 MByte RAM und irgendeiner Trident-ISA-Grafikkarte stehen, statt der aufgeblähten Distributionen à la SuSE, Red Hat, Debian und Co., wo man nie weiß, was wo wie passiert, ist http://www.linuxfromscratch.org installiert.

              klar hab ich noch einen alten p1 herumstehen, läuft sogar inklusive suse linux - müsste nur mal wieder den bootsektor reparieren der mir durch die windows neuinstallation vernichtet worden ist :(
              aber das mit dem linuxfromscratch...pfoah...das ist ja eine lebensaufgabe einmal die anleitung durchzulesen :)

              Nicht, daß ich pauschal etwas gegen den IIS hätte (zumindest nicht so richtig;), aber so ein "Nanoserver" ist dem IIS und selbst einem Apache unter Windows halt doch vorzuziehen, weil man exakt die Konfiguration laufen hat, die auch bei den meisten Hostern läuft (Unix/Apache/PHP/MySQL).

              wo du recht hast hast du recht ;)

              1. Vielleicht hast Du einen alten 486er rumstehen (oder Du besorgst Dir einen für "5 Maaak"). Die Kisten eignen sich unter Linux hervorragend als lokaler Ausprobier- und Bastelserver. Ich habe hier beispielsweise einen 90 MHz Pentium mit 16 MByte RAM und irgendeiner Trident-ISA-Grafikkarte stehen, statt der aufgeblähten Distributionen à la SuSE, Red Hat, Debian und Co., wo man nie weiß, was wo wie passiert, ist http://www.linuxfromscratch.org installiert.

                aber das mit dem linuxfromscratch...pfoah...das ist ja eine lebensaufgabe einmal die anleitung durchzulesen :)

                Nana, ganz so schlimm ist es nicht :) Man sollte sich aber vorher die Befehle rauskopieren und in einzelne Dateien/Skripte packen, ansonsten artet es in eine unangenehme Tipperei aus. Mit einem schnellen Rechner ist das Grundsystem dann in ein, zwei Stunden aufgesetzt, wobei die Dauer lediglich davon abhängt, wie lange der Rechner zum Compilieren braucht - eine 100 MHz-Maschine würde ich dafür nicht empfehlen :) Aber man kann die Platte ja glücklicherweise kurz in ein schnelleres Modell einbauen und später wieder zurückstecken, Linux macht sich in Sachen Hardwareerkennung und -anpassung nicht so selbständig wie Windows.
                Kurzum: Um einen kleinen Webserver mit FTP-Fähigkeit zum ersten Mal mit dieser Methode aufzusetzen, sollte man sich einen Tag Zeit nehmen. Das sollte außer absoluten Computerlaien jedem reichen, die Geschichte mit Ruhe anzugehen.

                Gruß,
                  soenk.e