Checken of er een sessie bestaat werkt niet!! HELP
Hoi, ik heb in mijn index.php een switch zitten dat hij de Action uit de Url haalt,maar als ik inlog zegt ie dat er geen sessie bestaat hij geeft gewoon de echo in de else weer.
bijlage(index.php):
bijlage(index.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
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
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
<?php
require_once ('connect.php');
// haal de id & action uit de url
if (isset($_GET['id'])) {
$pageid = $_GET['id'];
} else {
$pageid = 1;
}
$action = $_GET['action'];
switch ($action) {
case "logout":
session_start();
session_destroy();
$login = file_get_contents('login.html');
break;
case "login":
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];
$sql = "SELECT * FROM $tbl_name WHERE naam='$myusername' and wachtwoord='$mypassword'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
// Als myusername en mypassword gelijk zijn maakt ie ene sessie aan.
if ($count == 1) {
// Registreer $myusername, $mypassword en redirect naar file "login_success.php"
session_start();
$_SESSION["myusername"] = $myusername;
$_SESSION["mypassword"] = $mypassword;
header('Location:index.php?action=checkuser&id=' . $pageid);
} else {
$login = "Wrong Username or Password";
}
break;
case "checkuser":
if (isset($_SESSION["myusername"])) {
echo "User : $_SESSION('myusername')" ;
} else {
echo "Werkt niet";
}
break;
default:
$login = file_get_contents('login.html');
}
$query = "SELECT titel, content FROM tbl_content WHERE id = $pageid";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$titel = $row["titel"];
$content = $row["content"];
$string = file_get_contents("stramien.html");
$string = str_replace('%content%', $content, $string);
$string = str_replace('%titel%', $titel, $string);
$string = str_replace('%login%', $login, $string);
echo $string;
?>
require_once ('connect.php');
// haal de id & action uit de url
if (isset($_GET['id'])) {
$pageid = $_GET['id'];
} else {
$pageid = 1;
}
$action = $_GET['action'];
switch ($action) {
case "logout":
session_start();
session_destroy();
$login = file_get_contents('login.html');
break;
case "login":
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];
$sql = "SELECT * FROM $tbl_name WHERE naam='$myusername' and wachtwoord='$mypassword'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
// Als myusername en mypassword gelijk zijn maakt ie ene sessie aan.
if ($count == 1) {
// Registreer $myusername, $mypassword en redirect naar file "login_success.php"
session_start();
$_SESSION["myusername"] = $myusername;
$_SESSION["mypassword"] = $mypassword;
header('Location:index.php?action=checkuser&id=' . $pageid);
} else {
$login = "Wrong Username or Password";
}
break;
case "checkuser":
if (isset($_SESSION["myusername"])) {
echo "User : $_SESSION('myusername')" ;
} else {
echo "Werkt niet";
}
break;
default:
$login = file_get_contents('login.html');
}
$query = "SELECT titel, content FROM tbl_content WHERE id = $pageid";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$titel = $row["titel"];
$content = $row["content"];
$string = file_get_contents("stramien.html");
$string = str_replace('%content%', $content, $string);
$string = str_replace('%titel%', $titel, $string);
$string = str_replace('%login%', $login, $string);
echo $string;
?>
Gewijzigd op 27/01/2011 16:40:11 door Rick Keeris
Gesponsorde koppelingen:
Dat komt omdat je er niet session_start() boven hebt staan. Ik zou dat zowiezo er allemaal uit slopen en eenmalig session_start boven aan je script plaatsen.
owke bedankt man! ook bedankt voor het snel reageren ;)
Zijn die uitroeptekens enzo nou nodig in je titel? Volgens de regels en volgens mij deze tutorial mag dat niet, dat is irritant =).
En wat mark dus al zij. Session start is makkelijker dan dit alles.
En wat mark dus al zij. Session start is makkelijker dan dit alles.
Mark bedoelt dat als je in de case "checkuser" komt, dat daar dan je sessie nog niet is gestart. Dus inderdaad session_start(); bovenaan zetten en weghalen na "if ($count == 1) {".
het is voor school voor morgen dus alvast bedankt toppie!
Krijg je het zo aangeleerd of ben je dit allemaal zelf aan het bedenken?
Er zit namelijk best veel in dat nergens op slaat en je mist een hele hoop fout afhandeling.
Er zit namelijk best veel in dat nergens op slaat en je mist een hele hoop fout afhandeling.
Ja het programmeren is hier nog niet zo goed geregeld, we moeten zelf op internet uitzoeken hoe we moeten programmeren. De mensen hier op t forum helpen mij nu al beter dan de leraren.
Er zal nog wel meer fout zijn maar in het kort.
- Je hebt veels te weinig commentaar in je script staan.
- er hoeven geen () om include en require.
- Je controleert niet of $_GET['id'] wel een cijfer is. ctype_digit
- Je controleert niet of $_GET['action'] wel bestaat.
- Je controleert niet of $_GET['action'] wel een geldige actie bevat.
- $action = $_GET['action']; is dubbel op en nergens voor nodig. gewoon $_GET['action'] dan weet je ook waar het vandaan komt.
- Haal je variabelen buiten de quotes.
- Je controleert nergens of het formulier is verzonden.
- SQL Injection is mogelijk. MySQL_real_escape_string()
- Nooit een wachtwoord opslaan in een session.
- Je wachtwoord staat onversleuteld in de database.
Kijk eens op www.phptuts.nl naar de SQL tutorial. En dan met name MySQLi_ of PDO_. MySQL_ functies zijn verouderd.
- Je hebt veels te weinig commentaar in je script staan.
- er hoeven geen () om include en require.
- Je controleert niet of $_GET['id'] wel een cijfer is. ctype_digit
- Je controleert niet of $_GET['action'] wel bestaat.
- Je controleert niet of $_GET['action'] wel een geldige actie bevat.
- $action = $_GET['action']; is dubbel op en nergens voor nodig. gewoon $_GET['action'] dan weet je ook waar het vandaan komt.
- Haal je variabelen buiten de quotes.
- Je controleert nergens of het formulier is verzonden.
- SQL Injection is mogelijk. MySQL_real_escape_string()
- Nooit een wachtwoord opslaan in een session.
- Je wachtwoord staat onversleuteld in de database.
Kijk eens op www.phptuts.nl naar de SQL tutorial. En dan met name MySQLi_ of PDO_. MySQL_ functies zijn verouderd.
Gewijzigd op 28/01/2011 11:18:38 door - Mark -
Mark Coenen op 28/01/2011 11:01:02:
Er zal nog wel meer fout zijn maar in het kort.
- Je hebt veels te weinig commentaar in je script staan.
- er hoeven geen () om include en require.
- Je controleerd niet of $_GET['id'] wel een cijfer is. ctype_digit
- Je controleerd niet of $_GET['action'] wel bestaat.
- Je controleerd niet of $_GET['action'] wel een geldige actie bevat.
- $action = $_GET['action']; is dubbel op en nergens voor nodig. gewoon $_GET['action'] dan weet je ook waar het vandaan komt.
- Haal je variabelen buiten de quotes.
- Je controleerd nergens of het formulier is verzonden.
- SQL Injection is mogelijk. MySQL_real_escape_string()
- Nooit een wachtwoord opslaan in een session.
- Je wachtwoord staat onversleuteld in de database.
Kijk eens op www.phptuts.nl naar de SQL tutorial. En dan met name MySQLi_ of PDO_. MySQL_ functies zijn verouderd.
- Je hebt veels te weinig commentaar in je script staan.
- er hoeven geen () om include en require.
- Je controleerd niet of $_GET['id'] wel een cijfer is. ctype_digit
- Je controleerd niet of $_GET['action'] wel bestaat.
- Je controleerd niet of $_GET['action'] wel een geldige actie bevat.
- $action = $_GET['action']; is dubbel op en nergens voor nodig. gewoon $_GET['action'] dan weet je ook waar het vandaan komt.
- Haal je variabelen buiten de quotes.
- Je controleerd nergens of het formulier is verzonden.
- SQL Injection is mogelijk. MySQL_real_escape_string()
- Nooit een wachtwoord opslaan in een session.
- Je wachtwoord staat onversleuteld in de database.
Kijk eens op www.phptuts.nl naar de SQL tutorial. En dan met name MySQLi_ of PDO_. MySQL_ functies zijn verouderd.
Je controleerd met een d? Ai ai aiiii.....
"er hoeven geen () om include en require."
Je ziet het zowel met als zonder haakjes. Ik vraag me af wat de juiste manier is en of er verschil is tussen beide manieren. Waarom is het uberhaupt mogelijk om dit op 2 manieren te doen?????
:p Nederlands is niet mijn sterkste punt. En mijn spelling controlle staat in het Engels dus dat helpt ook niet echt.
Gewijzigd op 28/01/2011 11:19:25 door - Mark -
hehe... lol :)
Iemand hier nog antwoord op?
Iemand hier nog antwoord op?
Ozzie PHP op 28/01/2011 11:09:42:
"er hoeven geen () om include en require."
Je ziet het zowel met als zonder haakjes. Ik vraag me af wat de juiste manier is en of er verschil is tussen beide manieren. Waarom is het uberhaupt mogelijk om dit op 2 manieren te doen?????
Je ziet het zowel met als zonder haakjes. Ik vraag me af wat de juiste manier is en of er verschil is tussen beide manieren. Waarom is het uberhaupt mogelijk om dit op 2 manieren te doen?????
Quote:
Je hebt veels te weinig commentaar in je script staan.
Je hebt veels te weinig commentaar in je script staan.
dit geeft een fatal error ?
zoveel bijzonders gebeurt er niet, ik zou er ook niets bijzetten
door comentaar kan er geen fatal error gebruiken
dit kan je met
dit kan je met
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// comentaar doen
/* Of op deze nanier */
#comentaar
?>
<html>
<!-- In html op deze manier!-->
</html>
// comentaar doen
/* Of op deze nanier */
#comentaar
?>
<html>
<!-- In html op deze manier!-->
</html>
Gewijzigd op 28/01/2011 12:32:44 door jordi kroon
Jordi kroon op 28/01/2011 12:32:04:
het was ook meer sarcasme...
ik bedoel hiermee dat veel of weinig commentaar geen 'fout' is.
Gewijzigd op 28/01/2011 13:11:44 door gerhard l
Commentaar is niet verplicht, maar wel aan te raden. Je kunt dan namelijk zien wat je doet en het is fijn voor andere progammeurs die jouw code nalezen. Voor 3 regels code is het natuurlijk onlogisch maar als je 400 regels hebt...
Overigens is het bij functies altijd fijn om te weten wat de parameters doen.
Overigens is het bij functies altijd fijn om te weten wat de parameters doen.
Gewijzigd op 28/01/2011 16:04:13 door Nick Hermans



