Für mich unerklärbare Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anschreiben
anweisung
beispiel
buchstabe
code
dank
entsprechen
falle
forum
generierte passwort
klammer vergessen
klammern
langen passwort
rand
rein code
string
weg
zahl
zeile
zufallsgenerator
-
Ich habe mich heute hingesetzt und einen Passwort-Zufallsgenerator geschrieben. Leider funktioniert dieser nicht. Es kommt die Fahlermeldung, dass in Zeile 3 ein unerwarteter \';\' ist. Dort ist aber nur eine normale Wertzuweisung einer Variable. Könnt ihr mir sagen, woran das liegt, oder bin ich nur wieder mal blind?
<?php if(issest($_POST[\'laenge\'] { $x = $_POST[\'laenge\']; $y = 1; while ($y <= $x) { $zahlbuchstabe = rand(1,3); $grosklein = rand(1,2); if($zahlbuchstabe==1) { $dazu = rand(0,9); } else { $dazu = rand(1,26); if $grosklein==1 { if $dazu==1 { $dazu = q; } if $dazu==2 { $dazu = w; } if $dazu==3 { $dazu = e; } if $dazu==4 { $dazu = r; } if $dazu==5 { $dazu = t; } if $dazu==6 { $dazu = z; } if $dazu==7 { $dazu = u; } if $dazu==8 { $dazu = i; } if $dazu==9 { $dazu = o; } if $dazu==10 { $dazu = p; } if $dazu==11 { $dazu = a; } if $dazu==12 { $dazu = s; } if $dazu==13 { $dazu = d; } if $dazu==14 { $dazu = f; } if $dazu==15 { $dazu = g; } if $dazu==16 { $dazu = h; } if $dazu==17 { $dazu = j; } if $dazu==18 { $dazu = k; } if $dazu==19 { $dazu = l; } if $dazu==20 { $dazu = y; } if $dazu==21 { $dazu = x; } if $dazu==22 { $dazu = c; } if $dazu==23 { $dazu = v; } if $dazu==24 { $dazu = b; } if $dazu==25 { $dazu = n; } if $dazu==26 { $dazu = m; } } else { if $dazu==1 { $dazu = Q; } if $dazu==2 { $dazu = W; } if $dazu==3 { $dazu = E; } if $dazu==4 { $dazu = R; } if $dazu==5 { $dazu = T; } if $dazu==6 { $dazu = Z; } if $dazu==7 { $dazu = U; } if $dazu==8 { $dazu = I; } if $dazu==9 { $dazu = O; } if $dazu==10 { $dazu = P; } if $dazu==11 { $dazu = A; } if $dazu==12 { $dazu = S; } if $dazu==13 { $dazu = D; } if $dazu==14 { $dazu = F; } if $dazu==15 { $dazu = G; } if $dazu==16 { $dazu = H; } if $dazu==17 { $dazu = J; } if $dazu==18 { $dazu = K; } if $dazu==19 { $dazu = L; } if $dazu==20 { $dazu = Y; } if $dazu==21 { $dazu = X; } if $dazu==22 { $dazu = C; } if $dazu==23 { $dazu = V; } if $dazu==24 { $dazu = B; } if $dazu==25 { $dazu = N; } if $dazu==26 { $dazu = M; } } } $y++; } echo \"Das generierte Passwort lautet: \".$pass.\"<br />\\n\"; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mach in Zeile 2 vor { noch 2 Klammern zu, also Zeile 2 sollte so aussehen:
if(issest($_POST[\'laenge\'])) { -
Danke, ich habe nur eine Klammer vergessen. Aber im Forum wird ja nicht jede Code-Zeile korrekt angezeigt. Zum beispiel Zeile 183 in meinem Code, dabei habe ich ihn direkt reinkopiert.
-
Ehm, das ganze kann man auch wesentlich kürzer schreiben.
function pw ($pLenght = 8) { $chars = \'abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ0123456789\'; $pw = \'\'; for ($i = 1; $i <= $pLenght; $i++) { $pw .= $chars[rand (0, strlen($chars))]; // bei einem sehr langen Passwort sollte \"strlen ($chars)\" für die Performance ausgelagert werden } return ($pw); }
-
Ich hab jetzt alle Fehler verbessert (waren noch mehr) und den Code zu Ende geschrieben. Der Code lautet:
<?php if(isset($_POST[\'laenge\'])) { $x = $_POST[\'laenge\']; $y = 1; while ($y <= $x) { $zahlbuchstabe = rand(1,3); $grosklein = rand(1,2); if($zahlbuchstabe==1) { $dazu = rand(0,9); } else { $dazu = rand(1,26); if ($grosklein==1) { if ($dazu==1) { $dazu = q; } if ($dazu==2) { $dazu = w; } if ($dazu==3) { $dazu = e; } if ($dazu==4) { $dazu = r; } if ($dazu==5) { $dazu = t; } if ($dazu==6) { $dazu = z; } if ($dazu==7) { $dazu = u; } if ($dazu==8) { $dazu = i; } if ($dazu==9) { $dazu = o; } if ($dazu==10) { $dazu = p; } if ($dazu==11) { $dazu = a; } if ($dazu==12) { $dazu = s; } if ($dazu==13) { $dazu = d; } if ($dazu==14) { $dazu = f; } if ($dazu==15) { $dazu = g; } if ($dazu==16) { $dazu = h; } if ($dazu==17) { $dazu = j; } if ($dazu==18) { $dazu = k; } if ($dazu==19) { $dazu = l; } if ($dazu==20) { $dazu = y; } if ($dazu==21) { $dazu = x; } if ($dazu==22) { $dazu = c; } if ($dazu==23) { $dazu = v; } if ($dazu==24) { $dazu = b; } if ($dazu==25) { $dazu = n; } if ($dazu==26) { $dazu = m; } } else { if ($dazu==1) { $dazu = Q; } if ($dazu==2) { $dazu = W; } if ($dazu==3) { $dazu = E; } if ($dazu==4) { $dazu = R; } if ($dazu==5) { $dazu = T; } if ($dazu==6) { $dazu = Z; } if ($dazu==7) { $dazu = U; } if ($dazu==8) { $dazu = I; } if ($dazu==9) { $dazu = O; } if ($dazu==10) { $dazu = P; } if ($dazu==11) { $dazu = A; } if ($dazu==12) { $dazu = S; } if ($dazu==13) { $dazu = D; } if ($dazu==14) { $dazu = F; } if ($dazu==15) { $dazu = G; } if ($dazu==16) { $dazu = H; } if ($dazu==17) { $dazu = J; } if ($dazu==18) { $dazu = K; } if ($dazu==19) { $dazu = L; } if ($dazu==20) { $dazu = Y; } if ($dazu==21) { $dazu = X; } if ($dazu==22) { $dazu = C; } if ($dazu==23) { $dazu = V; } if ($dazu==24) { $dazu = B; } if ($dazu==25) { $dazu = N; } if ($dazu==26) { $dazu = M; } } } $y++; if(!isset($pass)) { $pass = $dazu; } else { $qw = $pass; $pass = $qw.$dazu; } } echo \"Das generierte Passwort lautet: \".$pass.\"<br />\\n\"; } ?>
Wie geasagt, hier im Forum wird der Code irgendwie nicht korrekt angezeigt. Wenn das jemand braucht, dann bitte per PN anschreiben. -
ryanblack schrieb:
Ähm... Strings kommen in solche Gänsefüschen rein:
$dazu = \\\'q\\\'; $dazu = \\\'w\\\'; // usw...
Ryan
in dem Fall sinds sogar nur Chars => \'q\' ...
Allerdings glaub ich ja fast, dass diese durchs Forum gefiltert wurden, oder?
Beitrag geändert: 12.7.2008 18:20:50 von pointi -
Der Unterschied zwischen \' und \" ist in PHP anders als in C!!
\" -> alle Variablen(alles was mit $) werden durch ihre Werte ersetzte, \\n, \\r & Co durch die entsprechen Anweisungen
\' -> der String ist so wie er eingegeben wurde, Variablen werden nicht eingesetzt und \\n & Co. bleiben unverändert als \\n erhalten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage