Ankündigung

Einklappen
Keine Ankündigung bisher.

Array "tarnen" und per URL weiter geben!

Einklappen

Neue Werbung 2019

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

  • Array "tarnen" und per URL weiter geben!

    Hallo Leute,

    sagen wir mal ich habe ein Array:

    $array[] = array(4, 7, 8, 4);

    Jetzt möchte ich gerne diese Werte per Link weitergeben ...
    ....de/?array=......

    Ich habe das bisjetzt so gelöst, dass ich es so gemacht habe:

    $coded_array = base64_encode(serialize($array));
    $decoded_array = base64_decode($coded_array);

    Nun das funktioniert soweit gut, jedoch werden die Links einfach zu lang! Gibt es eine möglichkeit, dieses Array so im Link einzubinden, dass ein normaler User direkt kein System dahinter sieht, sprich nicht einfach "serialize($array)" aber dass der Link schön klein bleibt! Es muss keine Verschlüsselung sein oder so! Aber ich muss diesen Array später aus dem Link holen können ...

    crc32() sieht nett aus, aber man kann diese "Summe" nicht zurück umwandeln leider!

    Hat jemand vorschläge? Danke im Voraus

    Gruß Dima

    PS.: Google & Suchfunktion benuzt, nichts passendes gefunden oder übersehen!


  • #2
    Du kannst den Array per Session speichern:

    seite-1.php
    PHP-Code:
    <?php
    session_start
    ();
    $array = array(4784);  // übrigens ohne eckige Klammern oder war das Absicht?
    $_SESSION['streng-geheim'] = $array;
    ?>
    [url="seite-2.php"]Link[/url]
    seite-2.php
    PHP-Code:
    <?php
    session_start
    ();
    $array $_SESSION['streng-geheim'];
    print_r($array);
    ?>

    Kommentar


    • #3
      @Zergling:

      Deine Lösung heißt immer gleich Sessions

      @I-Spy

      Empfindliche oder große Daten(mengen) speichert man irgendwo auf dem Server und gibt den Ort (zB Dateinamen verschlüsselt) per URL mit. Im Prinzip macht eine Session genau das, aber die Daten sollen ja nicht persistent sein, soviel ich dich verstanden habe, sondern nur für eine Weiterleitung gelten.

      Kommentar


      • #4
        Ja, es ist aber so dass ich ein eigenes "Forum" programmiere (Naja, Verwaltungssystem eher). Jetzt soll ein user aber einem anderen user ein Link zb zu einem bestimmten Dokument geben! Und mit Sessions würde man so in Problemzonen kommen ...

        Gruß Dima

        Kommentar


        • #5
          naja, du könntest häufig auftretende zeichenkombinationen durch kürzere ersetzen und dann auf der zweiten seite wieder zurück umwandeln, ist aber sehr unsicher und meistens eher länger. wofür brauchst du das denn? versuch es doch mal mit formularen und versteckten feldern und dann per POST übermitteln... GET ist insofern problematisch, als eine URL nur 1000 zeichen lang sein darf. ansonsten kenne ich keine guten komprimiermöglichkeiten.
          oder du könntest das array in einer temporären datei speichern und nur den dateinamen übergeben. das zweite skript liest die datei aus und löscht sie.

          (kurze frage: du hast das array doch per implode(); zusammengefügt, oder?)
          Der beste Platz für Politiker ist das Wahlplakat. Dort ist er tragbar, geräuschlos und leicht zu entfernen.*– Loriot

          Kommentar


          • #6
            Zitat von I-Spy
            Ja, es ist aber so dass ich ein eigenes "Forum" programmiere (Naja, Verwaltungssystem eher). Jetzt soll ein user aber einem anderen user ein Link zb zu einem bestimmten Dokument geben!
            Was bedeutet, dass dieses Dokument frei zugänglich ist. Also kannst gleich den Pfad zum Dokument übergeben

            Kommentar


            • #7
              Zitat von Saraneus
              Empfindliche oder große Daten(mengen) ....
              a:1:{i:0;a:4:{i:0;i:4;i:1;i:7;i:2;i:8;i:3;i:4;}}

              Länger wird es auch nicht sein Deswegen wäre es nett dass man es irgend wie weiter geben könnte per Link! Und mit auf dem Server speichern ist nicht so gut, siehe letzer Post!

              Gruß Dima

              Kommentar


              • #8
                Zitat von -
                Was bedeutet, dass dieses Dokument frei zugänglich ist. Also kannst gleich den Pfad zum Dokument übergeben
                Dann müsste es so aussehen:

                ...?forum=1&file=7&doc=10&type=1

                Wie du siehst sind diese Werte jetzt auf einfache Weiße veränderbar, und das möchte ich nicht! Einfache "Tarnung" reicht mir jedoch aus

                Gruß Dima

                Kommentar


                • #9
                  @Saraneus: Du kannst meine Vorschläge gern kritisieren, aber dann bitte mit einer alternativen Lösung. So wie ich dich verstehe würdest du das ganze trotzdem per Link weitergeben (ist zu lang, damit ausgeschlossen) oder in einer Datei speichern? Das finde ich wiederum zuviel Aufwand. Die Session kann schließlich wieder mit session_destroy() vernichtet werden.

                  @I-Spy
                  Dann sag doch eindeutig, dass es um eine Kommunikation zwischen verschiedenen Usern geht. Damit fallen Sessions weg, und du könntest das ganze in einer Datenbank speichern (oder wie Saraneus vorschlägt in einer Datei, obwohl ich von direkt dateigestützten Datenspeicherungen nichts halte (Ausnahme XML, CSV, aber das muss schon einen triftigen Grund haben (z.B. keine DB vorhanden ).
                  Im Prinzip müsstest du nur eine DB-Tabelle LinkExchange austauschen und die User können dann je nach Zugriffsrecht darauf zugreifen.

                  Kommentar


                  • #10
                    Ok dann einfach bisschen direkt gefragt:

                    Kann man diese Zeichenkette (a:1:{i:0;a:4:{i:0;i:4;i:1;i:7;i:2;i:8;i:3;i:4;}}) fast mit der selben, oder mit der selben länge verschlüsseln, und dann später wieder entschlüsseln? Alles andere ist zwar nett, aber ich brauche es nicht! (Trotzdem Danke *g*)

                    Gruß Dima

                    Kommentar


                    • #11
                      Zitat von Zergling
                      @Saraneus: Du kannst meine Vorschläge gern kritisieren, aber dann bitte mit einer alternativen Lösung.
                      Ein Forum ist nicht zwingend eine Fundstelle für Lösungen. Hier gibt's Denkanstöße, und genau den hab ich geboten. Die Masse dort ablegen, wo es sinnvoll ist, nämlich nicht in der URL und in einem geschützten Bereich, und einen Verweis darauf - der unempfindlich ist - an die Öffentlichkeit (Link) geben. Wie er das umsetzt, ist eine ganz andere Frage.

                      Kommentar


                      • #12
                        Speichers wie Saraneus vorgeschlagen hat serialize()-d in eine temporäre Datei namens
                        $name = md5(uniqid(rand())), und übergib den Namen mit geheim.php?code=$name
                        Die geheim.php versucht dann die Datei namens ~ prefix $name ~postfix aufzumachen und den Inhalt unserialize()-d zu verarbeiten.

                        Ansonsten musste halt nen Verschlüsselungsverfahren benutzen das dir passt, base64 gefällt dir ja offenbar nicht.

                        Kommentar


                        • #13
                          Na gut, Danke dann

                          Gruß Dima

                          Kommentar


                          • #14
                            Gib mal ein beispiel der array mit print_r($array)

                            Kommentar


                            • #15
                              Array ( [0] => Array ( [0] => 4 [1] => 7 [2] => 8 [3] => 4 ) )

                              Sagt dir das was? *g*

                              Gruß Dima

                              Kommentar

                              Lädt...
                              X