Seite 3 von 255 ErsteErste 123451353103 ... LetzteLetzte
Ergebnis 21 bis 30 von 2545
  1. #21
    Anwender
    Registriert seit
    07.04.2011
    Beiträge
    1.847

    Standard

    Du willst ja was lernen…

    Beispielhaft ein paar "Kleinigkeiten", die mir in der ub_start.php auffallen:




    du schreibst:
    PHP-Code:
    if (isset($_REQUEST['source'])) $source=$_REQUEST['source']; else $source=array(); 
    besser wäre:
    PHP-Code:
    $source = (array_key_exists($_POST'source') && is_array($_POST['source']) ? array_walk($_POST['source'], 'addslashes') : array(); 
    • Damit kannst du versehentlich einen (leeren) string auf die variable zuweisen, das ist zwar in PHP nicht unbedingt dramatisch (da php nicht typisiert ist), aber einfach schlechter Stil.
    • Das array_walk ist nur als Beispiel zu sehen Das würde ich wohl selber nicht so schreiben, da die Veränderung von globalen Variablen ($_*) generell eher Ungeil ist. Also lieber vorher in eigene variable schmeißen und dann damit arbeiten.
    • Inline conditions sind durchaus Geschmacksache, in so kurzem Code aber der langen Form IMHO immer vorzuziehen.




    du schreibst:
    PHP-Code:
    while (!feof($f)) {
        
    $buffer fgets($f4096);
        
    $string .= $buffer;

    besser wäre:
    PHP-Code:
    file_get_contents($f

    du schreibst:
    PHP-Code:
    function test_input($data) {
        
    $data trim($data);
        
    $data stripslashes($data);
        
    $data htmlspecialchars($data);
        return 
    $data;

    besser wäre:
    PHP-Code:
    function test_input($data) {
         return 
    htmlspecialchars(stripslashes(trim($data)));

    • generell bei funktionen immer "von unten" denken und versuchen möglichst wenig variablenzuweisungen zu machen. die sind nämlich teuer.
    • wer jetzt mit "aber unübersichtlich" kommt -> dann ist die Funktion zu lang



    du schreibst:
    PHP-Code:
    shell_exec("sh script_start.sh test ".addslashes($_POST["selectvolumeExtern"])." ".addslashes($_POST["selectscriptExtern"])." ".addslashes($_POST["rspdryExtern"])." ".addslashes($_POST["rspdebugExtern"])." ".addslashes($_POST["rsprestoreExtern"])." "); 
    besser wäre:
    PHP-Code:
    shell_exec(addslashes(sprintf('sh script_start.sh test %s %s %s %s %s'$_POST["selectvolumeExtern"], $_POST["selectscriptExtern"], $_POST["rspdryExtern"], $_POST["rspdebugExtern"], $_POST["rsprestoreExtern"])); 
    • addslashes braucht es erst kurz vor der Übermittlung an shell_exec, alternativ könntest du auch direkt am Anfang der Datei einmal überall durchgehen (wie ich oben beispielhaft mache)
    • ich mag sprintf lieber als "".""."".""… - finde das einfach übersichtlicher
    • generell muss ich zugegeben, dass ich gefühlt seit PHP 4.x nicht mehr mit plain-php gearbeitet habe, daher kann es gut sein, dass addslashes() da mittlerweile veraltet ist, kurz googlen führt mich zu filter_var, was wohl neues/besser ist? Es gibt aber auch viele libraries, die sich um die validierung von daten kümmern, tendenziell ist es besser davon eine zu nutzen.




    Und du schreibst php & html in einer Datei -> gaaaanz schlechter Stil. Schau dir mal die Templateengines genauer an, damit du dir das gar nicht erst (weiter) angewöhnst. Smarty & Twig sind gut für den Anfang.





    gibt bestimmt noch mehr, aber ich hab grad keine Zeit/Lust mir jetzt deinen kompletten Spaghetticode reinzuziehen :P
    App/VM Server (unRAID), DS214+, DS115. Früher: DS215+, DS115, DS215j, DS1511+
    Das Mit dem groß und Klein schreiben Lerne ich irgendwann noch - bestimmt.

  2. #22
    Anwender Avatar von Tommes
    Registriert seit
    26.10.2009
    Beiträge
    7.564

    Standard

    Hey jugi!

    Zuallererst muss ich sagen - ... WOW… - und danke für deine konstruktive Kritik, sowie die vielen Tipps und Tricks zu php und was ich bessser bzw. anders machen sollte. Das muss ich erstmal alles sacken lassen, denn…

    Zitat Zitat von jugi Beitrag anzeigen
    Du willst ja was lernen…
    … na ja, es ist halt die Frage, wieviel ich noch lernen soll/muß!

    Denn ich werde wohl nie an den Punkt kommen, einem Profi wie dir das Wasser reichen zu können und ehrlich gesagt ist das auch überhaupt nicht mein Ziel. Eigentlich war es sogar nie mein Ziel gewesen ein SPK wie dieses zu schreiben. Dass ich es dennoch versucht (und augenscheinlich auch geschafft) habe (wie auch immer), ist wohl eher der Tatsache geschuldet, das ich mich solchen Aufgaben und Herausforderungen sehr gerne stelle um zu schauen, wie weit ich komme.

    Doch scheinbar endet hier meine Reise in die Welt der SPK-Entwicklung bzw. in der Erforschung einer schlüssigen php-Programmierung. Ich habe nämlich weder die Zeit, noch die Geduld und schon gar nicht den Willen aus mir in diesen Dingen einen Profi zu machen um dieses Projekt weiter voran zu treiben. Und für mich ist das hier nichts anderes… ein Projekt… welches ich allein aus Spaß an der Freud entwickelt habe. Nicht mehr und nicht weniger.

    Vielleicht war es ein Fehler, dass ich mich soweit aus dem Fenster gelehnt habe und PsychoHH sollte sein Script besser wieder auf die Konsole portieren, wo es hingehört. Daher bleiben mir jetzt nur zwei Möglichkeiten. Entweder ich ziehe hier jetzt einen Strich drunter und ich beende meine Reise, oder ich versuche einfach im Rahmen meiner Möglichkeiten dieses SPK fortzuführen. Denn bekanntlich führen viele Wege nach Rom und für meine Begriffe erfüllt das SPK durchaus erstmal alle Funktionen die wir uns, und sich einige User hier gewünscht haben.

    Es gibt natürlich auch noch eine dritte Möglichkeit, das ab hier jemand anderes die Programmierung dieses SPK übernimmt, der es besser Versteht, denn...

    Zitat Zitat von jugi Beitrag anzeigen
    ...gibt bestimmt noch mehr, aber ich hab grad keine Zeit/Lust mir jetzt deinen kompletten Spaghetticode reinzuziehen :P
    Tommes

    DS218+ | DSM 6.2.2-24922-U3 | 2x WD Red 3TB Basis (btrfs) | 2 + 8 GB RAM
    DS216+ | DSM 6.2.2-24922-U3 | 1x WD Red 4TB Basis (btrfs) | 1 GB RAM
    DS115 | DSM 6.2.2-24922-U3 | WD Green 4TB (ext4)

    Projekte: Ultimate Backup | Ultimate Search | Mein YouTube-Kanal

  3. #23
    Anwender
    Registriert seit
    07.04.2011
    Beiträge
    1.847

    Standard

    Ach komm, du hast da jetzt so viel Zeit reingesteckt und willst jetzt einfach aufgeben? Das hättest du dir vielleicht vorher überlegen sollen

    Klar bist du kein Profi, aber das musst du auch gar nicht sein, um ein gutes Produkt abliefern zu können. Es gibt außerdem auch genug Profis, die von gutem Code keine Ahnung haben (und auch mein wissen ist alles andere als vollkommen). Ich wollte dir lediglich ein paar allgemeine Programmierrichtlinien sagen, da ich weiß, wie schwer es ist, sich einmal (falsch) angewöhntes wieder abzugewöhnen. Wenn du dich mit dem Thema nicht weiter beschäftigen willst ist das auch okay, dein produkt funktioniert ja anscheinend such so.

    Und bis auf die addslashes geschichte (das war sicherheitsrelevant) ist das auch alles nicht extrem kritisch, sondern hauptsächlich dafür, dass du in ein paar Wochen deinen eigenen Code noch verstehst

    Ob jemand anderes (ich) das übernehmen kann? Ich überleg das schon, seitdem ihr beiden das mit der versionierung ausgeschlsgen habt, allerdings hab ich aktuell keine zeit und bin mir auch nicht sicher, ob ich mich an die synology-paket-schnittstelle wagen will (die scheint ja eher chaos zu sein..)
    App/VM Server (unRAID), DS214+, DS115. Früher: DS215+, DS115, DS215j, DS1511+
    Das Mit dem groß und Klein schreiben Lerne ich irgendwann noch - bestimmt.

  4. #24
    Anwender
    Registriert seit
    02.07.2013
    Beiträge
    2.933

    Standard

    Das hat nichts mit aufgeben zutun.


    Es war ja zum Anfang nie ein SPK geplant, da war der Grundgedanke eine einfache dateibasierte Datensicherung. Das wurde auch schnell gelöst.
    Dann kam aber das einhängen von verschlüsselten Ordner per Keyfile hinzu usw. es sind sehr viele Features hinzugekommen und auch wenn nicht jeder den Code versteht, sei es in der .sh .html oder .php, dann ist es halt so. Wichtiger ist es, dass es läuft und keine Probleme gibt und wenn es welche gab wurden diese ja auch schnellstmöglich gelöst.

    Und ganz ehrlich wir sind viel weitergekommen als wir uns das jemals vorgestellt haben.



    Ich habe mit Tommes unfassbar viele eMails geschrieben, weil es auch einfach viel zu Überlegen/Besprechen und auch Probleme gab, die wir gemeinsam gelöst haben.


    Fakt ist aber auch, dass wir nun etwas hinbekommen haben, was es so noch nicht gab und es funktioniert auch bestens.
    Ich will gar nicht, dass alles Möglich ist oder alles Unterstützt wird usw.


    Da könnte Synology lieber mal ein bisschen nachbessern und Time Backup erweitern oder mal das automatisch entschlüsseln einbauen.


    Wir haben echt unglaublich viele Stunden in das Projekt gesteckt, ach Monate waren es und wir haben keinen Cent dafür bekommen.
    Der Lohn ist der Dank der User und die Nutzung für eigene Zwecke.




    Abgeben? Ach quatsch, läuft doch alles und ob man jetzt einen Teil so oder so schreibt dürfte solange egal sein,
    solange es keine Probleme gibt oder die Last zu groß wird.


    Das SPK bietet meine Meinung nach alles was man braucht und sogar noch mehr als am Anfang geplant war.
    Und Tommes hat auch hier einen klasse Job gemacht, es wurde so gut wie alles selbst geschrieben und es ist kein c&p von zig Seiten.


    Eine Versionierung haben wir nie komplett ausgeschlossen und da dies auch nicht unmöglich ist, kommt dies eventuell in einem Update mal.


    Und ja Zeit ist einfach ein Faktor den mal selten für sowas hat, jedenfalls wenn man beruflich damit nichts zutun hat.


    Natürlich warten wir auch immer auf Feedback, ob alles klappt, es Probleme gibt oder sonst was
    ! Bitte Postfachgröße erhöhen !


    DS916+ | 8GB RAM | 3x3TB WD Red RAID 5 btrfs | DSM 6.1-15047-U2
    DS216+II | 8GB RAM | 2x4TB WD Red basic ext4 | DSM 6.0.2-8451-U9
    DS212j | | DSM 6.0.2-8451-U9 | Backup DS

    Fritzbox 7490 | Netgear GS108Tv2


    Projekte:

    Ultimate Backup - SPK
    Ultimate Search - SPK




  5. #25
    Anwender Avatar von Tommes
    Registriert seit
    26.10.2009
    Beiträge
    7.564

    Standard

    Zitat Zitat von jugi Beitrag anzeigen
    Ach komm, du hast da jetzt so viel Zeit reingesteckt und willst jetzt einfach aufgeben?
    Aufgeben werde ich sicherlich nicht. Ich kann nur deine Anforderungen an ein "gutes Produkt" nicht erfüllen. Ich hab ja geschrieben...

    Zitat Zitat von Tommes Beitrag anzeigen
    ...oder ich versuche einfach im Rahmen meiner Möglichkeiten dieses SPK fortzuführen. Denn bekanntlich führen viele Wege nach Rom...
    ... also werde ich trotz, das du meinen Programmierkünsten nur ein müdes Lächeln abringen kannst, weitermachen. Natürlich freue und bedanke ich mich auch weiterhin für jeden Tipp und jeden gut gemeinten Ratschlag von dir, da ich schon verstehe was du mir damit sagen möchtest. Ich werde es nur nicht umsetzen können, da mir einfach das (Background-)Wissen fehlt und ich werde es wohl auch nicht mehr lernen ...wollen, ....können, ...müssen.

    Nichts desto trotz mach ich jetzt erstmal ein paar Tage eine kreative Pause, damit ich mal wieder auf andere Gedanken komme. Wie PsychoHH je eben schon andeutete drehten sich die letzen Monate nur um dieses Script bzw. dieses SPK. Wenn ich dann in ein ein paar Wochen meine Programierung noch verstehe, mache ich einfach mal weiter... wohin die Reise da auch gehen mag.

    Tommes

    DS218+ | DSM 6.2.2-24922-U3 | 2x WD Red 3TB Basis (btrfs) | 2 + 8 GB RAM
    DS216+ | DSM 6.2.2-24922-U3 | 1x WD Red 4TB Basis (btrfs) | 1 GB RAM
    DS115 | DSM 6.2.2-24922-U3 | WD Green 4TB (ext4)

    Projekte: Ultimate Backup | Ultimate Search | Mein YouTube-Kanal

  6. #26
    Anwender Avatar von rednag
    Registriert seit
    08.11.2013
    Beiträge
    3.845

    Standard

    So, ich bin jetzt mal dazu gekommen mir Euer Ultimate Backup anzusehen.
    Erstmal vielen Dank für die großartige Arbeit. Übersichtlich, gute Dokumentation in dem SPK als auch dem Script (soweit ich das als Laie beurteilen kann).
    Viele Funktionen, Stabil.

    Leider gelang es mir von mittlerweile 10 Versuchen nur einen Durchlauf "Dry Run" erfolgreich durchzuführen.
    Sonst kommt immer die DSM - Meldung "Internes Script konnte nicht ausgeführt werden". Warum weiß ich selbst nicht.
    Das Script selbst ist erfolgreich angelegt worden. Auch mehrere unterschiedliche Ordner zum Backup als auch Ziel habe ich bereits ausgewählt.

    Kleines Feedback - Es wäre schön wenn man z. B. mehrere Scripte im Einsatz hat, diese auch in Ultimate Backup bearbeiten zu können. So bleibt nur der Editor.
    Auch bleibt das zuletzt angelegte Script nich in der Oberfläsche bestehen. Ich habe in meinen Versuchen daher sämtliche Angaben wieder von vorne eintragen müssen.

    Totzdem ziehe ich meinen Hut vor dieser Leistung der Programmierung.
    DS415+ (DSM 6.2.2-24922)
    DS213 (6.2-23739 Update 2)
    TS-253B (4.3.6.0923)
    Vero 4K (OSMC)
    Fritz!Box 7490

    Homepage

  7. #27
    Anwender
    Registriert seit
    02.07.2013
    Beiträge
    2.933

    Standard

    Zitat Zitat von rednag Beitrag anzeigen
    Leider gelang es mir von mittlerweile 10 Versuchen nur einen Durchlauf "Dry Run" erfolgreich durchzuführen.
    Sonst kommt immer die DSM - Meldung "Internes Script konnte nicht ausgeführt werden". Warum weiß ich selbst nicht.

    Kleines Feedback - Es wäre schön wenn man z. B. mehrere Scripte im Einsatz hat, diese auch in Ultimate Backup bearbeiten zu können. So bleibt nur der Editor.
    Auch bleibt das zuletzt angelegte Script nich in der Oberfläsche bestehen. Ich habe in meinen Versuchen daher sämtliche Angaben wieder von vorne eintragen müssen.

    Dann hast du sehr wahrscheinlich den Pfad/Scriptnamen falsch angegeben.
    Also Pfad usw. und dann Scriptname z.B. rsync_aufgabeeins.sh. Dann musst du auch folgendes eingeben: rsync_aufgabeeins.sh
    Schau dir dort nochmal das Beispiel an, steht auch direkt im SPK wie du es angeben musst.

    Alternativ könntest du es auch über den Aufgabenplaner ausführen.
    Auch dort wäre es inkl. dry usw. möglich.


    Ja das ganze wäre natürlich sehr gut, Scripte laden und speichern zu können.
    Allerdings ist das wieder eine Horroraufgabe dies alles zu schreiben.

    Und auch bin ich der Meinung, dass man sich alles einmal einrichtet und es ja dann auch dabei belässt.
    Natürlich kommt es auch darauf an wie oft man das Script verwendet. Bei mir sind es 3 verschiedene Konfigurationen.

    1x DS zu DS
    1x DS zu extern nach Zeitplan
    1x DS zu extern durch autorun

    Das ganze dauerte einmalig aber keine 10 Minuten zum einrichten.

    Wenn ich kurz eine Einstellung ändern will, mache ich dies entweder per Text-Editor oder kurz in vi
    ! Bitte Postfachgröße erhöhen !


    DS916+ | 8GB RAM | 3x3TB WD Red RAID 5 btrfs | DSM 6.1-15047-U2
    DS216+II | 8GB RAM | 2x4TB WD Red basic ext4 | DSM 6.0.2-8451-U9
    DS212j | | DSM 6.0.2-8451-U9 | Backup DS

    Fritzbox 7490 | Netgear GS108Tv2


    Projekte:

    Ultimate Backup - SPK
    Ultimate Search - SPK




  8. #28
    Anwender Avatar von rednag
    Registriert seit
    08.11.2013
    Beiträge
    3.845

    Standard

    Zitat Zitat von PsychoHH Beitrag anzeigen
    Alternativ könntest du es auch über den Aufgabenplaner ausführen.
    Auch dort wäre es inkl. dry usw. möglich.
    Auf die Idee bin ich auch schon gekommen nachdem ich an mir selbst gezweifelt hatte. Das Script wird laut Aufgabenplaner aber nicht gefunden.... Es ist aber angelegt worden und liegt im angegeben Verzeichnis. Auch der Name stimmt überein.
    Bisher -trotz mittlerweile unzähligen Versuchen- hat es nur einmalig wie oben angedeutet funktioniert. Das ganze schmälert jetzt natürlich meine positive Denkweise an das selbstlose Projekt nicht im Geringsten, aber der typische DAU wäre froh wenn es läuft.
    Das mit dem Anpassen ist für Dich natürlich nur eine Sache von 10min. Du steckst ja da tief mit drin und hast eine andere Perspektive auf die Sache.
    DS415+ (DSM 6.2.2-24922)
    DS213 (6.2-23739 Update 2)
    TS-253B (4.3.6.0923)
    Vero 4K (OSMC)
    Fritz!Box 7490

    Homepage

  9. #29
    Anwender Avatar von dil88
    Registriert seit
    03.09.2012
    Beiträge
    28.573

    Standard

    Ist das Skript für den im Aufgabenplaner angegebenen User ausführbar?
    DS214+ mit DSM 5.2 5967-9 (1x WD RED 4TB), VU+ Solo2 SAT-Receiver, Fritzbox 7580 - Ultimate Backup

  10. #30
    Anwender
    Registriert seit
    02.07.2013
    Beiträge
    2.933

    Standard

    Wenn er es als root nutz, sollte das auch so gehen.

    Irgendwas muss da dann mit dem Pfad nicht stimmen.

    Such das einfach mal per find / - name "rsync*.sh"

    Und Poste hier mal den Pfad den du im Aufgabenplaner eingetragen hast. Dann einmal ein Screenshot mit den Eingaben im spk und ein Screenshot von den Eigenschaften des Script.

    Das Problem hatte ich bis jetzt auch noch nicht
    ! Bitte Postfachgröße erhöhen !


    DS916+ | 8GB RAM | 3x3TB WD Red RAID 5 btrfs | DSM 6.1-15047-U2
    DS216+II | 8GB RAM | 2x4TB WD Red basic ext4 | DSM 6.0.2-8451-U9
    DS212j | | DSM 6.0.2-8451-U9 | Backup DS

    Fritzbox 7490 | Netgear GS108Tv2


    Projekte:

    Ultimate Backup - SPK
    Ultimate Search - SPK




Seite 3 von 255 ErsteErste 123451353103 ... LetzteLetzte

Ähnliche Themen

  1. MSI Digi Vox Ultimate HD Pro
    Von sideshowbob im Forum Video Station
    Antworten: 5
    Letzter Beitrag: 11.01.2013, 20:16
  2. DS109, Win7 64bit Ultimate und Technisat HD8-C
    Von oribi im Forum Installation und Konfiguration allgemein
    Antworten: 3
    Letzter Beitrag: 18.09.2009, 07:06
  3. Synology Assistent unter Windows7 (Ultimate)
    Von Herbie59 im Forum Disk Station Manager
    Antworten: 12
    Letzter Beitrag: 28.08.2009, 22:41
  4. DS 107+ nicht sichtbar unter Vista Ultimate
    Von Rabbit69 im Forum SMB-Server / AFP-Server
    Antworten: 2
    Letzter Beitrag: 17.08.2008, 10:43
  5. CS407 - Vista64Bit ultimate // 5,4mb/s
    Von Darky im Forum SMB-Server / AFP-Server
    Antworten: 4
    Letzter Beitrag: 30.04.2008, 14:28

Berechtigungen

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