Ingelogd als

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart de kinkelaar

bart de kinkelaar

26/01/2015 19:33:57
Quote Anchor link
Afbeelding
Ik ben bezig met een site, heb al een inlog & registreer-systeem.
Toch krijg ik het niet voor elkaar om een dingetje te maken dat weergeeft: "Ingelogd als (naam gebruiker)"

Hij weergeeft de code namelijk als tekst op de site.
Bovenaan de code staat gewoon:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    session_start();  
?>


is de code.

Omderaan die code
Quote:
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
<?php
if ( isset($_SESSION['logIn']) ) {
echo "<!DOCTYPE html>
<body>
<div class=´container´>
 <p> Je bent ingelogd als:</p> <?php echo $_SESSION['username']?>
</div>"
;
}

else {
echo "<!DOCTYPE html>
<body>

<div class=´container´>
  <p> je bent niet ingelogd</p>
</div>"
;
}

mysqli_close($con);
?>
het gedeelte waar ik op doel. Het gedeelte dat de naam van de gebruiker moet laten zien.
Gewijzigd op 26/01/2015 19:39:43 door Bart de kinkelaar
 
PHP hulp

PHP hulp

16/04/2024 12:48:19
 
Thomas van den Heuvel

Thomas van den Heuvel

26/01/2015 20:08:06
Quote Anchor link
Waarom echo je alles? je hoeft alleen maar de relevante delen te echo'en.

Daarnaast herhaal je HTML-code, wat ook onnodig is.

En zoals je in de code highlighting hierboven al kunt zien staat er PHP-code in een tekst-string (gebruik je geen editor die je PHP een kleurtje geeft?).

Is dit trouwens je hele HTML-document? Waar is je html / head tag? Waar sluit je je body / html af?

Attributen van HTML-tags moeten te allen tijde tussen "dubbele quotes" worden geschreven.

Tot slot escape je (user)output niet. Dat is potentieel ook gevaarlijk.

Er vanuitgaande dat je UTF-8 als character encoding voor je document gebruikt kun je bovenstaande code verkorten tot het volgende, los van die hele niet-kloppende-HTML-document-opbouw santekraam:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<div class="container">
    <p><?php
    if (isset($_SESSION['logIn'])) {
        ?>
Je bent ingelogd als: <?php echo htmlspecialchars($_SESSION['username'], ENT_QUOTES, 'UTF-8') ?><?php
    } else {
        ?>
Je bent niet ingelogd.<?php
    }
    ?>
</p>
</div>
 
Bart de kinkelaar

bart de kinkelaar

26/01/2015 20:13:02
Quote Anchor link
AfbeeldingIk heb het geprobeerd met jouw code alleen dan geeft hij automatisch aan dat ik niet ingelogd ben, al ben ik het wel.

De code in het plaatje is mijn Checklogin code.
Gewijzigd op 26/01/2015 20:14:45 door bart de kinkelaar
 
- Ariën  -
Beheerder

- Ariën -

26/01/2015 20:15:21
Quote Anchor link
We hebben ook code-tags om je code op kwijt te kunnen.
Verder hoort "true" niet tussen quotes op lijn nummertje... euh..... bijna onderaan.
Gewijzigd op 26/01/2015 20:15:40 door - Ariën -
 
Bart de kinkelaar

bart de kinkelaar

26/01/2015 20:17:11
Quote Anchor link
En die code tags zijn?
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
?

[size=xsmall][i]Toevoeging op 26/01/2015 20:18:21:[/i][/size]

<!DOCTYPE html>
<html lang="en">
<?php
    session_start();  
?>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Home - FIFA Holland</title>
    <!-- Bootstrap Core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- Custom CSS -->
    <link href="css/shop-item.css" rel="stylesheet">
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
        <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    <span class="sr-only">navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="index.html"><img src="FHFIFA.png" height="35"/></a class>

            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li>
                        <a href="#">Forum</a>
                    </li>
                    <li>
                        <a href="#">Services</a>
                    </li>
                    <li>
                        <a href="#">Contact</a>
                    </li>
                </ul>
            </div>
            <!-- /.navbar-collapse -->
        </div>
        <!-- /.container -->
    </nav>
    <!-- Page Content -->
    <div class="container">
        <div class="row">
            <div class="col-md-3">
                <p class="lead">FIFA Algemeen</p>
                <div class="list-group">
                    <a href="#" class="list-group-item active">Home</a>
                    <a href="AlgNieuws.php" class="list-group-item"  style="background-color: lightgray">Nieuws</a>
                </div>
                <p class="lead">FIFA 15</p>
                <div class="list-group">
                    <a href="fifa15.php" class="list-group-item" style="background-color: lightgray">Nieuws</a>
                    <a href="Fifa15Nieuws.php" class="list-group-item"  style="background-color: lightgray">Online Poule</a>
                </div>
                <p class="lead">FIFA 14</p>
                <div class="list-group">
                    <a href="Fifa14.php" class="list-group-item"  style="background-color: lightgray">Nieuws</a>
                    <a href="Fifa14Nieuws.php" class="list-group-item"  style="background-color: lightgray">Online Poule</a>
                </div>
                <p class="lead">FH Account<p>
                <div class="list-group">
                    <a href="FHRegistreren.php" class="list-group-item"  style="background-color: lightgray">Registreren</a>
                    <a href="FHLogin.php" class="list-group-item"  style="background-color: lightgray">Inloggen</a>
                </div>
            </div>
            <div class="col-md-9">
                <div class="thumbnail">
                    <a class="img"><img src="FHfifa2.png" height="130"/></a class>
                    <div class="caption-full">
                        <h4 class="pull-right">23-1-2015</h4>
                        <h4><a href="#"><center><h3><b>FIFA Holland is online!</b></h3></center></a>
                        </h4><center>
                        <p>De gloednieuwe FIFA-community "FIFA Holland" is eindelijk online!</p>
                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
                   </center> </div>
                    <div class="ratings">
                        <p class="pull-right">1 reactie</p>
                        <p>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star-empty"></span>
                            4.0 sterren
                        </p>
                    </div>
                </div>
                <div class="well">
                    <div class="text-right">
                        <a class="btn btn-success">Reageer!</a>
                    </div>
                    <hr>
                    <div class="row">
                        <div class="col-md-12">
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star"></span>
                            <span class="glyphicon glyphicon-star-empty"></span>
                            Bert
                            <span class="pull-right">10 dagen geleden</span>
                            <p>Eindelijk, kon niet wachten! </p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- /.container -->
    <div class="container">
        <hr>
        <!-- Footer -->
        <footer>
            <div class="row">
                <div class="col-lg4">
                    <p>Copyright &copy; FIFA Holland 2014</p>
</div>
<body>
                </div>
            </div>
        </footer>
    </div>
    <!-- /.container -->
    <!-- jQuery -->
    <script src="js/jquery.js"></script>
    <!-- Bootstrap Core JavaScript -->
    <script src="js/bootstrap.min.js"></script>
</body>
</html>
<div class="container">
    <p><?php
    if (isset($_SESSION['logIn'])) {
        ?>
Je bent ingelogd als: <?php echo ($_SESSION['logIn']) ?><?php
    } else {
        ?>
Je bent niet ingelogd.<?php
    }
    ?>
</p>
</div>
Gewijzigd op 26/01/2015 20:17:39 door bart de kinkelaar
 
- Ariën  -
Beheerder

- Ariën -

26/01/2015 20:19:10
Quote Anchor link
[code] en [/code], zie ook de 'Meest gestelde vragen'.

Om terug te komen op je code, er mag geen HTML of zichtbare witregels voor je session_start(); staan. Nu staat je doctype er nog boven.
Gewijzigd op 26/01/2015 20:20:09 door - Ariën -
 
Bart de kinkelaar

bart de kinkelaar

26/01/2015 20:19:31
Quote Anchor link
Checklogin is stuk korter;)
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
<?php
session_start(); // Start a new session
$con=mysqli_connect("localhost","root","superbart","fifaholland");
// Check connection
if (mysqli_connect_errno())
{

echo "Failed to connect to MySQL: " . mysqli_connect_error();
};


// Get the data passed from the form
$username = $_POST['username'];
$password = $_POST['password'];

// escape variables for security
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);

$sql = "select * FROM users WHERE username = '$username' and password = '$password'";
$result = mysqli_query($con, $sql) or die ( mysql_error() );          

$nrOfRows = mysqli_num_rows($result);
if ($nrOfRows > 0)
{

    $_SESSION['logIn'] = "true";
    header("Location:index.html"); // This is wherever you want to redirect the user to    
}
else
{
    header("Location:notlogin.php");
}

mysqli_close($con);
?>
 
- Ariën  -
Beheerder

- Ariën -

26/01/2015 20:21:24
Quote Anchor link
Haal die quotes weg om true op lijn nummer 24. Het is namelijk een boolean die true of false kan zijn.
Gewijzigd op 26/01/2015 20:21:42 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

26/01/2015 20:24:56
Quote Anchor link
index.html <---> PHP

???

Verwerkt jouw webserver ook PHP voor pagina's met de extensie .html?

Daarnaast: Je start je sessie nadat je al begonnen bent met het versturen van je document. Normaal levert dat een foutmelding op.

Staat het rapporteren van fouten aan?
Gewijzigd op 26/01/2015 20:26:45 door Thomas van den Heuvel
 
Bart de kinkelaar

bart de kinkelaar

26/01/2015 20:27:49
Quote Anchor link
Het veranderen van de plek van Session start heeft niet geholpen

Toevoeging op 26/01/2015 20:32:36:

Als ik ingelogd ben krijg ik "Ingelogd als true", dat staat er als ik
het onderaan de index.php zo heb staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlspecialchars($_SESSION['logIn'], ENT_QUOTES, 'UTF-8') ?>


heb ik op de plek van logIn, username staan dan werkt hij al helemaal niet want dan vind hij Username niet.

Toevoeging op 26/01/2015 20:33:47:

Bart de kinkelaar op 26/01/2015 20:27:49:
Het veranderen van de plek van Session start heeft niet geholpen

Toevoeging op 26/01/2015 20:32:36:

Als ik ingelogd ben krijg ik "Ingelogd als true", dat staat er als ik
het onderaan de index.php zo heb staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlspecialchars($_SESSION['logIn'], ENT_QUOTES, 'UTF-8') ?>


heb ik op de plek van logIn, username staan dan werkt hij al helemaal niet want dan vind hij Username niet.


EDIT: bij true haakjes weggehaald. Nu staat her Ingelogd als: 1.
 
- Ariën  -
Beheerder

- Ariën -

26/01/2015 20:37:40
Quote Anchor link
Je moet na het inloggen wel je username ophalen met een query, of opslaan en vervolgens ophalen uit je sessie.

Je zet nu immers zelf in 'logIn' een true neer, en als je dat echo'ed, dan krijg je dat ook te zien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $_SESSION
['username'] = $_POST['username'];
?>
Gewijzigd op 26/01/2015 20:38:34 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

26/01/2015 20:37:50
Quote Anchor link
Oh snap, je moet natuurlijk $_SESSION['username'] afdrukken, niet $_SESSION['logIn'].

Op elke pagina waar je sessies / $_SESSION wilt gebruiken moet ergens session_start() aangeroepen worden.

Ik zie trouwens nergens in je code een regel waarbij $_SESSION['username'] een waarde krijgt, je stelt alleen maar $_SESSION['logIn'] in.

Misschien ligt het daar aan :).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.