Problem mit ASCii und viel schreibzeugs!

heino-th

Erfahrenes Mitglied
Hallo,
ich hab mal wieder n Problem :-)

Also, ich möchte gerne, das man, wenn man in ein Eingabefeld von "a" ein z.B: "true" eingibt
der ASCii-Wert vom Buchstaben "a" (97) in eine Variable $Buchstaben schreibt, nun soll das für fast alle ASCii-Zeichen geschehen, also wenn
a=true, dann $Buchstaben .="97";
b=true, dann $Buchstaben .="98";
usw...

Das bei fast jedem möglichen Wert wäre ziemlich langwirig, einzelne abfragen zu machen, ausßerdem auch noch unübersichtlich

Nun kann man das bestimmt irgenwie anders lösen, also bitte gebt mir tipps, hilfe oder sonst was, und erspart mir das langwirige Tippen ;)

Vielen Dank :D

mfg heino
 
jo, danke erstmal, war des gesucht hab - thx :D

Nun noch ne Frage: will kein neuen Thread verschwenden! ;)

Ich hab jetzt mal für jeden Buchstaben (Groß-/Kleingeschrieben) ne Abfrage gemacht, wenn Wert = "true" dann soll der Buchstabe an eine Variable $Buchstaben angehängt werden!

Hier habs ich mal eben gmacht:

PHP:
<?php

//Testangaben - später durch Kontrollboxen angegeben!

//Kleinbuchstaben
$a_klein="true";
$b_klein="";
$c_klein="true";
$d_klein="";
$e_klein="";
$f_klein="true";
$g_klein="";
$h_klein="";
$i_klein="true";
$j_klein="";
$k_klein="";
$l_klein="true";
$m_klein="";
$n_klein="";
$o_klein="true";
$p_klein="";
$q_klein="";
$r_klein="true";
$s_klein="";
$t_klein="";
$u_klein="true";
$v_klein="";
$w_klein="";
$x_kleintrue="true";
$y_klein="";
$z_klein="true";

//Großbuchstaben
$A_gross="";
$B_gross="true";
$C_gross="";
$D_gross="true";
$E_gross="";
$F_gross="true";
$G_gross="";
$H_gross="true";
$I_gross="";
$J_gross="true";
$K_gross="";
$L_gross="true";
$M_gross="";
$N_gross="true";
$O_gross="";
$P_gross="true";
$Q_gross="";
$R_gross="true";
$S_gross="";
$T_gross="true";
$U_gross="";
$V_gross="true";
$W_gross="";
$X_gross="true";
$Y_gross="";
$Z_gross="true";






function getpass() {
    $newpass = "";
    $laenge=7;

    //-------------------------------
      $Buchstaben = "";
      
//Kleinbuchstaben (aktiv oder inaktiv überprüfen)
if ($a_klein="true") {
$Buchstaben .="a";
}
if ($b_klein="true") {
$Buchstaben .="b";
}
if ($c_klein="true") {
$Buchstaben .="c";
}
if ($d_klein="true") {
$Buchstaben .="d";
}
if ($e_klein="true") {
$Buchstaben .="e";
}
if ($f_klein="true") {
$Buchstaben .="f";
}
if ($g_klein="true") {
$Buchstaben .="g";
}
if ($h_klein="true") {
$Buchstaben .="h";
}
if ($i_klein="true") {
$Buchstaben .="i";
}
if ($j_klein="true") {
$Buchstaben .="j";
}
if ($k_klein="true") {
$Buchstaben .="k";
}
if ($l_klein="true") {
$Buchstaben .="l";
}
if ($m_klein="true") {
$Buchstaben .="m";
}
if ($n_klein="true") {
$Buchstaben .="n";
}
if ($o_klein="true") {
$Buchstaben .="o";
}
if ($p_klein="true") {
$Buchstaben .="p";
}
if ($q_klein="true") {
$Buchstaben .="q";
}
if ($r_klein="true") {
$Buchstaben .="r";
}
if ($s_klein="true") {
$Buchstaben .="s";
}
if ($t_klein="true") {
$Buchstaben .="t";
}
if ($u_klein="true") {
$Buchstaben .="u";
}
if ($v_klein="true") {
$Buchstaben .="v";
}
if ($w_klein="true") {
$Buchstaben .="w";
}
if ($x_klein="true") {
$Buchstaben .="x";
}
if ($y_klein="true") {
$Buchstaben .="y";
}
if ($z_klein="true") {
$Buchstaben .="z";
}

//Großbuchstaben (aktiv oder inaktiv überprüfen)
if ($A_gross="true") {
$Buchstaben .="A";
}
if ($B_gross="true") {
$Buchstaben .="B";
}
if ($C_gross="true") {
$Buchstaben .="C";
}
if ($D_gross="true") {
$Buchstaben .="D";
}
if ($E_gross="true") {
$Buchstaben .="E";
}
if ($F_gross="true") {
$Buchstaben .="F";
}
if ($G_gross="true") {
$Buchstaben .="G";
}
if ($H_gross="true") {
$Buchstaben .="H";
}
if ($I_gross="true") {
$Buchstaben .="I";
}
if ($J_gross="true") {
$Buchstaben .="J";
}
if ($K_gross="true") {
$Buchstaben .="K";
}
if ($L_gross="true") {
$Buchstaben .="L";
}
if ($M_gross="true") {
$Buchstaben .="M";
}
if ($N_gross="true") {
$Buchstaben .="N";
}
if ($O_gross="true") {
$Buchstaben .="O";
}
if ($P_gross="true") {
$Buchstaben .="P";
}
if ($Q_gross="true") {
$Buchstaben .="Q";
}
if ($R_gross="true") {
$Buchstaben .="R";
}
if ($S_gross="true") {
$Buchstaben .="S";
}
if ($T_gross="true") {
$Buchstaben .="T";
}
if ($U_gross="true") {
$Buchstaben .="U";
}
if ($V_gross="true") {
$Buchstaben .="V";
}
if ($W_gross="true") {
$Buchstaben .="W";
}
if ($X_gross="true") {
$Buchstaben .="X";
}
if ($Y_gross="true") {
$Buchstaben .="Y";
}
if ($Z_gross="true") {
$Buchstaben .="Z";
}

    //-------------------------------



    mt_srand((double)microtime()*1000000);

    for ($i=1; $i <= $laenge; $i++) {
        $newpass .= substr($Buchstaben, mt_rand(0,strlen($Buchstaben)-1), 1);
    }
    
    return $newpass;
} 

echo getpass();

?>


Hiermal an hand von nem Beispiel, einem Passwortgenerator!

Nun würde ich des ganze aber gerne kürzer fassen!? aber wie, schleife?
wie? Kenn mich außerdem noch net so in php aus, erst seit n paar monaten am lernen :-)

Ich hoffe ihr könnt mir helfen! Danke schonmal im Vorraus!!

mfg heino
 
Du kannst Deine Checkboxen so gestalten, dass Du ein Array mit allen markierten übergibst:
HTML:
<input type="checkbox" name="letters[]" value="a">a<br>
<input type="checkbox" name="letters[]" value="b">b<br>
...
Diese lassen sich in einer Schleife mit Hilfe der Funktion [phpf]chr[/phpf] erzeugen.

Dann kannst Du in einer Schleife das erhaltene Array durchlaufen:
PHP:
$buchstaben="";
foreach($_REQUEST['letters'] as $l) {
    $buchstaben.=ord($l);
}

Du kannst übrigends auf ein einzelnes Zeichen eines Strings so zugreifen (ohne [phpf]substr[/phpf]):
PHP:
//Position beginnend bei 0 als erstes Zeichen
$singleLetterOfString=$s{$position};
Gruß hpvw
 
Zurück