Daten von einem Formular in die config eintragen.

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

  • Daten von einem Formular in die config eintragen.

    Ich habe eine Datei config.php, in der sämtliche Einstellungen stehen wie Seitentitel, Sprache, DB Verbindung (Host etc.) usw. .

    Jetzt möchte ich ein Installationsscript erstellen in dem der Usere über Formulare Schritt für Schritt Daten für die DB Verbindung und ein paar sonstige Einstellungen vornehmen kann.

    Diese Daten sollen dann in die config Eingetragen werden bzw geändert werden.

    Das Formular ist kein Problem aber das eintragen der Daten in die Config.


    Wie mache ich sowas am besten?

    MFG Maffy
    in der ruhe liegt die kraft

  • #2
    fopen
    fputs oder fwrite
    fclose

    sollten dir dabei helfen

    Kommentar


    • #3
      Hallo zusammen!

      Ich hatte auch so etwas vor, aber frage mich jetzt, ob das überhaupt so sinnvoll ist oder ob man solche Werte nicht in der DB speichern sollte.

      Vorteile:
      - Man kann mal eben schnell eine neue config hochladen/austauschen (zumTesten etc.)

      Nachteile:
      - passt man die config.inc.php manuell an (mit neuen Variablen oder Kommentaren) und lässt sie später durch ein Script aktualisieren, werden die unbekannten Zeilen ja nicht gespeichert.

      Das könnte man ja dadurch umgehen, dass man das Formular auch erst durch auslesen der config.php.inc dynamisch erzeugt und so alle auch manuell hinzugefügten Variablen anpassen kann... Aber was ist dann mit Kommentaren? Die müsste man ja auch beim Neuspeichern beibehalten.
      Oder sollte man die gewünschten Variablen mit Regular Expressions ersetzen und alles "drumrum" einfach stehen lassen?

      Was ist da die beste Lösung, wie macht ihr das? Hat da jemand Erfahrung mit und das schonmal angewendet?

      Gruß,
      Jan

      Kommentar


      • #4
        also ich persönlich verzichte auf das config-formular.

        wenn du es aber haben möchtest, solltest du beim anpassen des scriptes einfach daran denken, dass du das formular auch anpasst.

        es gibt auch noch ne php-funktion (grad keine ahnung wie die heißt), die die ini-dateien auslesen kann. und dir als variablen zur verfügung stellt. vielleicht bietet das noch weiter möglichkeiten für dich.

        Also wenn deine Kommentare vernünftig aufgebaut sind, dann ist es wohl auch kein problem das formular dynamisch auftzbauen. gefahren hierbei sind natürlich das löschen bzw. hinzufügen von vars. möglicherweise sieht die config nachher nichtmehr so aus, wie du es gerne hättest.
        Zuletzt geändert von TobiaZ; 09.11.2004, 22:14.

        Kommentar


        • #5
          Ich habe da jetzt eine Lösung gefunden.

          Aber aus irgendeinem Grund Überträgt er mir die Daten aus dem Formular nicht in die Config.php.

          PHP-Code:

          <?PHP

          if(isset($HTTP_POST_VARS['step']))
          {
              
          $IMS['step'] = $HTTP_POST_VARS['step'];
          }
          elseif(isset(
          $HTTP_GET_VARS['step']))
          {
              
          $IMS['step'] = $HTTP_GET_VARS['step'];
          }
          else
          {
              
          $IMS['step'] = '1';
          }

          if(!isset(
          $step) || $step == 'Step1')
          {
          ?>

          // Prüfung der Systemeinstellungen PHP Version MYSQL etc. .

          ....

          <?PHP
          }
          elseif(
          $step == '2')
          {
          ?>

           <form action="$_SERVER['PHP_SELF']" method="post" >
                      
                          <table width="450" border="0" align="center" cellpadding="2" cellspacing="1">
                            <tr> 
                              <td><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Benutzername:</strong></font></td>
                              
                              <td>
                              <input name="sqlusername" type="text" >
                                <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp; 
                                </font> </td>
                            </tr>
                            <tr> 
                              <td><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Hostname:</strong></font></td>
                              <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
                                <input name="sqlhostname" type="text">
                                </font></td>
                            </tr>
                            <tr> 
                              <td><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Passwort:</strong></font></td>
                              <td><input name="sqlpwd" type="text">
                                <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp; 
                                </font></td>
                            </tr>
                            <tr> 
                              <td><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Datenbankname:</strong></font></td>
                              <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
                                <input name="sqldabaname" type="text">
                                </font></td>
                            </tr>
                            <tr> 
                              <td colspan="2"><div align="center"> 
                                  <input type="button" value="Nächster Schritt" style="width:150px" onClick="top.location.href='setup.php?step=3'; return'';"  >
                                </div></td>
                            </tr>
                          </table>
                        </form>

          <?PHP
          }
          elseif(
          $step == '3')
          {
          ?>

          // DB Tabellen anlegen

          ...


          <?
          }
          ?>
          <?PHP

          // Anlegen der Config.php

          <?PHP

          //                                                                               //
          //---------------------------------------------------------------------------//
          // Installiert die Datei config.php                                              //
          //---------------------------------------------------------------------------//
          //                                                                               //

          $cfgprogram "";
          $cfgversion   "";
          $cfgprefix      "";  
          $cfgdate        date("D M j G:i:s T Y"); 

          if(isset(
          $HTTP_POST_VARS['step']))
          {
              
          $IMS['step'] = $HTTP_POST_VARS['step'];
          }
          elseif(isset(
          $HTTP_GET_VARS['step']))
          {
              
          $IMS['step'] = $HTTP_GET_VARS['step'];
          }
          else
          {
              
          $IMS['step'] = '1';
          }

          if(
          $step =='1')
          {
              
          writeconfig_kopf($cfgprefix,$cfgprogram,$cfgversion,$cfgdate);    
          }

          if(
          $step =='2')
          {
          writeconfig_db($sqldabaname,$sqlusername,$sqlpassword,$sqlhostname);
          }

          if(
          $step == '3')
          {
              
          }
          ?>
          PHP-Code:
          function writeconfig_db($sqldabaname,$sqlusername,$sqlpassword,$sqlhostname)
          {
              
          $config  ="// --> BEGIN SQL settings -----------------------------------------------------------------------------------------------------------------\n";
              
          $config .="\".$config['sqlusername']         = \"".$sqlusername."\";\n";
              
          $config .="\".$config['sqlpassword']         = \"".$sqlpassword."\";\n";
              
          $config .="\".$config['sqlhostname']         = \"".$sqlhostname."\";\n";
              
          $config .="\".$config['sqldabaname']         = \"".$sqldabaname."\";\n";
              
          $config .="// END SQL settings -----------------------------------------------------------------------------------------------------------------------\n";
              
          $config .="\n";
              
          $config .="\n";

              
          $openfile  fopen("config.inc.php","a");
              
          $writefile fputs($openfile,"$config");
              
          $closefile fclose($openfile);

          Zuletzt geändert von maffy; 12.11.2004, 09:10.
          in der ruhe liegt die kraft

          Kommentar


          • #6
            PHP-Code:
            print_r ($HTTP_POST_VARS); 
            wenn nichts ankommt anstelle von
            $HTTP_POST_VARS nimmst du $_POST
            dasselbe gilt auch für GET

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Mit einer mysql dbgeht das doch viel einfacher. Da kann man die daten einfach in die db schreiben und hat die ganzen probleme nich.

              Das war meine prima Antwort!
              Meine Omi wollte ich auch nochmal grüßen.
              <<<<-><-><-><-><-><-><->>>>
              |--------------------------------------------|
              [color=grey]]If you happy and you know klapp your hands!!![[/color]
              |--------------------------------------------|
              [color=red]Ich denke, also bin ich[/color]

              Kommentar


              • #8
                Original geschrieben von west-crushing
                Mit einer mysql dbgeht das doch viel einfacher. Da kann man die daten einfach in die db schreiben und hat die ganzen probleme nich.
                Klar, die Daten für den Aufbau zu der Datenbank in die Datenbank schreiben

                Kommentar


                • #9
                  Klar, die Daten für den Aufbau zu der Datenbank in die Datenbank schreiben
                  *lol*

                  Kommentar


                  • #10
                    Habe das Problem gelöst.

                    Es lag scheinbar an $_SERVER['PHP_SELF'] im Form Tag.
                    Habe dort anstatt $_SERVER['PHP_SELF'] setup.php eingetragen und jetzt übeträgt er die Daten in die Config.php richtig.
                    in der ruhe liegt die kraft

                    Kommentar


                    • #11
                      was denkt ihr, hat es sinn, xml zur speicherung von einstellungen zu verwenden?

                      Kommentar


                      • #12
                        was denkt ihr, hat es sinn, xml zur speicherung von einstellungen zu verwenden?
                        In einer reinen PHP-Anwendung sicher nicht. Wozu die Mühe? Wenn andere Programme da mit eingebunden werden, könnte man drüber reden...

                        Kommentar


                        • #13
                          Ich werde es jetzt wahrscheinlich so machen: Großes Textfeld in dem die ganze config angezeigt wird Ist eigentlich das beste (für den Admin). Zumindest wenn man keinen FTP-Client zur Verfügung hat und mal schnell was ändern muss (Urlaub )
                          Die normalen Benutzer haben bei mir sowieso nur an bestimmten Daten in der DB was zu schaffen. Und dafür kann ich entsprechende Formulare aufbauen.
                          Zuletzt geändert von razer2k; 14.11.2004, 19:55.

                          Kommentar

                          Lädt...
                          X