Inlogsysteem vraag
Jean-Paul schreef op 17.12.2007 19:53:
maar waarvan ??
Van je database. Anders kun je er geen gebruik van maken.
o oke dankje wel dan ga ik gelijk aanpassen
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php session_start();
ik heb nu steeds dit probleem en nu weet ik het niet meer
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\www\recyclingwestland.nl\www\2008\login2.php:7) in D:\www\recyclingwestland.nl\www\2008\login2.php on line 17
ik heb nu steeds dit probleem en nu weet ik het niet meer
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\www\recyclingwestland.nl\www\2008\login2.php:7) in D:\www\recyclingwestland.nl\www\2008\login2.php on line 17
Pepijn schreef op 17.12.2007 19:59:
Van je database. Anders kun je er geen gebruik van maken.
Jean-Paul schreef op 17.12.2007 19:53:
maar waarvan ??
Van je database. Anders kun je er geen gebruik van maken.
nu zit ik met dit probleem
Je hebt session al een keer gestart. Dit heb je in login2.php gedaan. Dus sessiondestroy is overbodig in dit script.
<html>
<head>
<title>login2</title>
</head>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$connect = mysql_connect('naam','naam','naam');
if($connect == TRUE) {
if(mysql_select_db('naam') != TRUE) {
exit("<span style='color: red'>Can't connect to the MySQL database. Please contact the webmaster.</span>");
}
}else{
exit("<span style='color: red'>Can't connect to the MySQL server. Please contact the webmaster.</span>");
}
?>
$connect = mysql_connect('naam','naam','naam');
if($connect == TRUE) {
if(mysql_select_db('naam') != TRUE) {
exit("<span style='color: red'>Can't connect to the MySQL database. Please contact the webmaster.</span>");
}
}else{
exit("<span style='color: red'>Can't connect to the MySQL server. Please contact the webmaster.</span>");
}
?>
//en dit is het probleem wat ie aan geeft.
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
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
<?php session_start();
// dit is het probleem wat je ziet in het scherm login2.php
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\www\recyclingwestland.nl\www\2008\login2.php:7) in D:\www\recyclingwestland.nl\www\2008\login2.php on line 17
//dit is een functie die de waardes die je in het formuliertje hebt gestuurd beveiligd tegen mysql injections.
function StripVar($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if(version_compare(phpversion(),"4.3.0") == "-1") {
return mysql_escape_string($value);
} else {
return mysql_real_escape_string($value);
}
}
// is iets netter dan if(!empty($_post))
if ($_SERVER['REQUEST_METHOD'] == "POST" ){
include("inc_connect.php");
//hier dus die functie aanroepen
$email = StripVar($_POST["email"]);
$wachtwoord = StripVar($_POST["wachtwoord"]);
$query = "SELECT *
FROM users
WHERE email='" . $email ."'
AND wachtwoord='". $wachtwoord ."'
LIMIT 1";
$result = mysql_query($query) or die ("FOUT : " . mysql_error());
//kijken of er een match is gemaakt.
if (mysql_num_rows($result)!= 0){
$_session['username'] = //hier je username inzetten
/*
Nooit een wachtwoord opslaan in een, deze kunnen mensen "hijacken".
Je kunt altijd het userId opslaan, aan de hand van die ID kun je achter elk gegeven komen an elke user.
Daarnaast moet je je wachtwoord coderen voordat je het in het database zet.
Bijvoorbeeld: $nieuwwachtwoord = md5($wachtwoord);
*/
header('Location: beveiligd.php');
//Waarom deze exit()? Je word toch al naar een ander pagina gezonden?
exit();
}else{
//deze variable heette eerst $tekst, probeer je variablelen goede namen geven, zodat je zelf niet in de war raakt.
$loginMislukt = "u heeft geen ongeldig E-mailadres ingevoerd, probeer het nog eens. Of maak een keuze:";
echo "<a href=\"login.php\">Opnieuw aanmelden</a>";
echo "<a href=\"register.php\">Registreren</a>";
/*
als je een single quote gebruikt voor echo hoef je niet de heletijd met die slash te werken.
Bijvoorbeeld: echo '<a href="login.php">Opnieuw aanmelden</a>';
*/
die($loginMislukt);
}
}else{
header("Location: login.php");
}
?>
// dit is het probleem wat je ziet in het scherm login2.php
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\www\recyclingwestland.nl\www\2008\login2.php:7) in D:\www\recyclingwestland.nl\www\2008\login2.php on line 17
//dit is een functie die de waardes die je in het formuliertje hebt gestuurd beveiligd tegen mysql injections.
function StripVar($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if(version_compare(phpversion(),"4.3.0") == "-1") {
return mysql_escape_string($value);
} else {
return mysql_real_escape_string($value);
}
}
// is iets netter dan if(!empty($_post))
if ($_SERVER['REQUEST_METHOD'] == "POST" ){
include("inc_connect.php");
//hier dus die functie aanroepen
$email = StripVar($_POST["email"]);
$wachtwoord = StripVar($_POST["wachtwoord"]);
$query = "SELECT *
FROM users
WHERE email='" . $email ."'
AND wachtwoord='". $wachtwoord ."'
LIMIT 1";
$result = mysql_query($query) or die ("FOUT : " . mysql_error());
//kijken of er een match is gemaakt.
if (mysql_num_rows($result)!= 0){
$_session['username'] = //hier je username inzetten
/*
Nooit een wachtwoord opslaan in een, deze kunnen mensen "hijacken".
Je kunt altijd het userId opslaan, aan de hand van die ID kun je achter elk gegeven komen an elke user.
Daarnaast moet je je wachtwoord coderen voordat je het in het database zet.
Bijvoorbeeld: $nieuwwachtwoord = md5($wachtwoord);
*/
header('Location: beveiligd.php');
//Waarom deze exit()? Je word toch al naar een ander pagina gezonden?
exit();
}else{
//deze variable heette eerst $tekst, probeer je variablelen goede namen geven, zodat je zelf niet in de war raakt.
$loginMislukt = "u heeft geen ongeldig E-mailadres ingevoerd, probeer het nog eens. Of maak een keuze:";
echo "<a href=\"login.php\">Opnieuw aanmelden</a>";
echo "<a href=\"register.php\">Registreren</a>";
/*
als je een single quote gebruikt voor echo hoef je niet de heletijd met die slash te werken.
Bijvoorbeeld: echo '<a href="login.php">Opnieuw aanmelden</a>';
*/
die($loginMislukt);
}
}else{
header("Location: login.php");
}
?>
</body>
</html>
laat maar sorry ik heb het al
session_start(); moet ALTIJD boven aan de pagina komen, voordat je iets anders gaat doen. Werkt het script nu?
dit is het script:
<form form="form1" action="$_SERVER['PHP_SELF']"?actie="registreren" method="post">
<br>E-Mailadres: <input name="email" type="text" size="30" maxlength="40"> (maximaal 40 tekens)
<br>Wachtwoord: <input name="wachtwoord" type="password" size"10" maxlength="8">(maximaal 8 tekens)
<br><input type="submit" name="submit" value="registreren">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include("inc_connect.php");
if (!empty($_post)){
$email = $_post["email"];
$wachtwoord = $_post["wachtwoord"];
$query = "SELECT * FROM users WHERE email='['$email']';";
$query = msql_query($query) or die ("FOUT: " . mysql_error());
if (mysql_num_rows($result) > 0) {
$tekst = "Dit email adres(<b>$email</b>) bestaat al\n.
<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
die($tekst);
}else{
$query="INSERT INTO users (email, wachtwoord)";
$query .= "VALUES ('$email', '$wachtwoord');";
$result = mysql_query($query) or die ("FOUT: " .
msql_error());
$tekst ="bedankt voor u aanmelding. u kunt nu <a href=\"login.php\">aanmelden</a>";
die ($tekst);
}
}
?>
include("inc_connect.php");
if (!empty($_post)){
$email = $_post["email"];
$wachtwoord = $_post["wachtwoord"];
$query = "SELECT * FROM users WHERE email='['$email']';";
$query = msql_query($query) or die ("FOUT: " . mysql_error());
if (mysql_num_rows($result) > 0) {
$tekst = "Dit email adres(<b>$email</b>) bestaat al\n.
<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
die($tekst);
}else{
$query="INSERT INTO users (email, wachtwoord)";
$query .= "VALUES ('$email', '$wachtwoord');";
$result = mysql_query($query) or die ("FOUT: " .
msql_error());
$tekst ="bedankt voor u aanmelding. u kunt nu <a href=\"login.php\">aanmelden</a>";
die ($tekst);
}
}
?>
ik krijg geen mailtje met mij wachtwoord
ik dus geen idee
Bumpen::
SanThe.