Ankündigung

Einklappen
Keine Ankündigung bisher.

DHCP Datei ändern

Einklappen

Neue Werbung 2019

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

  • #16
    ." {" bewirkt natürlich das eine geschweifte klammer hinten angehängt wird, so wie es bei deiner original-datei in zeile 8 der fall ist, deshalb hab ichs in meinem beispiel mit reingemacht

    Im Normalfall wird für eine leere Variable dann einfach gar nichts an die Stelle eingefügt. Je nachdem wie dein Skript aufgebaut ist und ob du error_reporting auf hoch gestellt hast könnte evtl. eine Notice von PHP kommen. Es kann aber auch sein das PHP überhaupt nichts zur leeren Variable sagt und einfach so tut als wär nix.

    Kommentar


    • #17
      ---> Habe eine Fehlermeldung bekommen


      Warning: file_put_contents() expects at least 2 parameters, 1 given in /var/www/vpn/dhcp.php on line 27


      Kannst du damit was anfangen?

      Kommentar


      • #18
        klar, du musst ihm auch noch sagen was er in die datei schreiben soll und nicht nur in welche xD

        file_put_contents('/etc/dhcpd.conf',$array);

        Kommentar


        • #19
          Okay danke =)

          Kannst du mir aber bitte noch sagen ob du hier einen Fehler siehst!?

          Weil jetzt zeigt er nur noch Fehler an.

          Code:
          <?php
          
            $subnet = $_POST["subnet"];
            $start_adress = $_POST["start_adress"];
            $end_adress = $_POST["end_adress"];
            $subnetmask = $_POST["subnetmask"];
            $gateway = $_POST["gateway"];
            $default_lease_time = $_POST["default_lease_time"];
            $max_lease_time = $_POST["max_lease_time"];
            $domain = $_POST["domain"];
            $primary_dns = $_POST["primary_dns"];
            $secondary_dns = $_POST["secondary_dns"];
          
          
            $array = file('/etc/dhcpd.conf');
          
            // 7 deswegen weil Zeile eins als Zeile null gelesen wird
            $array[7] = "subnet ".$subnet." netmask ".$subnetmask." {";
            $array[10] = "range ".$start_adress." test ".$end_adress.;
            $array[13] = "option subnet-mask ".$subnetmask.;
            $array[16] = "option domain-name ".$domain.;
            $array[19] = "default-lease-time ".$default_lease_time.;
            $array[22] = "max-lease-time ".$max_lease_time.;
            $array[25] = "option routers ".$gateway.;
            $array[28] = "option domain-name-servers ".$primary_dns."; ".$secondary_dns.;
            
            file_put_contents('/etc/dhcpd.conf'); 
          
          ?>

          Kommentar


          • #20
            Was genau zeigt er denn an?

            Kommentar


            • #21
              1stens ist der Fehler von eben in dem Code noch nicht behoben und
              2tens $domain.; muss wohl $domain.";"; heissen und das in mehreren zeilen

              Kommentar


              • #22
                Das er mit den Strichtpunkten angefangen bei Zeile 19 nicht zurrecht kommt.

                Code:
                  $array = file('/etc/dhcpd.conf');
                
                  // 7 deswegen weil Zeile eins als Zeile null gelesen wird
                  $array[7] = "subnet ".$subnet." netmask ".$subnetmask." {";
                  $array[10] = "range ".$start_adress." range ".$end_adress.;
                  $array[13] = "option subnet-mask ".$subnetmask.;
                  $array[16] = "option domain-name ".$domain.;
                  $array[19] = "default-lease-time ".$default_lease_time.;
                  $array[22] = "max-lease-time ".$max_lease_time.;
                  $array[25] = "option routers ".$gateway.;
                  $array[28] = "option domain-name-servers ".$primary_dns."; ".$secondary_dns.;
                  
                  file_put_contents('/etc/dhcpd.conf',$array);

                Kommentar


                • #23
                  Wie schon gesagt, sowas hier:

                  $array[16] = "option domain-name ".$domain.;

                  kann nicht funktionieren. Es geht entweder das:

                  $array[16] = "option domain-name ".$domain;

                  oder das

                  $array[16] = "option domain-name ".$domain.";";

                  je nachdem wie das Ende der Zeile aussehen soll...

                  Kommentar


                  • #24
                    Sorry der Post vorher war nicht zu sehen als ich wieder meinen Quellcode reingetan habe. Okay das mit den ";" hab ich verstanden danke!!!
                    Glaube insgesamt wird es auch funktionieren, aber im moment hab ich das Problem mit den Rechten.

                    Gibt es in PHP ne einfach kleine Möglichkeit um trotzdem die entsprechenden Rechte zu bekommen?

                    chmod 777 hab ich schon gesetzt für die Datei.

                    Warning: file_put_contents(/etc/dhcpd.conf) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/vpn/dhcp.php on line 27

                    Danke für die Hilfe

                    Kommentar


                    • #25
                      Kann es sein das das nicht die einzige Fehlermeldung ist? Du musst wahrscheinlich deiner php.ini noch bei open_basedir das Verzeichnis hinzufügen

                      Kommentar


                      • #26
                        Im moment ist das die einzige Meldung! =)

                        Okay was sollten den noch für Meldungen kommen? Warum? Und wie umgehe ich meine Permission denied am einfachsten?

                        Kommentar


                        • #27
                          Wie gesagt, PHP kann im Normalfall nur auf die Verzeichnisse zugreifen die bei open_basedir eingetragen sind. Schreib mal folgenden Zeile oben in deinen Code:

                          PHP-Code:
                          ini_set("open_basedir"ini_get("open_basedir").":/etc"); 

                          Kommentar


                          • #28
                            Habe immernoch diese Meldung.

                            Warning: file_put_contents(/etc/dhcpd.conf) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/vpn/dhcp.php on line 34

                            Und habe in meiner php.ini open_basedir /var/www/vpn stehn.

                            Und ich würde wenn es geht nicht gern den ganzen Ordner /etc freigeben weil hier meine wichtigsten Dateien liegen.

                            Kommentar


                            • #29
                              Also ich kenn mich nicht soo gut mit Dateirechten aus, aber wenn du 777 auf der Datei hast dann sollte das schon gehen... vielleicht braucht dein Skript auch noch Leserechte für den Ordner /etc?

                              Kommentar


                              • #30
                                den ordner mit 777 versehen, alle dateien auf die zugegriffen werden soll auch.

                                Kommentar

                                Lädt...
                                X