Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » PW Überprüfung geht das den?


PW Überprüfung geht das den?
daniel
Grünschnabel

User Pic

Posts: 8
# 19.04.2011 - 01:04:04
    zitieren



Hallo,

ich habe mal eine Frage und zwar gibt es bei anderen CMS-Systemen ja eine Funktionen im Register-Formular wo man Password und Password Wiederholen hat.

Nun meine Frage geht das nicht auch bei Ilch, ich habe es schon mehrfach versucht eine IF-Schleife einzubinden doch ohne erfolg den in der regist.php steht ja drinne $pass = genkey(8); was ja automatisch bei nicht eingabe des Passwortes ein MD5 Hash in die Datenbank pflanzt.

Nun kann man es einbauen das man ein password wiederhohlen feld hat bei der regestration, mich würde nur der php teil interresieren den in der regist.htm habe ich schon ein feld mit "pass2" eingefügt.

Gruß Daniel
Mairu
Administrator

User Pic

Posts: 1908
# 19.04.2011 - 14:06:18
    zitieren



Naja du musst doch nur einbauen, dass die beiden Felder auf Gleichheit geprüft werden

 Php
1:
2:
3:
4:
5:
  if ($_POST['feld1'] == $_POST['feld2']) {
//es kann weiter gehen
} else {
// Fehler ausgeben und nicht weitermachen
}
daniel
Grünschnabel

User Pic

Posts: 8
# 19.04.2011 - 14:28:59
    zitieren



Jo den vergleich habe ich auch hinbekommen nur die stelle an die der vergleich stattfinden muss ist mir leider unklar.

Schuldigung wenn ich dies vergessen haben oben rein zu schreiben, hier einmal der code wie ich es machen würde, schon versucht doch durch diesen platz der if geht es auch ohne die eingabe eines wiederholungs passwortes weiter.

 Php von Datei regist.php
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:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
  <?php
#   Copyright by: Manuel
#   Support: www.ilch.de


defined ('main') or die ( 'no direct access' );

if ( !isset(
$_GET['step']) ) { $_GET['step'] = 1; }

if ( 
$allgAr['forum_regist'] == ) {
  
# user duerfen sich nicht registrieren.
    
$title $allgAr['title'].' :: Users :: Keine registrierung m&ouml;glich';
  
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;glich'.$extented_forum_menu_sufix;
  
$design = new design $title $hmenu1);
  
$design->header();
    
$tpl = new tpl 'user/login' );
    echo 
'<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
    
$tpl->set_out('WDLINK','?'.$allgAr['smodul'],0);
    
$design->footer();
  exit ();
}

switch ( 
$menu->get(2) ) {
  default :
      
$title $allgAr['title'].' :: Users :: Registrieren :: Step 1 von 3';
    
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 1 von 3'.$extented_forum_menu_sufix;
    
$design = new design $title $hmenu);
    
$design->header();
        
$tpl = new tpl 'user/regist' );
        
$tpl->set_out('regeln'bbcode($allgAr['allg_regeln']),0);
        
$design->footer();
      break;
    
    case 
:
    
$name '';
    
$email '';
    
$bday '';
    
$bmonth '';
    
$byear ''

    if (!empty(
$_POST['nutz'])) {
         
$name escape($_POST['nutz'],'string');
    }
    if (!empty(
$_POST['email'])) {
          
$email escape($_POST['email'],'string');
    }
    if (!empty(
$_POST['bday'])) {
          
$bday escape($_POST['bday'],'string');
    }
    if (!empty(
$_POST['bmonth'])) {
          
$bmonth escape($_POST['bmonth'],'string');
    }
    if (!empty(
$_POST['byear'])) {
          
$byear escape($_POST['byear'],'string');
    }
    
    
$ch_name false;
    
$xname escape_nickname($name);
    if (!empty(
$name) AND $xname == $name AND == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
      
$ch_name true;
    }
    if ( empty(
$name) OR empty($email) OR empty($bday) OR empty($bmonth) OR empty($byear) OR $name != $xname OR $ch_name == false ) {
      
$title $allgAr['title'].' :: Users :: Registrieren :: Step 2 von 3';
      
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 2 von 3'.$extented_forum_menu_sufix;
      
$design = new design $title $hmenu1);
        
$design->header();
          if (empty(
$name) OR empty($email)) {
            
$fehler $lang['yourdata'];
          } elseif (
$name != $xname) {
        
$fehler $lang['wrongnickname'];
      } elseif (
$ch_name == false) {
            
$fehler $lang['namealreadyinuse'];
          } elseif (empty(
$bday)) {
        
$fehler "Nicht ausgefuellt";
      } elseif (empty(
$bmonth)) {
        
$fehler "Nicht ausgefuellt";
      } elseif (empty(
$byear)) {
        
$fehler "Nicht ausgefuellt";
      } 
        
          
$tpl = new tpl 'user/regist' );
      
$tpl->set('name'$name);
      
$tpl->set('steamID'$steamID);
      
$tpl->set('email'$email);
      
$tpl->set('bday'$bday);
      
$tpl->set('bmonth'$bmonth);
      
$tpl->set('byear'$byear);
          
$tpl->set_out('FEHLER'$fehler1);        
          if ( 
$allgAr['forum_regist_user_pass'] == ) {
            
$tpl->out(2);
          }
          
$tpl->out(3);
    } else {
    if (
$_POST['pass'] == $_POST['pass2']) {
$fehler "Alles Korekt";
} else {
$fehler "Leider wurde nicht alles ausgefuellt";

          
$pass genkey(8);
      if (!empty(
$_POST['pass'])) {
        
$pass escape($_POST['pass'], 'string');
      }      
      
user_regist ($name,$email,$pass,$bday,$bmonth,$byear);
    
      
$tpl = new tpl ('user/regist' );
          
$title $allgAr['title'].' :: Users :: Registrieren :: Step 3 von 3';
      
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 3 von 3'.$extented_forum_menu_sufix;
      
$design = new design $title $hmenu1);
          
$design->header();
          
$tpl->set_out 'NAME'$name);;
    }
        
$design->footer();
      break;
}
?>


In die Datenbank brauche ich ja nicht ein 2tes pass2 anlegen oder?
Sorry schon bissle erfahrung aber nicht so viel wenn es um MD5 und so sachen geht ^^

Mit stolzen grüßen ;-)
Mairu
Administrator

User Pic

Posts: 1908
# 19.04.2011 - 17:32:39
    zitieren



 Php
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:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
  <?php
#   Copyright by: Manuel
#   Support: www.ilch.de


defined ('main') or die ( 'no direct access' );

if ( !isset(
$_GET['step']) ) { $_GET['step'] = 1; }

if ( 
$allgAr['forum_regist'] == ) {
  
# user duerfen sich nicht registrieren.
    
$title $allgAr['title'].' :: Users :: Keine registrierung m&ouml;glich';
  
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;glich'.$extented_forum_menu_sufix;
  
$design = new design $title $hmenu1);
  
$design->header();
    
$tpl = new tpl 'user/login' );
    echo 
'<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
    
$tpl->set_out('WDLINK','?'.$allgAr['smodul'],0);
    
$design->footer();
  exit ();
}

switch ( 
$menu->get(2) ) {
  default :
      
$title $allgAr['title'].' :: Users :: Registrieren :: Step 1 von 3';
    
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 1 von 3'.$extented_forum_menu_sufix;
    
$design = new design $title $hmenu);
    
$design->header();
        
$tpl = new tpl 'user/regist' );
        
$tpl->set_out('regeln'bbcode($allgAr['allg_regeln']),0);
        
$design->footer();
      break;
    
    case 
:
    
$name '';
    
$email '';
    
$bday '';
    
$bmonth '';
    
$byear ''

    if (!empty(
$_POST['nutz'])) {
         
$name escape($_POST['nutz'],'string');
    }
    if (!empty(
$_POST['email'])) {
          
$email escape($_POST['email'],'string');
    }
    if (!empty(
$_POST['bday'])) {
          
$bday escape($_POST['bday'],'string');
    }
    if (!empty(
$_POST['bmonth'])) {
          
$bmonth escape($_POST['bmonth'],'string');
    }
    if (!empty(
$_POST['byear'])) {
          
$byear escape($_POST['byear'],'string');
    }
    
    
$samePasswords $_POST['pass'] == $_POST['pass2'];
    
    
$ch_name false;
    
$xname escape_nickname($name);
    if (!empty(
$name) AND $xname == $name AND == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
      
$ch_name true;
    }
    if ( empty(
$name) OR empty($email) OR empty($bday) OR empty($bmonth) OR empty($byear) OR $name != $xname OR $ch_name == false or !$samePasswords) {
      
$title $allgAr['title'].' :: Users :: Registrieren :: Step 2 von 3';
      
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 2 von 3'.$extented_forum_menu_sufix;
      
$design = new design $title $hmenu1);
        
$design->header();
          if (empty(
$name) OR empty($email)) {
            
$fehler $lang['yourdata'];
          } elseif (
$name != $xname) {
        
$fehler $lang['wrongnickname'];
      } elseif (
$ch_name == false) {
            
$fehler $lang['namealreadyinuse'];
      } elseif (empty(
$bday) or empty($bmonth) or empty($byear)) {
        
$fehler "Nicht ausgefuellt";
      } elseif (!
$samePasswords) {
        
$fehler "Passwörter nicht identisch";
      }
        
          
$tpl = new tpl 'user/regist' );
      
$tpl->set('name'$name);
      
$tpl->set('steamID'$steamID);
      
$tpl->set('email'$email);
      
$tpl->set('bday'$bday);
      
$tpl->set('bmonth'$bmonth);
      
$tpl->set('byear'$byear);
          
$tpl->set_out('FEHLER'$fehler1);        
          if ( 
$allgAr['forum_regist_user_pass'] == ) {
            
$tpl->out(2);
          }
          
$tpl->out(3);
    } else {

          
$pass genkey(8);
      if (!empty(
$_POST['pass'])) {
        
$pass escape($_POST['pass'], 'string');
      }      
      
user_regist ($name,$email,$pass,$bday,$bmonth,$byear);
    
      
$tpl = new tpl ('user/regist' );
          
$title $allgAr['title'].' :: Users :: Registrieren :: Step 3 von 3';
      
$hmenu  $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 3 von 3'.$extented_forum_menu_sufix;
      
$design = new design $title $hmenu1);
          
$design->header();
          
$tpl->set_out 'NAME'$name);;
    }
        
$design->footer();
      break;
}
?>


Naja eigentlich hat das nichts mit MD5 zu tun, naja ich hoffe ich habs ohne Fehler geschafft.
daniel
Grünschnabel

User Pic

Posts: 8
# 19.04.2011 - 18:33:03
    zitieren



Hey,

Ja hat geklappt, habe eine sache übersehen gehabt nun gut es geht,
die frage jetz könnte man noch ein feld hinzufügen wo der fehler steht sprich wo steht was man nicht korrekt ausgefüllt hat?

Das wäre echt klasse den zurzeit geht es einfach zurück und zeigt aber nirgends an was falsch war.

Super danke schonmal ;-)


Zuletzt modifiziert von daniel am 19.04.2011 - 18:36:04
Riou
Gast

User Pic

# 20.04.2011 - 19:11:54
    zitieren



Normal sollte das angezeigt werden:

Passwörter nicht identisch
Riou
Gast

User Pic

# 20.04.2011 - 19:24:06
    zitieren



Aso könntest du mal sagen was du an der datei alles verändert hast? ich habe eine andere regist.php und habe einfach zeile 57 und zeile 77-78 kopiert. Allerdings vergleicht er nicht die passwörter. hast du noch mehr geändert?
daniel
Gast

User Pic

# 20.04.2011 - 20:01:27
    zitieren



Hey Riou,

zu deiner Frage du musst natürlich in der regist.htm ein input feld haben das den
<input type="password" name="pass"> hat z.b. kannst es von name aber auch anders nennen wichtig ist einfach nur das der name in der php datei wieder zu finden ist.

dann öffnest du die regist.php

dort musst du neu einfügen:

 Php von Datei regist.php
1:
2:
3:
4:
5:
  <?php

$samePasswords 
$_POST['pass'] == $_POST['pass2'];

?>


unter die if abfragen siehst du ja im vorherigen beispiel schon.
so als nächstes dann das die abfrage überhaupt erst gilt den es ist ja so es wird vorher schon abgefragt bevor er den eintrag in die Datenbank macht.

Beispiel unten wieder Zeile 64 bei dir dann andere Zeile mit selben inhalt aber muss das:
or !$samePasswords hinzugefügt werden.

So weiter muss man nichts einstellen bzw habe ich auch nichts gemacht.

P.S hoffe das meine vorherige frage noch beantwortet wird ^^ den das wäre gut wie gesagt bekomme keine fehlermeldungen angezeigt ob was fehlt oder so... wenn ja könnte ich auch einen speziellen platz auswählen wohin das müsste.?

Gruß daniel
Riou
Gast

User Pic

# 20.04.2011 - 20:45:03
    zitieren



also bei mir wird eine fehlermeldung über den eingabe feldern angezeigt. vielleicht übersiehst du sie nur Lachen Mach sie doch mal rot oder so.

Danke für die Hilfe übrigens. hatte nicht gesehen das es da noch weiter geht Lachen
daniel
Grünschnabel

User Pic

Posts: 8
# 20.04.2011 - 21:20:52
    zitieren



Nein übersehen nicht,

habe jetz nochmal nachgeschaut aber weitehin wird es leer angezeigt. :-(

Gibt es eine andere möglichkeit eine bestätigung einzugeben mehr eine frage dann auch an alle anderen zum beispiel bei richtigem passwort eingeben das dort dahinter wenn es überein stimmt auch ein gründer pfeil ist oder so bzw. haken das wäre auch geil.

Das alte problem mit der Fehlermeldung besteht aber weiterhin pls help.
daniel
Grünschnabel

User Pic

Posts: 8
# 21.04.2011 - 09:54:26
    zitieren



Hey,

wollte nochmal nachfragen ob jemand eine idee hat Mairu kannst du da weiterhelfen?

Gruß
Mairu
Administrator

User Pic

Posts: 1908
# 22.04.2011 - 14:29:40
    zitieren



Also eigentlich sollte der Fehler ausgegeben werden, hatte das so in den Text geschrieben, keine Ahnung warum es bei dir nicht geht, vielleicht hast du die Fehlerausgabe generell irgendwie raus genommen, wenn auch unabsichtlich.

Ist {FEHLER} bei dir im Template drin?


Zuletzt modifiziert von Mairu am 22.04.2011 - 14:30:23
daniel
Grünschnabel

User Pic

Posts: 8
# 22.04.2011 - 15:56:54
    zitieren



Jo,

anscheind ist dies auch passiert ich trottel. Nungut zu der anderen sache ist es möglich,wenn ja wie das wenn man das passowort schon identisch eingegeben hat das das feld sich grün färbt oder ein gründer pfeil dahinter erscheint.

Das wäre noch eine richtig klasse sache wüsste nur nicht wie man das umsetzen sollte noch nie gemacht :-(

Gruß
Riou
Gast

User Pic

# 22.04.2011 - 16:35:46
    zitieren



Kleine Therorie:

Du musst das feld schon bei der eingabe überprüfen und nicht erst nach dem absenden.
daniel
Grünschnabel

User Pic

Posts: 8
# 22.04.2011 - 23:18:53
    zitieren



Danke Riou darauf wäre ich jetz echt nicht gekommen -.-

Wie du anhand des PhP Codes erkennen kannst wird das Password bereits vor dem eintrag in die DB überprüft sonst würde er gar nicht wissen ob es übereinstimmt...
Ich möchte ja das das eingabe feld so farblich mit einem rahmen oder so gekennzeichnet wird das man auch weiß das es übereinstimmt aber mir fällt nicht ein wie.

Nein Die Frage war ja wie ich es in PHP umsetzen kann eine Tehorie brauche ich dazu nicht.


Gruß
Riou
Gast

User Pic

# 23.04.2011 - 00:31:20
    zitieren



Ich dachte du wärst dann mit dem kleinen tipp selber drauf gekommen. hätte ja sein können. Ich weiß nicht wie man das mit PHP macht aber vielleicht mal nach einer live abfrage googlen. Mairu ist an feiertagen immer schlecht zu ereichen Smilie
Mairu
Administrator

User Pic

Posts: 1908
# 23.04.2011 - 22:30:57
    zitieren



^^ Naja also solche Abfragen im Browser muss man mit Javascript machen, es gibt dafür dann meist auch schon fertige Pakete oder Frameworks, die einem die Arbeit erleichtern.

Man könnte dem onsubmit Event des Formulars eine Funktion zuweisen, die die Passwörter überprüft, wenn es direkt nach der Eingabe geprüft werden soll, dann mit onchange der Passwortfelder.
daniel
Grünschnabel

User Pic

Posts: 8
# 23.04.2011 - 23:00:33
    zitieren



Das mit dem onsubmit Event, sowas in der art meinte ich auch das sich das feld verfärbt.

Wie würde das gehen?
Könntest du mir den Code einmal reinposte.