session ['naam'] van inlogsysteem.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob

Rob

30/05/2007 16:59:00
Quote Anchor link
All, ik maak gebruik van het grote inlogscript hier op de site. Maar ik ben tevergeefs aan het proberen om de 'session'naam in een echo te krijgen...is iemand dit gelukt?? ik kan wel de user_id tevoorschijn toveren.

Dit staat bovenaan mijn pagina die het moet weergeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
print("Welkom  <b>".$_SESSION['user_naam']."</b> je bent nu ingelogd<br>\n");
print("<a href=\"login/useropties.php?".session_name()."=".session_id()."\">Profiel wijzigen</a><br>\n");
print("<a href=\"login/uitloggen.php?".session_name()."=".session_id()."\">Uitloggen</a>");


helaas werkt die usernaam dus niet. Dit is de loginpagina
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
<?
// Groot Inlogsysteem versie 2
// Copyright Jorik Berkepas
// Support by [email protected] (MSN|Email)
// Pagina: inloggen.php: Inloggen

include("config.php");
include("htmltop.php");

if(isset($_SESSION['user_id'])) {
 ?>

 Je bent reeds ingelogd.
 <script language="Javascript" type="text/javascript">
  location.href='<?= $loginpage ?>';
 </script>
 <?
}else{
 if(isset($_COOKIE['user_id'])) {
  // Cookie uitlezen, sessie aanmaken
  $sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
  $query = mysql_query($sql);
  $rij = mysql_fetch_object($query);
  $id = htmlspecialchars($rij->id);
  $status = htmlspecialchars($rij->status);
  $dbpass = htmlspecialchars($rij->wachtwoord);
  $actief = htmlspecialchars($rij->actief);
  if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
   $_SESSION['user_id'] = $id;
   $_SESSION['user_status'] = $status;
   $_SESSION['user_naam'] = $naam;
   ?>

   Er is weer een sessie aangemaakt. Je wordt doorverwezen.
   <script language="Javascript" type="text/javascript">
    location.href='<?= $loginpage ?>';
   </script>
   <?
  }else{
   echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
   setcookie("user_id", "", time() - 3600);
   setcookie("user_password", "", time() - 3600);
  }
 }
else{
  if(isset($_POST['submit'])) {
   // Inloggen
   $sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
   $query = mysql_query($sql);
   $rij = mysql_fetch_object($query);
   $dbpass = htmlspecialchars($rij->wachtwoord);
   $userpass = md5($_POST['pass']);
   $userid = htmlspecialchars($rij->id);
   $userstatus = htmlspecialchars($rij->status);
   $useractief = htmlspecialchars($rij->actief);
   if($dbpass == $userpass) {
    if($useractief == 1) {
     $_SESSION['user_id'] = $userid;
     $_SESSION['user_status'] = $userstatus;
     $_SESSION['user_naam'] = $usernaam;
     if($_POST['cookie'] == "do") {
      setcookie("user_id", $userid, time() + 365 * 86400);
      setcookie("user_password", $dbpass, time() + 365 * 86400);
     }

     ?>

     Je bent succesvol ingelogd.<br />
     Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
    
     <script language="Javascript" type="text/javascript">
      location.href='<?= $loginpage ?>';
     </script>
     <?
    }else{
     echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
    }  
   }
else{
    echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
   }
  }
else{
   // Inlogform
   ?>

   <form method="post" action="inloggen.php">
    <p>&nbsp;</p>
    <table width="200" border="0" align="center">
      <tr>
        <td><div align="center"><img src="logo.gif" width="117" height="103" /></div></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <table align="center">
     <tr>
      <td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
     </tr>
     <tr>
      <td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
     </tr>
     <tr>
      <td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
     </tr>
     <tr>
      <td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
     </tr>
    </table>
    <small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
   </form>
   <?
  }
 }
}

include("htmlbottom.php");
?>


En ik heb het heel hard nodig..... Want die naam wordt later weer in een db opgeslagen
Gewijzigd op 01/01/1970 01:00:00 door Rob
 
PHP hulp

PHP hulp

20/11/2024 11:40:55
 

30/05/2007 17:06:00
Quote Anchor link
Waarom zou je hem naar het scherm willen schrijven?

Dat is niet nodig als je hem de DB in wil jassen hoor...
Je moet btw wel even session_start() bovenaan de pagina zetten en ook error_reporting(E_ALL), dan had je dit gezien in de vorm van een error.
 
Rob

Rob

30/05/2007 17:08:00
Quote Anchor link
Nou ik wil graag dat er op het scherm komt "welkom pietje puk" Als ik dit voor elkaar krijg ben ik zeer tevreden....

En die session start die staat er ook. Ik krijg zonder die error reporting dus ook wel de error dat die deze session variabele niet herkent. De vraag is dus waar ik moet zijn om deze toch herkenbaar te maken. Zoals gezegtd werkt het wel met $_session [user_id]
Gewijzigd op 01/01/1970 01:00:00 door Rob
 
K i p

K i p

30/05/2007 17:16:00
Quote Anchor link
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
<?php
    $user_id
= mysql_real_escape_string ( $_SESSION [ 'user_id' ] );
    
    $sql = "
        SELECT
            gebruikersnaam
        FROM
            gebruikers
        WHERE
            gebruikersid = "
. $user_id . "
        LIMIT
            1
    "
;
    
    if ( !$res = mysql_query ( $sql ) )
    {

        # Er ging iets fout met de sql.
        # Welke fout? Dat staat in mysql_error ( )
        # Welk foutnummer? Dat staat in mysql_errno ( )

    }
    else
    {
        if ( mysql_num_rows ( $res ) > 0 )
        {

            $rij = mysql_fetch_assoc ( $res );
            $naam = $rij [ 'gebruikersnaam' ];
            
            echo 'Hallo ' . $naam . '!';
        }

        else
        {
            # Gebruikersnaam niet gevonden
        }
    }

?>
Hoi

/me slaps Niek
 
Eric Cartman

Eric Cartman

30/05/2007 17:17:00
Quote Anchor link
Boris, gebruik nou eens de PEAR standaard :P
 
Niek s

niek s

30/05/2007 17:19:00
Quote Anchor link
Ik zou wel met een if-je controleren of de sessie wel is geset.
Anders krijg je zoiets van:

Welkom:
(niks erachter aan dus)

/slap Boris
/msg LoveServ ROSE Boris
/msg LoveServ ADMIRER Boris
 
Rob

Rob

30/05/2007 17:24:00
Quote Anchor link
Vinden jullie dit niet wat omslachtig. Die sessie is wel gezet in ieder geval. Maar omdat die [user_id] wel gewoon mee kan komen zou het toch maar een kleine aanpassing zijn om ook die naam daar bij te gooien of heb ik het nu helemaal fout....
 
Rob

Rob

30/05/2007 17:30:00
Quote Anchor link
Nou ik heb die van boris even erin geplakt en krijg het voor elkaar maaaaarr ook een melding:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
 
Jesper Diovo

Jesper Diovo

30/05/2007 17:50:00
Quote Anchor link
Als ik het goed lees, gebruik je een sessie-side effect wat bestond totdat PHP 4.2.3 uitkwam. Dus waarschijnlijk ondersteund jouw PHP versie niet de sessie variabelen die in het script staan..

Maar da's toch raar, aangezien je de sessie user_id wel tevoorschijn krijgt.

Probeer eens, op Boris' manier, een functie aan te maken.
Met als inhoud dan Boris' script. Gooi die functie dan over de $_SESSION['user_id'] heen, en kijk wat eruit komt.

Bijv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
function getName($id)
{

// boris' script, ipv $_SESSION['user_id'] gebruik je nu $id

return $username;
// je geeft de variabele $username (waar dus uiteindelijk de gebruikersnaam in moet zitten) terug als uitkomst van de functie
// door dat laatste kun je de functie dus echoën.

}
?>


Succes ;)
 
Rob

Rob

30/05/2007 17:58:00
Quote Anchor link
Nou in ieder geval werkt het.... maar ik krijg die melding niet weg.


EDIT:: vreemd als ik de pagina vernieuw is die melding weg......?????
Gewijzigd op 01/01/1970 01:00:00 door Rob
 



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.