Invoer komt niet in database
Ik heb de volgende script geschreven maar op en of andere manier kommen de gegevens niet in de database.
Als iemand nieuw zich lid maakt wordt deze rang 1 gegeven dus member om iemand andere rechten te geven moet je naar de db gaan of zelf een scriptje maken.:P
Code (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
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
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<?
session_start();
?>
<font face=verdana size=1>
<?
if($_SESSION['login'] == "true"){
print " You have allready an account.";//because your logged in stupid
}
include('connect.php');
if(!isset($_REQUEST['submit'])){
?>
<form method=post acion=""<? $_SERVER['PHP_SELF'] ?>"">
<table>
<tr>
<td>
<font face=verdana size=1>Username:
</td>
<td>
<input type="text" name="name" maxlength="15">
</td>
</tr>
<tr>
<td>
<font face=verdana size=1>Password:
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<font face=verdana size=1>Confirm:
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<input type="submit" value=submit name="submit">
</td>
<td>
<input type="reset">
</td>
</tr>
</table>
</form>
<?php
}else{
//request everything
$dead = "false";//We make 'dead' if some fields are not filled in don't check for pass and name in db.
$message = "<font face=verdana size=1>Pleas fill in all fields correctly:<br>";
$username = $_POST['name'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
$ip = $_SERVER['REMOTE_ADDR'];
$status = "1";//1 member, 2,co-admin 3, admin
//begin search for errors
if(strlen($username) <= 1 or strlen($username) >=15){
$dead = "true";
$message .= "Username (2-14)<br>";
}
if(strlen($password) < 6 or strlen($password) > 20 or $password !== $password) {
$dead = "true";
$message .= "Password (6-20) or passwords does not match";
}
if($dead = "false"){
$username = strtolower(trim(strip_tags($username)));
$password = trim($password);
$password = md5($password);
$query = mysql_query("SELECT * FROM members WHERE username ='$username'");
$aantalrijen = mysql_num_rows($query);
if($aantalrijen == 1){
print "<font face=verdana size=1>Sorry, your username exists allready.";
}
else{
$query1 = "INSERT INTO members(username, password, ip, status) VALUES ('$username','$password', '$ip','$status')";
if(mysql_query($query1)){
print "<font face=verdana size=1>Well donne your now a member of the RTD group.<br><a href=login.php>Login</a>";
}
}
}
elseif($dead == "true"){
print $message;
}
}
?>
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<?
session_start();
?>
<font face=verdana size=1>
<?
if($_SESSION['login'] == "true"){
print " You have allready an account.";//because your logged in stupid
}
include('connect.php');
if(!isset($_REQUEST['submit'])){
?>
<form method=post acion=""<? $_SERVER['PHP_SELF'] ?>"">
<table>
<tr>
<td>
<font face=verdana size=1>Username:
</td>
<td>
<input type="text" name="name" maxlength="15">
</td>
</tr>
<tr>
<td>
<font face=verdana size=1>Password:
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<font face=verdana size=1>Confirm:
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<input type="submit" value=submit name="submit">
</td>
<td>
<input type="reset">
</td>
</tr>
</table>
</form>
<?php
}else{
//request everything
$dead = "false";//We make 'dead' if some fields are not filled in don't check for pass and name in db.
$message = "<font face=verdana size=1>Pleas fill in all fields correctly:<br>";
$username = $_POST['name'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
$ip = $_SERVER['REMOTE_ADDR'];
$status = "1";//1 member, 2,co-admin 3, admin
//begin search for errors
if(strlen($username) <= 1 or strlen($username) >=15){
$dead = "true";
$message .= "Username (2-14)<br>";
}
if(strlen($password) < 6 or strlen($password) > 20 or $password !== $password) {
$dead = "true";
$message .= "Password (6-20) or passwords does not match";
}
if($dead = "false"){
$username = strtolower(trim(strip_tags($username)));
$password = trim($password);
$password = md5($password);
$query = mysql_query("SELECT * FROM members WHERE username ='$username'");
$aantalrijen = mysql_num_rows($query);
if($aantalrijen == 1){
print "<font face=verdana size=1>Sorry, your username exists allready.";
}
else{
$query1 = "INSERT INTO members(username, password, ip, status) VALUES ('$username','$password', '$ip','$status')";
if(mysql_query($query1)){
print "<font face=verdana size=1>Well donne your now a member of the RTD group.<br><a href=login.php>Login</a>";
}
}
}
elseif($dead == "true"){
print $message;
}
}
?>
Kan iemand mij helpen??
Alvast bedankt
- Ariën -:
Graag in het vervolg bij code de [code][/code]-tags gebruiken. Hier kan je meer lezen over de mogelijke opmaakcodes. Ook heb ik de titel aangepast naar een duidelijkere titel die je probleem omschrijft. Gelieve hier voortaan op te letten.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 27/01/2016 13:15:55 door - Ariën -
Snel even gekeken.
Wat mij direct opviel: if($dead = "false"){
Een vergelijking heeft == of === en geen = want dat is een waarde toekennen aan een variabele.
En jouw true en false zijn teksten en geen booleans.
Gebruik ze dus zonder quotes dan zijn ze wel booleans.
Gewijzigd op 27/01/2016 13:14:02 door - SanThe -
Waar haalt men tegenwoordig toch vandaan dat strip_tags icm databases zinnig is? Het enige dat werkt is de escaping methode van je database. Ook weer die gekke maximum lengte van wachtwoorden, extreem verouderde HTML, om nog maar te zwijgen van het steenkolenengels. Verder: Wat SanThe zegt: Tekst is tekst, boolean is boolean. === en == zijn bedoeld om te vergelijken, = is toekenning.
Waar zijn de (html) dubbele quotes bij method=post en de diverse waarden op de volgende regels.
En hier gebruik je dubbele dubbele quotes acion=""<? $_SERVER['PHP_SELF'] ?>"">
$_SERVER['PHP_SELF'] kan je beter weglaten.
En met acion zal je wel action bedoelen.
dus <¿php ipv alleen maar <¿
die op regel 7 kun je dan samen met de voorafgaande sluit-tag verwijderen om een foutmelding over headers-already-sent te voorkomen.