Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Artikel Anfrage

    Herr_Bert

    • Fördermitglied
    • Beiträge: 756
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #420 am: 31. Mai 2018, 11:48:43
    Noch das hier

    Zitat
    Suche:
    ENTRY_PRIVACY_ERROR

    Ersetze:
    ENTRY_PRIVACY_CONTACT_ERROR

    und das hier

    Code: PHP  [Auswählen]
    {if $PRIVACY_CHECKBOX}
              <tr>
              <td class="popup_name">&nbsp;</td>
              <td>{$PRIVACY_CHECKBOX} <strong>{#text_privacy_accept#}</strong> {$PRIVACY_LINK}</td>
             </tr>
              {/if}

    in der contact_us_popup.html eingefügt und alles funktioniert  :-D nu bin ich abba stolz  8-)

    Nur die Fehlermeldungen oberhalb des Formulars erscheinen nicht in einem Ferkelrosa Feld sondern auf dem Standard-Hintergrund  :-? na, das werde ich wohl im laufe des Jahres auch noch finden

    Herr_Bert

    karsta.de

    • Experte
    • Beiträge: 3.082
    Re: MODUL: Artikel Anfrage
    Antwort #421 am: 31. Mai 2018, 12:14:29
    Suche mal in deiner contact_us_popup.html class="popup_message_error" und ersetze es mit: class="errormessage".

    BG kgd

    Herr_Bert

    • Fördermitglied
    • Beiträge: 756
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #422 am: 31. Mai 2018, 12:21:14
    Oh, vielen Dank, jetzt sieht alles gleich aus  :thx:
    Auch für die Hilfe in den letzten Tagen, ohne dich und Hanspeter hätte ich das nicht umsetzen können.
    Ein klein wenig habe ich sogar dazu gelernt  :thumbs:

    Herr_Bert

    astaller

    • Fördermitglied
    • Beiträge: 684
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #423 am: 31. Mai 2018, 13:43:18
    Prima das es geklappt hat.
    Jetzt hab ich mir die Arbeit heute Morgen umsomst gemacht  ;-)
    War gerade dabei ein neues Paket zu schnüren...

    [update]
    Nichts desto trotz anbei das neue Paket für die Shopversion 1.06 rev 4642 SP4 mit Checkbox...
    Bitte mal testen.

    Tipp:
    Die Checkbox für das normal Kontaktformular siehe dieser Beitrag, sollte ebenfalls eingearbeitet werden...

    MfG
    Achim S.

    ND

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #424 am: 16. August 2019, 21:17:14
    Hallo Experten,

    ich möchte gerne das "Frage zum Produkt"-Formular mit einem Datei-Upload Feld erweitern.

    Zum Anfang habe ich das Ganze erstmal am Konaktformular umgesetzt.

    Folgendes habe ich geändert bzw. ergänzt:

    includes/contact_us.php

    Code: PHP  [Auswählen]
    xtc_php_mail($email,
                    $name,
                    CONTACT_US_EMAIL_ADDRESS,
                    CONTACT_US_NAME,
                    CONTACT_US_FORWARDING_STRING,
                    $email,
                    $name,                                                           
                    '',
                    '',
                    $CONT_US_SUBJ, //new variable defined above for e-mail subject, noRiddle
     

    geänder zu

    Code: PHP  [Auswählen]
    xtc_php_mail($email,
                    $name,
                    CONTACT_US_EMAIL_ADDRESS,
                    CONTACT_US_NAME,
                    CONTACT_US_FORWARDING_STRING,
                    $email,
                    $name,                                                           
                    $path_to_attachement,
                    $path_to_more_attachements,
                    $CONT_US_SUBJ, //new variable defined above for e-mail subject, noRiddle
     

    Meine Idee war, da es ja schon die Variable $path_to_attachement gibt, diese für den Upload zu verwenden.

    Deshalb habe ich im Shop-Root den Ordner upload erstellt und in der contact_us.php über

    Code: PHP  [Auswählen]
    xtc_php_mail($email,

    folgenden Code eingefügt

    Code: PHP  [Auswählen]
    //Ordnername festlegen in dem die hochgeladenen Dateien liegen
    $ordnername = "upload";

    //Unterorner per Zufallszahl erstellen
    $zufall = rand(1,10000);
    mkdir("$ordnername/$zufall/", 0700);
    $uploadFilePath = "$ordnername/$zufall/";

    // upload
    // Count # of uploaded files in array
    $total = count($_FILES['upload']['name']);
    // Loop through each file
    for( $i=0 ; $i < $total ; $i++ ) {
      //Get the temp file path
      $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
      $dateityp = GetImageSize($_FILES['upload']['tmp_name'][$i]);
            if($dateityp[2] != 0){
                    move_uploaded_file($tmpFilePath, "upload/$zufall/".$_FILES['upload']['name'][$i]);
            }
            $filename = '';
            if($dateityp[2] != 0) {
                    $filename = "upload/$zufall/".$_FILES['upload']['name'][$i];
                    $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT. "$filename";
            }
    }

    // upload
     

    Die Zeile

    Code: PHP  [Auswählen]
        $smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'], 'SSL')));

    geändert in

    Code: PHP  [Auswählen]
        $smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'], 'SSL'),'post', 'enctype="multipart/form-data"'));

    und vor der Zeile

    Code: PHP  [Auswählen]
     $smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 45, 15, ($error ? $_POST['message_body'] : $message_body)));

    diese Zeile eingefügt

    Code: PHP  [Auswählen]
    $smarty->assign('UPLOAD', xtc_draw_input_field('upload[]','','multiple','file'));

    Jetzt noch die Template-Datei SHOP_ROOT/templates/meintemplate/module/contact_us.html mit den smatys ergänzen

    Code: PHP  [Auswählen]
    <td>{#text_upload#}</td><td>{$UPLOAD}</td>

    und die Sprachdatei SHOP_ROOT/lang/german/lang_german.conf unterhalb von [contact_us] ergänzen

    Code: PHP  [Auswählen]
    text_upload = 'Datei anh&auml;ngen:'

    Meine Anpassungen funktionieren so weit wie gelwollt. Es wird ein Unterordner im Upload-Ordner per Zufallszahl erzeugt und über das Kontakt- bzw. Anfrageformular kann per multiselect mehrere Bilddateien angehängt werden. Die Dateien landen wie gewollt im Ordner upload/$zufall und werden dann per Mail verschickt.

    Jetzt zu dem Punkt an dem ich nicht weiter komme:

    Ich hätte gerne das der Ordner $zufall sammt Inhalt nach erfolgreichem Mail-Versand gelöscht wird. Meine Versuche mit rmdir(upload/$zufall) führten dazu, dass auch der Ordner upload gelöscht wurde und nicht nur der Unterordner $zufall mit Inhalt.

    Vielen Dank für euere Hilfe im voraus!

    VG ND

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #425 am: 17. August 2019, 12:21:10
    [...]
    Ich hätte gerne das der Ordner $zufall sammt Inhalt nach erfolgreichem Mail-Versand gelöscht wird. Meine Versuche mit rmdir(upload/$zufall) führten dazu, dass auch der Ordner upload gelöscht wurde und nicht nur der Unterordner $zufall mit Inhalt.
    [...]

    Mich wundert das überhaupt etwas gelöscht wurde, denn die PHP-Funktion rmdir() funktioniert nur wenn das Verzeichnis leer ist, siehe hier -> https://www.php.net/manual/de/function.rmdir.php

    Vorschlag: Versuch es mal mit diesem Code.

    Code: PHP  [Auswählen]
    // Folgender Pfad muss ev. angepasst werden wenn sich das aufgerufene Skript nicht auf gleicher Ebene befindet wie der Ordner "upload".
    $dirPath = "upload/$zufall";

    // Folgende Funktion ist von hier -> https://stackoverflow.com/questions/1653771/how-do-i-remove-a-directory-that-is-not-empty
    function deleteDirectory($dir) {
        if (!file_exists($dir)) {
            return true;
        }

        if (!is_dir($dir)) {
            return unlink($dir);
        }

        foreach (scandir($dir) as $item) {
            if ($item == '.' || $item == '..') {
                continue;
            }

            if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
                return false;
            }

        }

        return rmdir($dir);
    }

    deleteDirectory($dirPath);
     

    Nachtrag:
    Kontrollierst du die hochgeladenen Dateien auf Schadsoftware, bevor du sie in deinem E-Mail-Client öffnest?

    Gruss
    Hanspeter

    ND

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #426 am: 17. August 2019, 17:05:27
    Hallo Hanspeter,

    erstmal vielen Dank für deine Hilfe.

    Ich habe den von dir vorgeschlagenen Code an das Ende der contact_us.php gesetzt. Jetzt wird der Ordner upload inklusive aller Unterordner und Dateien gelöscht. Der Ordner upload soll aber nicht gelöscht werden, sondern nur der Unterordner der per Zufallszahl ($zufall) erzeugt wurde. Zudem hat die Mail auch keinen Anhang mehr.

    Zum Test habe ich deinen Vorschlag in die inc/xtc_php_mail.inc.php eingefügt. Auch da wurde der Ordner upload inklusive Inhalt gelöscht und die Mail hatte keinen Anhang.

    Hast du noch einen Vorschlag, wie bzw.wo ich den Code einfügen muss, damit es nach meinen Vorstellungen funktioniert? Hatte noch versgessen zu sagen, die Shop Version ist 1.06.

    VG ND

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #427 am: 18. August 2019, 17:18:22
    Um es zu vereinfachen könntest du erst das File mittles unlink() löschen und gleich hinterher das Directory mittels rmdir().

    Allerdings würde ich mir mal über hpzellers Nachtrag Gadanken machen.
    ...
    Kontrollierst du die hochgeladenen Dateien auf Schadsoftware, bevor du sie in deinem E-Mail-Client öffnest?
    ...

    Vor allem würde ich aber auch den User-Input, also die hochgeladenen Files genauer prüfen und filtern.
    (siehe dazu auch das PHP-Manual)
    Dazu gehört eine Höchstgröße der Files die zugelassen wird, eine Begrenzung auf gewisse File-Extensions, die Restriction auf bestimmte Zeichen im File-Namen sowie das Verhindern von "Directory Traversal"-Attacks (die Suchmaschine deines Vertrauens sagt dir mehr darüber).
    Am Besten wäre die Nutzung einer Upload-Klasse die das alles für dich macht, da gibt's bestimmt etwas im I-Net.
    Die Klasse upload aus dem Backend würde ich für Frontend Files nicht empfehlen, sie lässt zu viel zu.

    Es sei dir nochmals ans Herz gelegt keinen User-Input ungefiltert zuzulassen. Dazu gehören vor allem auch File-Uploads. Das ist kein Thema welches man vernachlässigen darf.

    Es wäre außerdem nett wenn du meinen Namen aus dem Spiel lässt wenn du Code-Fetzen hier postest.
    Dein Code ist unsicher, sprich, hat Sicherheitslücken, und meinen Avatar-Namen in einem Kommentar in einem Ausschnitt deinses Codes sehe ich da nicht gerne.

    Gruß,
    noRiddle

    *NACHTRAG*
    Die simple Abfrage die du in deinem Code benutzt ob der Typ den getimagesize() zurückgibt nicht 0 ist reicht bei weitem nicht zur Absicherung aus.
    Nebenbei stellt sich die Frage ob Kunden nicht auch PDFs hochladen dürfen sollen, wo man mit getimagesize() dann ohnehin nicht weiterkäme.

    ND

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #428 am: 18. August 2019, 19:44:54
    Hallo noRiddle,

    entschuldige, dass ich deinen Namen mit gepostet habe. Ich gebe Dir und Hanspeter Recht, dass der Code so wie ich ihn gepostet habe nicht sicher ist. Mir ging es bis hier hin um die Funktionsweise und ob meine Idee so umsetzbar ist. Das Thema Sicherheit darf selbstverständlich nicht außeracht gelassen werden und steht als nächstes auf meiner Liste! Aber ich werden deinen Rat beherzigen und von der Upload-Funktion die Finger lassen und mir eine andere Lösung überlegen.

    VG ND

    astaller

    • Fördermitglied
    • Beiträge: 684
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #429 am: 28. Januar 2020, 07:53:57
    Hallo zusammen,

    hier nun die Anpassungen des Moduls an Shopversion 2.0.5.0 rev 12487.
    Folgende Änderungen wurden gemacht:
    • Anpassung des Quellcodes an die neue Shopversion
    • Anpassung an das aktualisierte Design
    • Das PopUp-Kontaktformular wird nun wie die das normale Kontaktformular über den Content-Manger gesteuert und eingebunden. Dazu wird ein neuer Content anlegegt mit der ID=99.
      Diese ID sollte nicht schon belegt sein durch einen anderen Content.
      Es können dadurch nun weitere Informationen zusätzlich angegeben werden, welche dann im PopUp ersichtlich sind.
    Bitte seid so lieb und testet es einmal.
    Falls ich noch irgendwo einen Fehler haben sollte, bitte mir mitteilen.

    MfG
    Achim S.

    [EDIT Tomcraft 28.01.2020: Modul in Beitrag 1 eingefügt.]

    astaller

    • Fördermitglied
    • Beiträge: 684
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #430 am: 28. Januar 2020, 19:41:46
    Uups, ich habe ganz vergessen zu erwähnen dass das neue Modul zuvor installiert werden muss  :datz:

    In der Shopadministration unter "Module -> System Module" in der Tabelle "Folgende Module sind noch verfügbar" das Modul "Frage zu Artikel PopUp" markieren und oben rechts auf den Installations-Button klicken.

    MfG
    Achim S.

    Rocket3

    • Mitglied
    • Beiträge: 186
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #431 am: 28. Januar 2020, 20:01:29
    Hallo,
    habe das Modul nach der Anleitung installiert, beim öffnen erscheint aber im popup Fenster die ganze Startseite (siehe Bild).
    Was ist da schief gelaufen?

    modified eCommerce Shopssoftware v2.0.5.0 rev 12487 dated: 2019-12-13
    mit tpl_modified_responsive

    Gruß
    Mladen

    astaller

    • Fördermitglied
    • Beiträge: 684
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #432 am: 28. Januar 2020, 20:08:32
    Kann man sich das Live anschauen?
    Ich glaube ich muss die Anleitung nochmal überarbeiten, komme aber erst Morgen dazu.

    MfG
    Achim S.

    Rocket3

    • Mitglied
    • Beiträge: 186
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #433 am: 28. Januar 2020, 20:32:10
    Hallo,
    leider nicht, habe es probeweise local installiert, da ich eigentlich mit bootstrap4 vom Karl arbeite, und dort ist es schon von hause aus eingebaut.

    astaller

    • Fördermitglied
    • Beiträge: 684
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #434 am: 29. Januar 2020, 09:34:01
    Hallo,

    anbei jetzt nochmal das überarbeitete Paket mit verbesserter Installationsanleitung.

    MfG
    Achim S.

    [EDIT Tomcraft 29.01.2020: Modul in Beitrag 1 aktualisiert.]
    97 Antworten
    40879 Aufrufe
    13. März 2019, 12:34:42 von goair
    4 Antworten
    1657 Aufrufe
    16. Januar 2020, 12:55:41 von hpzeller
    2 Antworten
    169 Aufrufe
    29. November 2023, 09:10:16 von Timm
               
    anything