You are not logged in.

wcf.regNote.message

Mirak

Beginner

  • "Mirak" started this thread

Posts: 30

  • Send private message

1

Sunday, July 3rd 2005, 11:40am

Register-Script soll überprüfen ob es User schon gibt...

Hi, also ich habe ein kleines Script gebaut mit Register, Login (PW per md5 verschlüsselt) und Session. "Passwort veregessen" wurde noch nicht eingebaut wie auch Fomular-Überprüf-Funktion und Glückwunsch-Seiten.

Nun will ich, das wenn man sich das überprüft wird ob er User schon expistert.

Hier mein Code:

register.php (ist ka klar die Datei)

PHP Source code

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
<html>
 <head>
 <title>Register Seite</title>
 </head>
  <body>
  <form name="form1" method="post" action="checkregister.php">
  <table width="248" border="1">
    <tr>
      <td width="88">Benutzername:</td>
      <td width="144"><input type="text" name="username"></td>
    </tr>
    <tr>
      <td>Passwort:</td>
      <td><input type="password" name="passwort"></td>
    </tr>
    <tr>
      <td>eMail:</td>
      <td><input type="text" name="email"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
        <input type="submit" name="Submit" value="Regestrieren">
      </div></td>
    </tr>
  </table>
  </form>
  </body>
</html>


checkregister.php

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
 <head>
 <title>Register Seite</title>
 </head>
  <body>
  <?
  $connect mysql_connect(localhost, ***, ***);
  mysql_select_db(usr_web208_1);
  $HTTP_POST_VARS["username"] = "$username";
  $HTTP_POST_VARS["password"] = "$password";
  $HTTP_POST_VARS["email"] = "$email";
  $password md5$password );  
  $query mysql_query("INSERT INTO `register` (`username`,`password`,`email`) VALUES ('$username','$password','$email')");
  echo mysql_error();
  ?>
  </body>
</html>


Link dazu: http://www.clan-tcp.de/php/

Ich würde es so machen:

Neue checkregister.php

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
 <head>
 <title>Register Seite</title>
 </head>
  <body>
  <?
  $connect mysql_connect(localhost, ***, ***);
  mysql_select_db(usr_web208_1);
  $HTTP_POST_VARS["username"] = "$username";
  $HTTP_POST_VARS["password"] = "$password";
  $HTTP_POST_VARS["email"] = "$email";
  $password md5$password );  
  $zeile mysql_fetch_array($query))
  $query mysql_query("SELECT * FROM `register` ORDER BY id DESC"); 
  if($username == ".$zeile['username'].") {
  echo "Bitte andere Username";
  { else {  
  $query mysql_query("INSERT INTO `register` (`username`,`password`,`email`) VALUES ('$username','$password','$email')");
  echo mysql_error();
  };
  ?>
  </body>
</html>


Aber das will nicht also würde mich über Hilfe freuen... danke

This post has been edited 1 times, last edit by "Mirak" (Jul 3rd 2005, 11:41am)


Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Sunday, July 3rd 2005, 11:53am

das dein skript nicht tut liegt daran das du folgende zeilen vertauschen musst.

PHP Source code

1
2
$zeile mysql_fetch_array($query))
  $query mysql_query("SELECT * FROM `register` ORDER BY id DESC");

so wie du das gemacht hast zerlegst du zuerst das array (welches zu dem zeitpunkt leer ist) und machst danach nen select auf der tabelle.

ich würde dir aber vorschlagen direkt zu schauen ob es den username gibt und wenn nicht dann anlegen und wenn ja dann fehlermeldung. ich zeig dir kurz wie ich das meine.

PHP Source code

1
2
3
4
5
6
$query mysql_query("SELECT * FROM 'register' WHERE username = '$username'");
if (mysql_fetch_array($query)) {
echo "Bitte andere Username";
} else {
$query mysql_query("INSERT INTO `register` (`username`,`password`,`email`) VALUES ('$username','$password','$email')");
}

so holst du dir nur einen datensatz auf der db und nicht die kompletten user auf einmal. spart zeit wenn du mal millionen von usern hast ;)
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Mirak

Beginner

  • "Mirak" started this thread

Posts: 30

  • Send private message

3

Sunday, July 3rd 2005, 1:56pm

Danke, das werde ich mal ausprobieren ^^ aber erst mal geht es jetzt baden. Schreibe heute Nachmittag ob es geklappt hat und danke :P

*wünsch das Millionen von Usern bekomm*

Mirak

Beginner

  • "Mirak" started this thread

Posts: 30

  • Send private message

4

Monday, July 4th 2005, 11:05am

Will irgendwie nicht

checkregister.php

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
 <head>
 <title>Register Seite</title>
 </head>
  <body>
  <?
  $connect mysql_connect(localhost, ***, ***);
  mysql_select_db(usr_web208_1);
  $HTTP_POST_VARS["username"] = "$username";
  $HTTP_POST_VARS["password"] = "$password";
  $HTTP_POST_VARS["email"] = "$email";
  $password md5$password );  
  $query mysql_query("SELECT * FROM 'register' WHERE username = '$username'");
  if(mysql_fetch_array($query)) {
  echo "Bitte andere Username";
  } else {
  $query mysql_query("INSERT INTO `register` (`username`,`password`,`email`) VALUES ('$username','$password','$email')");
  };
  ?>
  </body>
</html>


Und ich hätte noch gerne, das register.php und checkregister.php eine Datei sind...

This post has been edited 1 times, last edit by "Mirak" (Jul 4th 2005, 11:05am)


Prometheus

Administrator

Posts: 3,278

  • Send private message

5

Monday, July 4th 2005, 2:19pm

ich sortier dir das checkregister erst mal...

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
 <head>
 <title>Register Seite</title>
 </head>
  <body>
  <?
  $connect mysql_connect(localhost, ***, ***);
  mysql_select_db(usr_web208_1);
  $username $HTTP_POST_VARS['username'];
  $password $HTTP_POST_VARS['password'];
  $email $HTTP_POST_VARS['email'];
  $password md5$password );  
  $query mysql_query("SELECT * FROM 'register' WHERE username = '$username'");
  if(mysql_fetch_array($query)) {
  echo "Bitte andere Username";
  } else {
  $query mysql_query("INSERT INTO `register` (`username`,`password`,`email`) VALUES ('$username','$password','$email')");
  };
  ?>
  </body>
</html>


so is besser erst mal. nen fehler dürftest du allerdings nicht bekommen haben wenn dann hat nur die if prüfung grundsätzlich nen neuen eintrag hervor gerufen da die variable username immer leer war denke ich.

das ganze nun in eine daten kannst du machen indem du beide teile innerhalb des body-tag in einen kopierst und da ne if abfrage drum machst

PHP Source code

1
2
3
4
5
if (!$send) {
teil aus register
} else {
teil aus registercheck
}

und direkt unter deinen einleitenden tag für das form machst du ne zeile rein <input type="hidden" name="send" value="true"> damit beim absenden die variable send gesetzt ist und dein skript so gesehen weiß das jetzt der andere teil benötigt wird.

um das ganze noch zu verbessern solltest du mit addslashes und stripslashes arbeiten beim insert in die db falls jemand sonderzeichen nutzt damit dir richtig escaped sind.

außerdem könntest du noch ans ende des checkregister teiles ein location ... setzen damit nach dem registrieren wieder die hauptseite aufgerufen wird.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

wcf.user.socialbookmarks.titel