Versio

Checken of er een sessie bestaat werkt niet!! HELP

Overzicht Reageren

Rick Keeris

Rick Keeris

27/01/2011 16:28:28
Quote Anchor link
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):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;

?>
Gewijzigd op 27/01/2011 16:40:11 door Rick Keeris
 
PHP hulp

PHP hulp

24/05/2012 00:38:02
Gesponsorde koppelingen:
 
- Mark -

- Mark -

27/01/2011 16:39:52
Quote Anchor link
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.
 
Rick Keeris

Rick Keeris

27/01/2011 16:43:11
Quote Anchor link
owke bedankt man! ook bedankt voor het snel reageren ;)
 
Jurrian Nijland

Jurrian Nijland

27/01/2011 16:43:11
Quote Anchor link
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.
 
Ozzie PHP

Ozzie PHP

27/01/2011 16:43:40
Quote Anchor link
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) {".
 
Rick Keeris

Rick Keeris

27/01/2011 16:43:55
Quote Anchor link
het is voor school voor morgen dus alvast bedankt toppie!
 
- Mark -

- Mark -

27/01/2011 16:47:05
Quote Anchor link
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.
 
Rick Keeris

Rick Keeris

28/01/2011 08:35:10
Quote Anchor link
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.
 
- Mark -

- Mark -

28/01/2011 11:01:02
Quote Anchor link
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.
Gewijzigd op 28/01/2011 11:18:38 door - Mark -
 
Ozzie PHP

Ozzie PHP

28/01/2011 11:09:42
Quote Anchor link
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 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?????
 
- Mark -

- Mark -

28/01/2011 11:17:31
Quote Anchor link
: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 -
 
Ozzie PHP

Ozzie PHP

28/01/2011 11:30:26
Quote Anchor link
hehe... lol :)

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?????
 
Gerhard l

gerhard l

28/01/2011 11:57:57
Quote Anchor link
Quote:

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
 
Jordi kroon
Redacteur

jordi kroon

28/01/2011 12:32:04
Quote Anchor link
door comentaar kan er geen fatal error gebruiken

dit kan je met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// 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
 
Gerhard l

gerhard l

28/01/2011 12:52:54
Quote Anchor link
Jordi kroon op 28/01/2011 12:32:04:
door comentaar kan er geen fatal error gebruiken

dit kan je met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// comentaar doen
/* Of op deze nanier   */  
#comentaar

?>


<html>

<!-- In html op deze manier!-->
</html>


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
 
Nick Hermans

Nick Hermans

28/01/2011 16:02:06
Quote Anchor link
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.
Gewijzigd op 28/01/2011 16:04:13 door Nick Hermans
 



Overzicht Reageren