[PHP] Simples Transpositions Verfahren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Don Poncho, 10. Dezember 2007 .

Schlagworte:
  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
     
  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;
     
     }
    ?>
    
    
     
  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
     
  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
     
  5. 13. Dezember 2007
    AW: Simples Transpositions Verfahren

    das war einfach nur zur überprüfung.... // und gut ist



    mfg cursed
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.