probleem met loginscript
ben beginnend php'er
* register.php *
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title> oefeningen</title>
</head>
<body>
<form action="send.php" method="post">
username: <input type="text" name="username" size="10" /><br />
password: <input type="password" name="password" size="10" /><br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
* send.php *
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
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
<?
error_reporting(E_ALL);
// Connects to my Database
include('config.php');
//This code runs if the form has been submitted
if (isset($_POST['submit'])) {
//This makes sure they did not leave any fields blank
if(!$_POST['username'] && $_POST['password']) {
die('You did not complete all of the required fields');
}
//set username and password
$user = $_POST['username'];
$pass = md5($_POST['password']);
// checks if the username is in use
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
else {
echo('error 1');
}
$check = mysql_query("SELECT username FROM users WHERE username = '$user'")
or die('error 2');
$check2 = mysql_num_rows($check);
//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}
// insert it into the database
$insert = " INSERT INTO users (id, username, password)
VALUES ('NULL, .$user , .$pass.')";
$add_member = mysql_query($insert);
}
else{
echo("er is een fout opgetreden" . mysql_error());
}
?>
error_reporting(E_ALL);
// Connects to my Database
include('config.php');
//This code runs if the form has been submitted
if (isset($_POST['submit'])) {
//This makes sure they did not leave any fields blank
if(!$_POST['username'] && $_POST['password']) {
die('You did not complete all of the required fields');
}
//set username and password
$user = $_POST['username'];
$pass = md5($_POST['password']);
// checks if the username is in use
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
else {
echo('error 1');
}
$check = mysql_query("SELECT username FROM users WHERE username = '$user'")
or die('error 2');
$check2 = mysql_num_rows($check);
//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}
// insert it into the database
$insert = " INSERT INTO users (id, username, password)
VALUES ('NULL, .$user , .$pass.')";
$add_member = mysql_query($insert);
}
else{
echo("er is een fout opgetreden" . mysql_error());
}
?>
Toevoeging op 09/01/2012 16:56:39:
zoals je ziet ben ik ook net nieuw op het forum, dus tips en kritiek is bij mij welkom...
Gewijzigd op 09/01/2012 17:02:25 door Dylan prins
dat is niet goed want je controleert op een knop.
Beter kan je op een REQUEST testen dus"
addslashes is ook overbodig, daarvoor hebben we mysql_real_escape_string()
dus:
Daarnaast zou ik de functie 'empty' gebruiken of een $_POST waarde ingevuld is. Als dat 't geval is krijg je een true, anders een false.
Code (php)
Daarnaast zou je variables die onnodig zijn kunnen vermijden.
Zo word bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
else {
echo('error 1');
}
$check = mysql_query("SELECT username FROM users WHERE username = '$user'")
or die('error 2');
$check2 = mysql_num_rows($check);
//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}
?>
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
else {
echo('error 1');
}
$check = mysql_query("SELECT username FROM users WHERE username = '$user'")
or die('error 2');
$check2 = mysql_num_rows($check);
//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}
?>
iets als dit:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$query = mysql_query ("SELECT username FROM users WHERE username = '" . mysql_real_escape_string ($_POST['username']) . "'") or die (mysql_error ());
if (mysql_num_rows ($query) != 0)
{
die ('Sorry, the username ' . $_POST['username'] . ' is already in use.');
}
?>
$query = mysql_query ("SELECT username FROM users WHERE username = '" . mysql_real_escape_string ($_POST['username']) . "'") or die (mysql_error ());
if (mysql_num_rows ($query) != 0)
{
die ('Sorry, the username ' . $_POST['username'] . ' is already in use.');
}
?>
Veder kijk je bij de query die je gebruikt ($add_member) niet of de query gelukt is of niet.
Ik hoop je hierbij geholpen te hebben.
Een tip voor jou voor op het forum:
Vertel duidelijk wat er fout is. Je vraagt nu alleen 'wat doe ik fout' bij wijze van. Nu verwacht je dat we je script (die in dit geval niet zo super uitgebreid is) door gaan nemen om uit te zoeken wat je wilt, en wat je fout doet.
Als je duidelijk erbij vermeld wat je hebt gemaakt, wat er fout is, en wat je geprobeerd hebt de fout op te lossen, kunnen wij je veel sneller helpen.
Gewijzigd op 09/01/2012 17:37:58 door Cake Masher
alle 2 erg bedankt voor het snelle reageren ik ga kijken of het met deze informatie lukt.
Gebruik ook zeker geen or die() als foutafhandeling voor een query. Bouw een nette foutafhandeling in, je script moet echt niet dood gaan als het een foutje maakt. ;)
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
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
<?
error_reporting(E_ALL);
// Connects to my Database
include('config.php');
//This code runs if the form has been submitted
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//This makes sure they did not leave any fields blank
if (empty ($_POST['username']) && empty ($_POST['password']))
{
echo 'Gebruikersnaam en / of Wachtwoord zijn niet ingevuld!';
}
//set username and password
$user = $_POST['username'];
$pass = md5($_POST['password']);
// checks if the username is in use
$query = mysql_query ("SELECT username FROM users WHERE username = '" . mysql_real_escape_string ($_POST['username']) . "'") or die (mysql_error ());
if (mysql_num_rows ($query) != 0)
{
echo ('Sorry, the username ' . $_POST['username'] . ' is already in use.');
}
//if the name exists it gives an error
if ($check2 != 0) {
echo('Sorry, the username '.$_POST['username'].' is already in use.');
}
// now we insert it into the database
$insert = "INSERT INTO users
(username,
password
)
VALUES ('".mysql_real_escape_string($user)."' ,
'".mysql_real_escape_string($pass)."')";
$add_member = mysql_query($insert);
}
else{
echo("er is een fout opgetreden" . mysql_error());
}
?>
error_reporting(E_ALL);
// Connects to my Database
include('config.php');
//This code runs if the form has been submitted
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//This makes sure they did not leave any fields blank
if (empty ($_POST['username']) && empty ($_POST['password']))
{
echo 'Gebruikersnaam en / of Wachtwoord zijn niet ingevuld!';
}
//set username and password
$user = $_POST['username'];
$pass = md5($_POST['password']);
// checks if the username is in use
$query = mysql_query ("SELECT username FROM users WHERE username = '" . mysql_real_escape_string ($_POST['username']) . "'") or die (mysql_error ());
if (mysql_num_rows ($query) != 0)
{
echo ('Sorry, the username ' . $_POST['username'] . ' is already in use.');
}
//if the name exists it gives an error
if ($check2 != 0) {
echo('Sorry, the username '.$_POST['username'].' is already in use.');
}
// now we insert it into the database
$insert = "INSERT INTO users
(username,
password
)
VALUES ('".mysql_real_escape_string($user)."' ,
'".mysql_real_escape_string($pass)."')";
$add_member = mysql_query($insert);
}
else{
echo("er is een fout opgetreden" . mysql_error());
}
?>
Plaast anders achter het laatste haakje sluiten eens:
Mist er trouwens niet een haakje?
Gewijzigd op 09/01/2012 18:24:40 door Erwin H
+ zover ik heb gecontroleerd missen er geen haakjes
Toevoeging op 10/01/2012 09:51:45:
hoe kan ik hier een controle op uitvoeren?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
$insert = "INSERT INTO users
(username,
password
)
VALUES ('".mysql_real_escape_string($user)."' ,
'".mysql_real_escape_string($pass)."')";
$add_member = mysql_query($insert);
?>
$insert = "INSERT INTO users
(username,
password
)
VALUES ('".mysql_real_escape_string($user)."' ,
'".mysql_real_escape_string($pass)."')";
$add_member = mysql_query($insert);
?>
Toevoeging op 10/01/2012 10:34:31:
alles opgelost! ;)
Gewijzigd op 09/01/2012 22:23:32 door dylan prins