Förbättrad registrering till maltes inloggning

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#379631
Inlägg Skrivet: 2006-05-18 18:15      Ämne: Förbättrad registrering till maltes inloggning Citera

Här kommer min lite förbättrade registering, krävs dock annan databas upplag som jag kommer att lägga till lite senare!

Först så gör vi en tabell (har inte testat strukturen om den inte fungerar så säg gärna till):

KOD:
1:
 
2:
create table members (
3:
id int(11) NOT NULL AUTO_INCREMENT,
4:
PRIMARY KEY(id),
5:
user varchar(30) NOT NULL,
6:
pass varchar(32) NOT NULL,
7:
name varchar(50) NOT NULL,
8:
email varchar(50) NOT NULL,
9:
registrerad date NOT NULL default '0000-00-00',
10:
aktiv enum('0', '1') NOT NULL default '0',
11:
MF enum('M', 'F'),
12:
age date NOT NULL default '0000-00-00',
13:
urlbild varchar(30),
14:
aktiv_tid datetime NOT NULL default '0000-00-00 00:00:00',
15:
mcounter int(10) NOT NULL default '0',
16:
egeninfo text,
17:
LEVEL enum('0', '1', '2', '3', '4', '5') default '0'
18:
) TYPE=MyISAM;




Nästa steg är att göra en fil som heter registrer.php
KOD:
1:
 
2:
<?php
3:
session_start(); // Alltid överst på sidan
4:
 
5:
include "conn.php"; // Databasanslutningen
6:
 
7:
if (isset($_POST['submit'])){
8:
 
9:
  $_POST = db_escape($_POST);
10:
 
11:
  // Tag bort eventuella blanksteg i början eller slutet
12:
  foreach($_POST as $key => $val){
13:
    $_POST[$key] = trim($val);
14:
  }
15:
 
16:
  //Kolla efter tomma fält
17:
  if (empty($_POST['user']) || empty($_POST['passwd']) ||
18:
      empty($_POST['name']) || empty($_POST['email']) || empty($_POST['age'])) {
19:
    $reg_error[] = 0;
20:
  }
21:
 
22:
  // Kolla om användarnamnet är upptaget
23:
  $sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['user']}'";
24:
  $result = mysql_query($sql);
25:
  if (mysql_result($result, 0) > 0) {
26:
    $reg_error[] = 1;
27:
  }
28:
 
29:
  // Kolla om e-post kan tänkas vara ok
30:
  if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $_POST['email'])) {
31:
    $reg_error[] = 2;   
32:
  }
33:
 
34:
  // Kolla så att lösenorden stämmer överrens
35:
  if ($_POST['passwd'] != $_POST['passwd2']) {
36:
    $reg_error[] = 3;
37:
  }
38:
 
39:
  if (!preg_match('/^[0-9]+[-][0-9]+[-][0-9]/', $_POST['age'])) {
40:
    $reg_error[] = 4;
41:
  }
42:
  // Inga fel? Spara och logga in samt skicka till välkomstsida
43:
  if (!isset($reg_error)) {
44:
  $date = date("Y-m-d");
45:
  $pass = md5($_POST['passwd']);
46:
 
47:
    $sql = "INSERT INTO members(user, pass, name, email, registrerad, MF, age)
48:
            VALUES('{$_POST['user']}', '{$pass}', '{$_POST['name']}', '{$_POST['email']}', '{$date}', '{$_POST['MF']}', '{$_POST['age']}')";
49:
    mysql_query($sql);
50:
   
51:
    $_SESSION['sess_id'] = mysql_insert_id();
52:
    $_SESSION['sess_user'] = $_POST['user'];
53:
    header("Location: welcome.php");
54:
    exit;     
55:
 
56:
  }
57:
 
58:
} else {
59:
 
60:
  // Sätt variabler för tomt formulär
61:
  for ($i=0; $i<4; $i++) {
62:
    $back[$i] = "";
63:
  }
64:
 
65:
}
66:
 
67:
$error_list[0] = "Alla fält är inte infyllda";
68:
$error_list[1] = "Användarnamnet är upptaget";
69:
$error_list[2] = "Felaktig e-postadress";
70:
$error_list[3] = "Lösenorden stämmer inte överrens";
71:
$error_list[4] = "Födelsedatumet är inkorrekt";
72:
 
73:
?>
74:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
75:
<html>
76:
<head>
77:
<meta http-equiv="Content-Type"
78:
  content="text/html; charset=iso-8859-1">
79:
<title>Registrera dig</title>
80:
</head>
81:
<body>
82:
<h3>Registrera dig</h3>
83:
<?php
84:
if (isset($reg_error)){
85:
 
86:
  echo "Något blev fel:<br>\n";
87:
  echo "<ul>\n";
88:
  for ($i=0; $i<sizeof($reg_error); $i++) {
89:
    echo "<li>{$error_list[$reg_error[$i]]}</li>\n";
90:
  }
91:
  echo "</ul>\n";
92:
 
93:
  $back[0] = stripslashes($_POST['user']);
94:
  $back[2] = stripslashes($_POST['name']);
95:
  $back[3] = stripslashes($_POST['email']);
96:
  $back[4] = stripslashes($_POST['age']);
97:
 
98:
}
99:
?>
100:
<form action="register.php" method="post">
101:
<table cellspacing="3">
102:
 
103:
<tr>
104:
<td>Användarnamn:</td>
105:
<td><input type="text" name="user" value="<?=$back[0] ?>"></td>
106:
</tr>
107:
 
108:
<tr>
109:
<td>Lösenord:</td>
110:
<td><input type="password" name="passwd" value=""></td>
111:
</tr>
112:
 
113:
<tr>
114:
<td>Repetera lösenord:</td>
115:
<td><input type="password" name="passwd2" value=""></td>
116:
</tr>
117:
 
118:
<tr>
119:
<td>Ditt namn:</td>
120:
<td><input type="text" name="name" value="<?=$back[2] ?>"></td>
121:
</tr>
122:
 
123:
<tr>
124:
<td>E-postadress</td>
125:
<td><input type="text" name="email" value="<?=$back[3] ?>"></td>
126:
</tr>
127:
 
128:
<tr>
129:
<td>Man/Kvinna</td>
130:
<td><INPUT TYPE="radio" NAME="MF" VALUE="M" CHECKED>Man
131:
<INPUT TYPE="radio" NAME="MF" VALUE="F">Kvinna</td>
132:
</tr>
133:
 
134:
<tr>
135:
<td>Födelsedatum
136:
</td>
137:
<td><input type="text" size="10" name="age" value="<?=$back[4] ?>"><font color="#808080"> Exempel: 1987-03-27</font>
138:
 
139:
</td>
140:
</tr>
141:
<tr>
142:
<td colspan="2" align="center">
143:
  <input type="submit" name="submit" value="Spara dina uppgifter">
144:
</td>
145:
</tr>
146:
 
147:
</table>
148:
</form>
149:
 
150:
</body>
151:
</html>


index.php ska se ut såhär :

KOD:
1:
<?php
2:
session_start(); // Alltid överst på sidan
3:
 
4:
include "conn.php"; // Databasanslutningen
5:
 
6:
// Inloggning
7:
if (isset($_POST['submit'])){
8:
 
9:
  $_POST = db_escape($_POST);
10:
 
11:
  $sql = "SELECT id, level FROM members
12:
         WHERE user='{$_POST['user']}'
13:
         AND pass='".md5($_POST['passwd'])."'";
14:
  $result = mysql_query($sql);
15:
 
16:
  // Hittades inte användarnamn och lösenord
17:
  // skicka till formulär med felmeddelande
18:
  if (mysql_num_rows($result) == 0){
19:
    header("Location: index.php?badlogin=");
20:
    exit;
21:
  }
22:
 
23:
  // Sätt sessionen med unikt index
24:
  $_SESSION['sess_id'] = mysql_result($result, 0, 'id');
25:
  $_SESSION['sess_user'] = $_POST['user'];
26:
  $_SESSION['level'] = mysql_result($result, 0, 'level');
27:
  header("Location: welcome.php");
28:
  exit;
29:
}
30:
 
31:
// Utloggning
32:
if (isset($_GET['logout'])){
33:
  session_unset();
34:
  session_destroy();
35:
  header("Location: index.php");
36:
  exit;
37:
}
38:
?>
39:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
40:
<html>
41:
<head>
42:
<meta http-equiv="Content-Type"
43:
  content="text/html; charset=iso-8859-1">
44:
<title>Index</title>
45:
</head>
46:
<body>
47:
<?php
48:
 
49:
// Om inte inloggad visa formulär, annars logga ut-länk
50:
if (!isset($_SESSION['sess_user'])){
51:
 
52:
  echo "<h3>Logga in</h3>\n";
53:
 
54:
  // Visa felmeddelande vid felaktig inloggning
55:
  if (isset($_GET['badlogin'])){
56:
    echo "Fel användarnamn eller lösenord!<br>\n";
57:
    echo "Försök igen!\n";
58:
  }
59:
 
60:
?>
61:
<form action="index.php" method="post">
62:
Användarnamn:<br>
63:
<input type="text" name="user"><br>
64:
Lösenord:<br>
65:
<input type="password" name="passwd"><br>
66:
<input type="submit" name="submit" value="Logga in">
67:
</form>
68:
Inte medlem ?<br>
69:
<a href="register.php">Registera dig</a>
70:
<?php
71:
 
72:
} else {
73:
 
74:
  echo "<a href=\"index.php?logout=\">Logga ut</a><br><br><br>\n";
75:
 
76:
}
77:
 
78:
?>
79:
</body>
80:
</html>


Detta är databasstrukturen i en bild
http://www.clovec.se/databasstruktur.bmp

Hoppas ni får nytta utav den[/code]

Senast ändrad av clovec den 2006-05-21 11:09, ändrad totalt 6 gånger
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ahmed



Medlem i: 4905 dagar

Status: Offline



#379699
Inlägg Skrivet: 2006-05-18 22:02      Ämne: Citera

Dema länk ? :D
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#379702
Inlägg Skrivet: 2006-05-18 22:25      Ämne: Re: Förbättrad registrering till maltes inloggning Citera

clovec skrev:
Här kommer min lite förbättrade registering, krävs dock annan databas upplag som jag kommer att lägga till lite senare!

KOD:
1:
 
2:
<?php
3:
session_start(); // Alltid överst på sidan
4:
 
5:
include "conn.php"; // Databasanslutningen
6:
 
7:
if (isset($_POST['submit'])){
8:
 
9:
  $_POST = db_escape($_POST);
10:
 
11:
  // Tag bort eventuella blanksteg i början eller slutet
12:
  foreach($_POST as $key => $val){
13:
    $_POST[$key] = trim($val);
14:
  }
15:
 
16:
  //Kolla efter tomma fält
17:
  if (empty($_POST['user']) || empty($_POST['passwd']) ||
18:
      empty($_POST['name']) || empty($_POST['email']) || empty($_POST['age'])) {
19:
    $reg_error[] = 0;
20:
  }
21:
 
22:
  // Kolla om användarnamnet är upptaget
23:
  $sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['user']}'";
24:
  $result = mysql_query($sql);
25:
  if (mysql_result($result, 0) > 0) {
26:
    $reg_error[] = 1;
27:
  }
28:
 
29:
  // Kolla om e-post kan tänkas vara ok
30:
  if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $_POST['email'])) {
31:
    $reg_error[] = 2;   
32:
  }
33:
 
34:
  // Kolla så att lösenorden stämmer överrens
35:
  if ($_POST['passwd'] != $_POST['passwd2']) {
36:
    $reg_error[] = 3;
37:
  }
38:
 
39:
  if (!preg_match('/^[0-9]+[-][0-9]+[-][0-9]/', $_POST['age'])) {
40:
    $reg_error[] = 4;
41:
  }
42:
  // Inga fel? Spara och logga in samt skicka till välkomstsida
43:
  if (!isset($reg_error)) {
44:
  $date = date("Y-m-d");
45:
  $pass = md5($_POST['passwd']);
46:
 
47:
    $sql = "INSERT INTO members(user, pass, name, email, registrerad, MF, age)
48:
            VALUES('{$_POST['user']}', '{$pass}', '{$_POST['name']}', '{$_POST['email']}', '{$date}', '{$_POST['MF']}', '{$_POST['age']}')";
49:
    mysql_query($sql);
50:
   
51:
    $_SESSION['sess_id'] = mysql_insert_id();
52:
    $_SESSION['sess_user'] = $_POST['user'];
53:
    header("Location: welcome.php");
54:
    exit;     
55:
 
56:
  }
57:
 
58:
} else {
59:
 
60:
  // Sätt variabler för tomt formulär
61:
  for ($i=0; $i<4; $i++) {
62:
    $back[$i] = "";
63:
  }
64:
 
65:
}
66:
 
67:
$error_list[0] = "Alla fält är inte infyllda";
68:
$error_list[1] = "Användarnamnet är upptaget";
69:
$error_list[2] = "Felaktig e-postadress";
70:
$error_list[3] = "Lösenorden stämmer inte överrens";
71:
$error_list[4] = "Födelsedatumet är inkorrekt";
72:
 
73:
?>
74:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
75:
<html>
76:
<head>
77:
<meta http-equiv="Content-Type"
78:
  content="text/html; charset=iso-8859-1">
79:
<title>Registrera dig</title>
80:
</head>
81:
<body>
82:
<h3>Registrera dig</h3>
83:
<?php
84:
if (isset($reg_error)){
85:
 
86:
  echo "Något blev fel:<br>\n";
87:
  echo "<ul>\n";
88:
  for ($i=0; $i<sizeof($reg_error); $i++) {
89:
    echo "<li>{$error_list[$reg_error[$i]]}</li>\n";
90:
  }
91:
  echo "</ul>\n";
92:
 
93:
  $back[0] = stripslashes($_POST['user']);
94:
  $back[2] = stripslashes($_POST['name']);
95:
  $back[3] = stripslashes($_POST['email']);
96:
  $back[4] = stripslashes($_POST['age']);
97:
 
98:
}
99:
?>
100:
<form action="register.php" method="post">
101:
<table cellspacing="3">
102:
 
103:
<tr>
104:
<td>Användarnamn:</td>
105:
<td><input type="text" name="user" value="<?=$back[0] ?>"></td>
106:
</tr>
107:
 
108:
<tr>
109:
<td>Lösenord:</td>
110:
<td><input type="password" name="passwd" value=""></td>
111:
</tr>
112:
 
113:
<tr>
114:
<td>Repetera lösenord:</td>
115:
<td><input type="password" name="passwd2" value=""></td>
116:
</tr>
117:
 
118:
<tr>
119:
<td>Ditt namn:</td>
120:
<td><input type="text" name="name" value="<?=$back[2] ?>"></td>
121:
</tr>
122:
 
123:
<tr>
124:
<td>E-postadress</td>
125:
<td><input type="text" name="email" value="<?=$back[3] ?>"></td>
126:
</tr>
127:
 
128:
<tr>
129:
<td>Man/Kvinna</td>
130:
<td><INPUT TYPE="radio" NAME="MF" VALUE="M" CHECKED>Man
131:
<INPUT TYPE="radio" NAME="MF" VALUE="F">Kvinna</td>
132:
</tr>
133:
 
134:
<tr>
135:
<td>Födelsedatum
136:
</td>
137:
<td><input type="text" size="10" name="age" value="<?=$back[4] ?>"><font color="#808080"> Exempel: 1987-03-27</font>
138:
 
139:
</td>
140:
</tr>
141:
<tr>
142:
<td colspan="2" align="center">
143:
  <input type="submit" name="submit" value="Spara dina uppgifter">
144:
</td>
145:
</tr>
146:
 
147:
</table>
148:
</form>
149:
 
150:
</body>
151:
</html>


Detta är databasstrukturen i en bild
http://www.clovec.se/databasstruktur.bmp


Demo finns här
http://date.clovec.se


Hoppas ni får nytta utav den
[/url]
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#379703
Inlägg Skrivet: 2006-05-18 22:25      Ämne: Citera

demo länk uppdaterad
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ahmed



Medlem i: 4905 dagar

Status: Offline



#379836
Inlägg Skrivet: 2006-05-19 13:51      Ämne: Citera

NICE!!, men kan du inte skriva databasstrukturen i text ? :D
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#379842
Inlägg Skrivet: 2006-05-19 14:12      Ämne: Citera

kolla min andra topic om forumet, där har du det mesta som behövs för att kunna använda registreringen
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
johan



Medlem i: 6350 dagar
Från: vettet
Status: Offline



#379860
Inlägg Skrivet: 2006-05-19 14:45      Ämne: Citera

clovec skrev:
kolla min andra topic om forumet, där har du det mesta som behövs för att kunna använda registreringen


Jag tror Ahmed menar SQL.-kod för skapandet av tabellen.

CREATE TABLE ....
(

);
 

_________________

Kör till...
Till toppen på sidan
Visa användarprofil Skicka privat meddelande ICQ-nummer
clovec



Medlem i: 4937 dagar

Status: Offline



#379866
Inlägg Skrivet: 2006-05-19 15:02      Ämne: Citera

jag förstod det, men han har redan members tabellen för han använder min profil Razz
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
johan



Medlem i: 6350 dagar
Från: vettet
Status: Offline



#379867
Inlägg Skrivet: 2006-05-19 15:09      Ämne: Citera

clovec skrev:
jag förstod det, men han har redan members tabellen för han använder min profil Razz


Men alla andra da?

Trevligast är ju att man förutom koden även får SQL-koden för databasen m.m.
Kanske installationsbeskrivning o.s.v.

Bara ett tips.
 

_________________

Kör till...
Till toppen på sidan
Visa användarprofil Skicka privat meddelande ICQ-nummer
Ahmed



Medlem i: 4905 dagar

Status: Offline



#379870
Inlägg Skrivet: 2006-05-19 15:11      Ämne: Citera

Woow, den e jätte bra :D
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#379871
Inlägg Skrivet: 2006-05-19 15:11      Ämne: Citera

jo jag vet men innan man börjar med jag ska fixa det, har ju lagt upp strukturen så ni kan läsa den sålänge

Det kommer snart :D
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#380255
Inlägg Skrivet: 2006-05-21 10:56      Ämne: Citera

funkar tabellen ?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ahmed



Medlem i: 4905 dagar

Status: Offline



#382272
Inlägg Skrivet: 2006-05-27 10:04      Ämne: Citera

Ja, jag använder den nu Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
AlienDj



Medlem i: 5146 dagar

Status: Offline



#382393
Inlägg Skrivet: 2006-05-27 16:14      Ämne: Citera

Den verkar vara bra, men en grej som jag vill gärna säga att när man skriver ålder, kön och sånt så raderas det när det kommer ett fel såsom • Användarnamnet är redan upptaget. då man får skriva in ålder, kön och sånt igen. det borde sparas. & en annan grej du har glömt lägga grejen med urbild (bild till press). annars såg det rätt så bra ut faktist Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
clovec



Medlem i: 4937 dagar

Status: Offline



#382538
Inlägg Skrivet: 2006-05-28 08:44      Ämne: Citera

jag vet inte riktigt gyr jag ska lösa det Razz och bild kommer så småningom hehe !
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2  Nästa
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic