#1 10. Dezember 2007 Simples Transpositions Verfahren Hi, mal wieder was programmier und mal wieder klempts irgentwo... Code: <?php echo " <head> <title> Simple Transposition </head> <body> <form method=POST action='simptrans.php'> <h1>Simple Transposition</h1> <br> Klartext: <br> <textarea name='ktb'></textarea> <br> <br> Codewort: <br> <input type='text' name='cwb'> <br> <br> <input type='submit' name='ok' value='Senden'> <br> <br> Geheimtext: <br> <textarea name='gtb'></textarea> "; if (isset($_POST['ok'])){ $kt=$_POST['ktb']; $cw=$_POST['cwb']; $kt = preg_replace('/[^A-Z a-z]/i', '', $kt); $arrBS['bs']=array(); $arrBS['pos']=array(); for ($i=0;$i<strlen($cw);$i++){ $arrBS['bs'][$i]=substr($cw,$i,1); $arrBS['pos'][$i]=$i; } array_multisort($arrBS['bs'],$arrBS['pos']); for( $i=0; $i<count( $arrBS["pos"]); $i++) echo $arrBS["pos"][$i] . " | "; echo "<br>"; for( $i=0; $i<count( $arrBS["bs"]); $i++) echo $arrBS["bs"][$i] . " | "; echo "<br>"; for ($pos=0;$pos<count($arrBS['pos']);$pos++){ echo $pos . "<br>"; for ($i=$arrBS['pos'][$pos];$i<=strlen($kt);$i=$i+strlen($cw)){ $gt=$gt.substr($kt,$i,1); } } echo $gt; } ?> ein parr ausgaben sind nur zur kontrolle da aber es geht auch leider nicht wirklich eigentlich soll so sein: klartext: Hallo RaidRush code: wiesel der text wird unter den code geschrieben: wiesel hallor aidrus h jetz wird der code nach alphabetischer reihenfolge sortiert -> eeilsw und nun wird vom ersten e nach unten gelesen also: ld dann das zweite e: ou das i: ai das l: rs das s: lr udn das w: hah ergebnis: ldouairslrhah + Multi-Zitat Zitieren
#2 11. Dezember 2007 AW: Simples Transpositions Verfahren also ich hab mal gefeilt: Code: <?php // ----- Formular Wird Ausgegeben ----- echo " <head> <title> Simple Transposition </head> <body> <form method=POST action='simptrans.php'> <h1>Simple Transposition</h1> <br> Klartext: <br> <textarea name='ktb'>".$_POST['ktb']."</textarea> <br> <br> Codewort: <br> <input type='text' name='cwb' value=".$_POST['cwb']."> <br> <br> <input type='submit' name='ok' value='Senden'> <br> <br> Geheimtext: <br> <textarea readonly name='gtb'>".$gt."</textarea> <br> <br> "; //Script Wird Gestartet Wenn Submit Button Gedrückt Wurde if (isset($_POST['ok'])){ // ----- Klartext Und CodeWort Werden In Variablen Gespeichert ($kt Wird Von Sonderzeichen Befreit) ----- $kt=preg_replace("/[^A-Z a-z]/i","",$_POST['ktb']); $cw=$_POST['cwb']; // ----- Arrays Werden Erstellt ----- $arrBS['bs']=array(); $arrBS['pos']=array(); // ----- Arrays Werden Mit $cw Und Den Entsprechenden Positionen "Befüllt" for ($i=0;$i<strlen($cw);$i++){ $arrBS['bs'][$i]=substr($cw,$i,1); $arrBS['pos'][$i]=$i; } // ----- Array Wird Alphabetisch Sortiert ----- array_multisort($arrBS['bs'],$arrBS['pos']); /* ----- Kontrollausgaben ----- for( $i=0; $i<count( $arrBS["pos"]); $i++) echo $arrBS["pos"][$i] . " | "; echo "<br>"; for( $i=0; $i<count( $arrBS["bs"]); $i++) echo $arrBS["bs"][$i] . " | "; echo "<br>"; */ // ----- Schleife Durchläuft Spalten ----- for ($pos=0;$pos<count($arrBS['pos']);$pos++){ /* ----- Kontrollausgaben ----- echo $pos . " | "; */ // ----- $gt Wird Aus Den Elementen Des Array Erstellt (Zeilen ----- for ($i=$arrBS['pos'][$pos];$i<=strlen($kt);$i=$i+strlen($cw)){ $gt=$gt.substr($kt,$i,1); } } echo "<br>"; // ----- $gt Wird Ausgegeben (Soll Eigentlich In Die Textarea) ----- echo $gt; } ?> + Multi-Zitat Zitieren
#3 11. Dezember 2007 AW: Simples Transpositions Verfahren Hi ich hab mich mal drangesetzt und was geschrieben. Es geht, aber mein Programmierstiel ist nicht der beste PHP: <? if (isset( $_GET [ 'ok' ])){ $kt = $_GET [ 'ktb' ]; $cw = $_GET [ 'cwb' ]; $kt = preg_replace ( '/[^A-Z a-z]/i' , '' , $kt ); echo strlen ( $kt ); echo "<br>" ; echo strlen ( $cw ); echo "<br>" ; $new_kt = str_replace ( ' ' , '' , $kt ); $new_kt = strtolower ( $new_kt ); $array_cw = str_split ( $cw ); echo chunk_split ( $new_kt , strlen ( $cw ), "<br>" ); $getrennte = chunk_split ( $new_kt , strlen ( $cw ), "µ" ); $array_trennt = explode ( 'µ' , $getrennte ); //echo count($array_trennt); //print_r($array_trennt); echo "<br>" ; for ( $i = 0 ; $i < count ( $array_trennt ); $i ++){ $array_trennt [ $i ]= str_split ( $array_trennt [ $i ]); if ( count ( $array_trennt [ $i ])!= strlen ( $cw )){ for ( $x = count ( $array_trennt [ $i ]); $x < strlen ( $cw ); $x ++){ $array_trennt [ $i ][ $x ]= '' ; } } } //echo "<br><br>"; //echo count($array_trennt); $backup = $array_cw ; for( $i = 0 ; $i < count ( $array_trennt ); $i ++){ array_multisort ( $array_cw , $array_trennt [ $i ]); $array_cw = $backup ; } $endstring = "" ; for( $i = 0 ; $i < strlen ( $cw ); $i ++){ for( $x = 0 ; $x < count ( $array_trennt ); $x ++){ $endstring .= $array_trennt [ $x ][ $i ]; } } echo $endstring ; } ?> Zum testen einfach mal "?cwb=wiesel&ktb=Hallo%20RaidRush&ok=" in die adressleiste eingeben. Ich hoffe es hilft dir. Mfg Cursed + Multi-Zitat Zitieren
#4 12. Dezember 2007 AW: Simples Transpositions Verfahren hmm auch cool ^^ aber wieso echo`st du strlen? das mit dem strtolower ist gut das hatte ich vergessen + Multi-Zitat Zitieren
#5 13. Dezember 2007 AW: Simples Transpositions Verfahren das war einfach nur zur überprüfung.... // und gut ist mfg cursed + Multi-Zitat Zitieren