php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.08.2007, 13:10  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard regExp macht faxen

Hallo,

ich schreibe gerade ein kleines Registrierungsformular für einen Chat.

Dabei wollte ich so eine Sicherheitsanzeige reinbasteln, welche zwar funktioniert, aber total fehlerhaft.. xD

JS function
PHP-Code:
function setLevel()
{
  var 
zahlen_regexp = /[a-z][0-9]{1,}/i;
  var 
zahlen_regexp2 = /[a-z][0-9]{2,}/i;
 
  if (
document.getElementById('password').value.length >= && zahlen_regexp.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-2.gif';
  }
  else  if (
document.getElementById('password').value.length >= && zahlen_regexp2.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-2.gif';
  } 
  else if (
document.getElementById('password').value.length >= 4)
  {
    
document.getElementById('level').src 'images/level-1.gif';
  }

html:

PHP-Code:
<tr>
          <
td><b>Passwort:</b></td>
          <
td><input type="password" name="password" size="30" maxlength="40" id="password"  onKeyPress="setLevel();" /></td>
        </
tr>
        <
tr>
          <
td>Sicherheitsstufe:</td>
          <
td><img src="http://www.php.de/forum/images/level-0.gif" id="level" /></td>
        </
tr
södele, was ich möchte ist:

Wenn man ´5 buchstaben eingegeben hat, soll es im img tag level-1.gif angezeigt werden.
Wen man 5 buchstaben und 2 zahlen eingegeben hat, soll im img tag level-2.gif stehen.
wenn man 5 buchstaben und 3 zahlen eingegeben hat, soll im img tag level-3.gif stehen...

Bei mir ist aber so, dass das bild aufeinmal von 3 zu 2 wieder wechselt obwohl ich ein noch sichereres passwort eingetippt habe..

Vielen Dank


edit: Kaum hat man geschrieben, so findet man den Fehler...

PHP-Code:
function setLevel()
{
  var 
zahlen_regexp = /[a-z][0-9]{2,}/i;
  var 
zahlen_regexp2 = /[a-z][0-9]{1,}/i;
  
  if (
document.getElementById('password').value.length >= && zahlen_regexp.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-3.gif';
  }
  else  if (
document.getElementById('password').value.length >= && zahlen_regexp2.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-2.gif';
  } 
  else if (
document.getElementById('password').value.length >= 4)
  {
    
document.getElementById('level').src 'images/level-1.gif';
  }

Mein jetziges Problem ist, wenn man das passwort aus dem feld wieder rauslöscht, aber man davor ein ganz sicheres passwort eingetippt hat, so bleibt das bild vom ganz sicheren passwort.. Ich kann mir nicht erklären warum, denn beim OnKeyPress ist ja auch die backspace taste dabei, somit sollte er beim löschen auch prüfen... hmmm

Wäre sehr dankbar für hilfe.


Ambience
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

Geändert von Ambience (21.08.2007 um 13:16 Uhr).
Ambience ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.08.2007, 13:20  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Mach mal ^ an den Anfang der RegExps und $ an den Schluss!


Und wenn ich das richtig verstanden habe, stimmt dann das >= 4 auch nicht! Denn du willst ja 5 Buchstaben + mindestens 1 Zahl. Das sind dann schon 6 Zeichen! Mit >= 4 werden auch nur 4 Buchstaben zugelassen oder im ersten if 3 Buchstaben und eine Zahl oder 2 Buchstaben und 2 Zahlen!

Und wenn du im 1. Fall 5 Buchstaben und nur eine einzige Zahl willst, macht {1} viel mehr sinn als {1,}! Ein wunder, dass du überhaupt in den zweiten Fall kommst!

Desweitern hast du da zweimal das Bild mit der Zahl 2! Sollte wahrscheinlich beim zweiten Fall eine 3 sein oder?!
Montellese ist offline   Mit Zitat antworten
Alt 21.08.2007, 13:32  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard

also mein script sieht nun so aus.. funktioniert auch fast richtig...
Wie gesagt, er stellt nur nicht die bilder beim löschen wieder um.... sonst funktioniert es... weiß auch net warum ich das >= 4 nehmen muss aufjedenfall geht es so, wenn ich >= 5 mache, muss ich 6 zeichen eingeben. oO
Wie gesagt er muss nurnoch die bilder wieder umstellen... das ^und $ brauch ich auhc nicht, da die zahlen an beliebiger stelle stehen können bzw. die buchstaben
PHP-Code:
function setLevel()
{
  var 
zahlen_regexp = /[a-z]{4,}[0-9]{2,}/i;
  var 
zahlen_regexp2 = /[a-z]{4,}[0-9]{1,}/i;
  
  if (
document.getElementById('password').value.length >= && zahlen_regexp.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-3.gif';
  }
  else  if (
document.getElementById('password').value.length >= && zahlen_regexp2.test(document.getElementById('password').value))
  {
    
document.getElementById('level').src 'images/level-2.gif';
  } 
  else if (
document.getElementById('password').value.length >= 4)
  {
    
document.getElementById('level').src 'images/level-1.gif';
  }
  else
  {
    
document.getElementById('level').src 'images/level-0.gif';
  }

Ambience
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.
Ambience ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
faxen mit php über z.B. voip Soese PHP Tipps 2008 4 06.12.2007 11:20
regexp Timo Trallala PHP Tipps 2006 3 05.09.2006 12:40
Regexp Tags matchen cytrobic PHP Tipps 2006 15 21.07.2006 19:47
[Erledigt] REGEXP und Collations Datenbanken 2 14.03.2006 14:22
regexp in db-abfrage? Ministry Datenbanken 4 09.03.2006 19:13
Hilfe: REGEXP in MySQL Datenbanken 1 16.09.2005 12:58
Faxen per PHP Soese PHP Tipps 2005-2 3 17.08.2005 06:06
RegExp Strasse und Nummer PHP Tipps 2005-2 0 06.07.2005 17:05
Bräuchte hilfe bei einem Regexp Chr!s PHP Tipps 2005 1 27.01.2005 16:39
RegExp macht nicht, was er soll. DutziMan PHP-Fortgeschrittene 1 20.09.2004 08:26
RegExp Sammlung Off-Topic Diskussionen 4 09.09.2004 18:12
[Erledigt] Komlexe RegExp PHP-Fortgeschrittene 3 08.09.2004 22:40
Mysql - REGEXP Datenbanken 7 19.08.2004 09:21
[Erledigt] Abfrage mit REGEXP Datenbanken 4 01.07.2004 12:08
regulaere ausdruecke in einem MySQL befehl mit REGEXP Datenbanken 3 16.06.2004 23:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
passwort mindestens eine zahl ein buchstabe javascript, ajax getelementbyid regexp, regexp 4buchstaben, php html regex id getelementbyid

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum