+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Umgang mit Auswahlfeldern

  1. #1
    TP-Member Makka Marki macht alles soweit korrekt
    Registriert seit
    Feb 2005
    Beiträge
    70

    Umgang mit Auswahlfeldern

    Schönen guten Morgen!
    Unzwar habe ich eine einfach Anfängerfrage zu Auswahlfeldern. Ich habe ein Forumular mit 2 solcher ausgestattet die wie folgt aussehen:

    <select name='prime1' size='1'>;
    <option>5</option>;
    <option>7</option>;

    Das Formular enthält lediglich ein paar weitere Elemente wie z.B. Textfeldern wo nach dem Abschicken des Formulars etwas drin stehen soll (Berechnung der RSA Schlüssel). Nun habe ich jedoch die kleine Macke in meinem Programm, dass die Auswahlfelder nach dem Abschicken wieder auf die beiden Standardwerte zurückspringen und nicht bei der Benutzereingabe bleiben. Wie kann ich das realisieren?


    Vielen herzlichen Dank!

  2. #2
    TP-Senior Moritz macht sich hier sehr viel Mühe
    Registriert seit
    Nov 2002
    Beiträge
    289
    Hallo!

    Wenn Du hier Hilfe bekommen möchtest, dann solltest Du auch ein wenig Zeit in die Erstellung einer Problembeschreibung investieren, die die anderen Nutzer dazu befähigt dir auch zu helfen.
    Einige verpflichtende Angaben wäre zum Beispiel ein etwas umfangreicheres Code-Beispiel und eine Beschreibung mit welcher Programmiersprache in welchem Umfeld gearbeitet wird und wie zB mögliche Berechnungen aussehen. Aus dem kleinen Beispiel, das Du angegeben hast lässt sich nicht, aber wirklich gar nichts erkennen(ich denke die Leute, die dir hier helfen können, wissen wie ein Select-Feld aussieht). Schließlich gehst Du auch nicht in die Autowerkstatt mit dem Innenspiegel deines Autos und sagt, dein Auto würde nicht mehr anspringen. Wie soll der fleißige KFZ-Mechaniker wissen was mit deinem Auto ist, wenn Du ihm nur den Spiegel mitbringst?

    So - lange Rede - kurzer Sinn: bitte mehr Code und Beschreibung. Danke.
    ...zur Zeit außer Betrieb...

  3. #3
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Nun habe ich jedoch die kleine Macke in meinem Programm, dass die Auswahlfelder nach dem Abschicken wieder auf die beiden Standardwerte zurückspringen und nicht bei der Benutzereingabe bleiben. Wie kann ich das realisieren?
    Wenn du PHP benutzt, so (schnell & dreckig Methode):

    <option<?php if(isset($_POST['prime1']) AND $_POST['prime1']==5) echo ' selected="selected"'; ?>>5</option>;
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  4. #4
    TP-Member Makka Marki macht alles soweit korrekt
    Registriert seit
    Feb 2005
    Beiträge
    70
    Also mein Programm soll mit Hilfe zweier Primzahlen den öffentlichen und privaten Schlüssel der RSA Verschlüsselungsmethode erzeugen... Zusätzlich werden noch andere Werte eingeblendet die nötig sind um die Schlüssel zu berechnen... Screenshot ist im Anhang



    Key_Gen_open.php


    PHP-Code:
    <?php

    // Der Bezug zur Klassendatei wird hergestellt   
    require ('./Key_Gen_class.php');



    if(isset(
    $_POST['create'])){

      if (
    $_POST['prime1'] != $_POST['prime2']){
        
    // Die Eigenschaften der Klasse RSAKeyGenerator werden aufgerufen 

        
    $RSAKeyGenerator = new RSAKeyGenerator();
        
    $RSAKeyGenerator->fill_primes($_POST['prime1'],$_POST['prime2']);
        
    $m=$RSAKeyGenerator->create_m();
        
    $phi=$RSAKeyGenerator->create_phi();
        
    $e=$RSAKeyGenerator->create_e ();
        
    $d=$RSAKeyGenerator->create_d ();

      }
      
    // Werden 2 gleiche Primzahlen eingegeben erhält der Benutzer eine Fehlermeldung

      
    else {
      
        echo 
    "<font color=\"#FF0000\">Please choose two different prime numbers!</font>";
      
      }
      
    }


    // Die Programmoberfläche wird erstellt

    echo"<html>";
    echo
    "<head>";
    echo
    "<title>RSA Keys</title>";
    echo
    "</head>";
    echo
    "<body> ";
    echo
    "<h2>RSA Keys</h2>";
    echo
    "<form action='" $SELF_PHP "' method='POST'>"
    echo
    "<table border=1>";
    echo
    "<tr><td><b>P = 

          <select name='prime1' size='1'>;
          <option>5</option>;
          <option>7</option>;
          <option>11</option>;
          <option>13</option>;
          <option>17</option>;
          <option>19</option>;
          <option>23</option>;
          <option>29</option>;
          <option>31</option>;
          <option>37</option>;
          <option>41</option>;
          <option>43</option>;
          <option>47</option>;
          <option>53</option>;
          <option>59</option>;
          <option>61</option>;
          <option>67</option>;
          <option>71</option>;
          <option>73</option>;
          <option>79</option>;
          <option>83</option>;
          <option>89</option>;
          <option>97</option>;
          </select></td>"
    ;
          
    echo
    "<td><b>Q =;

          <select name='prime2' size='1'>;
          <option>5</option>;
          <option>7</option>;
          <option>11</option>;
          <option>13</option>;
          <option>17</option>;
          <option>19</option>;
          <option>23</option>;
          <option>29</option>;
          <option>31</option>;
          <option>37</option>;
          <option>41</option>;
          <option>43</option>;
          <option>47</option>;
          <option>53</option>;
          <option>59</option>;
          <option>61</option>;
          <option>67</option>;
          <option>71</option>;
          <option>73</option>;
          <option>79</option>;
          <option>83</option>;
          <option>89</option>;
          <option>97</option>;
          </select></td>"
    ;
          
    echo
    "<tr><td align='right'><b>m</td>";
    echo
    "<td><input type='text' size='8' value='" $m "' readonly></input></td></tr>";
    echo
    "<tr><td align='right'><b>(p-1)*(q-1)</td>";
    echo
    "<td><input type='text' size='8' value='" $phi "' readonly></input></td></tr>";
    echo
    "<tr><td align='right'><b>e</td>";
    echo
    "<td><input type='text' size='8' value='" $e "' readonly></input></td></tr>";
    echo
    "<tr><td align='right'><b>d</td>";
    echo
    "<td><input type='text' size='8' value='" $d "' readonly></input></td></tr>";
    echo
    "<tr><td colspan='2' align='center'><input type='submit' name='create' value='Create Key'></td></tr>";
    echo
    "</table>";
    echo
    "</form>";
    echo
    "</body>";
    echo
    "</html>";
       
    ?>


    _________________________________________________________________

    Key_Gen_class.php


    <?php

    // Die Klasse RSAKeyGenerator wird definiert

    class RSAKeyGenerator {


    // ----------------------->Attribute<-----------------------------------

      
    private $m;
      private 
    $phi;
      private 
    $p;
      private 
    $q;
      private 
    $e;

      
    // ----------------------->Eigenschaften<------------------------------

    // Die vom Benutzer gewählten Primzahlen werden den Attributen zugeschrieben
      
      
    function fill_primes ($p$q){
      
        
    $this->$p;
        
    $this->$q;
        
         
      }
      
    // m wird berechnet

      
    function create_m (){
      
        
    $m = ($this->p)*($this->q);
        
    $this->$m;
        return 
    $m
      
      }
      
    // phi wird berechnet

      
    function create_phi () {
      
        
    $phi = ($this->p-1)*($this->q-1);
        
    $this->phi $phi;
        return 
    $phi;
      
      }
      
    // Der öffentliche Schlüssel e wird berechnet

      
    function create_e () {
        

        for(
    $e=2$e<$this->m$e++){
        
        
    //KGV von e und phi wird gebildet
        
          
    if ($e $this->phi){
          
            for (
    $k=$e; ($k) % ($this->phi) != 0$k += $e){
            
            
    // In $k steht das KGV
            
            
    }
            
          }
          
          else{
          
            for (
    $k=$this->phi; ($k) % ($e) != 0$k += $this->phi){
            
            
    // In $k steht das KGV
            
            
    }
          
          }
          
          
    /*
            GGT ist (e->öffentlicher Schlüssel mal phi) durch das KGV beider
            Sobald $finish den Wert 1 hat sind beide zueinander teilerfremd
            -> Die Bedingung für e ist erfüllt, die Schleife wird abgebrochen (break;)
          */
          
          
    $finish = ($e $this->phi)/$k;
          
          if (
    $finish ==  1){
          
            break;
          
          }
            
        }
        
      
    $this->$e;
        
      return 
    $e;
      
      }
      
    // Der private Schlüssel d wird berechnet
      
      
    function create_d () {
      
        for (
    $d=1; (($this->e*$d) % ($this->phi)) != $d++){
      
        }
        
      return 
    $d;

      }


    }
    ?>



    Ich hoffe das hilft ein wenig mehr um für Durchblick zu sorgen. Wenn schonmal mein ganzes Script drin steht wäre ich für Optimierungs und Verbesserungsvorschläge sehr dankbar.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Umgang mit Auswahlfeldern-rsa_empty.jpg   Umgang mit Auswahlfeldern-rsa_prime5_prime11.jpg  
    Geändert von phpBuddy (18.02.2008 um 21:02 Uhr) Grund: Code in Code-Box gesetzt

  5. #5
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Ja und was möchtest du jetzt? Ich hab dir doch eine Lösung genannt?
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  6. #6
    TP-Member Makka Marki macht alles soweit korrekt
    Registriert seit
    Feb 2005
    Beiträge
    70
    Vielleicht habe ich es jetzt falsch verstanden bzw. falsch gelesen... Aber bezieht sich deine Lösung nicht ausschließlich auf die Primzahl 5? Aber es gibt ja in beiden Auswahlfeldern einiges mehr an Primzahlen....

    UNd es wäre vielleicht nicht schlecht, wenn du generelle Verbesserungsvorschläge machen könntest.... Zum Programm an sich.


    Danke

  7. #7
    TP-Veteran max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User Avatar von max.m
    Registriert seit
    Dec 2005
    Ort
    Stuttgart
    Beiträge
    1.955
    Den Code von Boris musst Du in jedes Optionsfeld einfügen, und eben für ==5 jeweils die entsprechende Primzahl einfügen.

  8. #8
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Also wenn ich deinen Kommentar lese, kommt in mir die Frage auf, wie du deinen Code überhaupt hinbekommen hast (sorry)

    Natürlich musst du es für jedes OPTION Element entsprechend anpassen und vergleichen.

    Besser wäre es allerdings, alle Werte deines SELECTs in ein Array zu packen und dies dynamisch zu erstellen, zeitgleich halt vergleichen und das selected="selected" zu setzen. Erspart eine Menge Tipparbeit
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

+ Antworten

Aktive Benutzer

Aktive Benutzer

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

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51