Ergebnis 1 bis 9 von 9

Thema: Backslash in UUID wird umgewandelt

  1. #1
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard Backslash in UUID wird umgewandelt

    Hallo liebe Contao Entwickler.

    Für einen Kunden erstelle ich eine Eingabemaske, in dem der Nutzer Bilder hochladen kann.

    Diese werden in einem Ordner abgespeichert, ich erhalte als Rückmeldung die UUID.

    Das Array serialisiere ich und füge es in die Datenbank (ein BLOB-Feld) ein.


    Die Eingabe die ich erzeuge: a:2:{i:0;s:20:"Ttñ£~VÓä´@ç\Äü?";i:1;s:20: "Ttñû~VÓä´@ç& #92 ;Äü?";}
    Die Eingabe, die Contao erzeugt: a:2:{i:0;s:16:"Ttñ£~VÓä´@ç\Äü?";i:1;s:16: "Ttñû~VÓä´@ç\Äü?";}
    Leerzeichen, damit & #92 ; nicht automatisch zu \ wird.

    Identische Dateien, daher ist das serialisierte Array beinah gleich. Die rot markierte Stelle zeigt den Unterschied: aus dem \ (Blackslash) wird & #92 ;

    Technisch verständlich, aber wie verhindere ich diese Umwandlung?

    Klar, ich könnte über vor dem Import über den String gehen und & #92 ; gegen \ tauschen, aber wahrscheinlich werden noch andere Zeichen umgewandelt.

    Jemand eine Idee?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Poste deinen Code + DCA.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Poste deinen Code + DCA.
    Der PHP, Code:

    PHP-Code:
    // Post-Data, welches die Upload-Dateien beinhaltet 
    $post_images_user = \Input::post('images_user');

    // prüft, ob eine Datei oder mehrere hochgeladen wurden
        
    if ( !is_array$post_images_user ) ) {
            
    $img_import[] = $post_images_user;
        } else {
            foreach ( 
    $post_images_user as $image ) {
                
    $img_import[] = $image;
            }
        }
    // serialisiert 
    $img_import serialize$img_import );

        \
    Contao\Database::getInstance()->prepare("
        UPDATE cc_order 
        SET ....... `images_user` = ?, `orderSRC_images_user` = ?
        WHERE `order_code` = ?
        "
    )->execute(......$img_import,$img_import,$order_code); 

    Das DCA wurde über custom catalog erstellt - weiß gar nicht genau, wo das abgespeichert wird, da die Eingabe manuell funktioniert, gehe ich aber auch davon aus, dass das DCA fehlerfrei ist. Falls du Infos zur Konfiguration der DB benötigst, kann ich diese einsehen.
    Geändert von Spooky (08.11.2023 um 17:24 Uhr)

  4. #4
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard

    Wird vielleicht bereits in der Übergabe per POST aus meinem \ ein & #92 ; ?

  5. #5
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard

    Da stande ich etwas auf dem Schlauch - habe mit html_entity_decode() wieder normale \ aus dem escapten Zeichen gemacht.

    Jetzt läuft es.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Verstehe dein Setup nicht ganz: du lässt per POST Request binäre UUIDs übertragen?
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Verstehe dein Setup nicht ganz: du lässt per POST Request binäre UUIDs übertragen?
    Genau, ich habe ein Formular, in dem das Fine Upload-Feld von Terminal 42 (https://extensions.contao.org/?q=fin...o-fineuploader) eingebunden ist. Damit wird die Datei abgespeichert und direkt die UUID zurückgegeben, damit ich diese nicht erst erstellen lassen oder suchen muss.

    Der Nutzer trägt Daten zu seinem Auftrag ein und lädt Bilder hoch.

    Diese Daten werden dann abgefangen und in deine Datenbank gespeichert. Ist das nicht der gewöhnliche Weg?

  8. #8
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    796
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Also ich verwenden den Fine-Upload aber die UUID wird bei mir nicht direkt verwendet, ich vermute mal das hier eine falsche (?) Einstellung gewählt wurde.

    Ich verwendet i.d.R. eine eigene kleine Erweiterung die das Formular erzeugt und auswertet. Dazu verwende ich die Erweiterung Contao-Haste von codefog, dort gibt es eine Docu wie ein Formular erzeugt und ausgewertet wird. https://github.com/codefog/contao-ha...n/docs/Form.md
    Geändert von Ainschy (09.11.2023 um 13:58 Uhr)

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    @cwe

    Du kannst doch ein "normales" Formular verwenden und das mit https://docs.contao.org/dev/referenc...ocessFormData/ auswerten - wenn die Option "UUID erzeugen" (o.ä.?) beim FU aktiviert ist, sind die UUIDs der Dateien in "$submittedData" (früher war das in $files) - sollen die Dateien in einen speziellen Ordner, dann Option "Home-Ordner" beim Fineuploader verwenden oder die Dateien per "move" in dem Hook in den gewünschten Ordner verschieben...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

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