error met $_SESSION["username"]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mischa Gorinskat

Mischa Gorinskat

05/01/2005 23:07:00
Quote Anchor link
hey mensen

ik heb echt geen flauw idee wat er fout gaat, maar ik heb een login systeem gemaakt op mijn site. Dat werkt allemaal nog goed, tot ikdan op het idee kwam op de pagina na het inloggen:"Welkom, 'ingelogde'." Dat leek me vrij simpel gewoon met $_SESSION["username"] en een leuke query, maar het blijkt niet te werken. Hij heeft van het begin af aan 1 waarde aan $id toegekent en dat is 5, maakt niet onder welke naam ik inlog, venster refreshen, browser opnieuw openen, werkt allemaal niet.

-- nalogin.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
<?php
include("login/connection.php");

$sql = "SELECT id FROM login WHERE username='" . $_SESSION["username"]  ."' AND wachtwoord='". $_SESSION["wachtwoord"] . "'";
$id = mysql_query($sql);

$a = explode("#", $id);

$id = $a[1];

$sql2 = "SELECT l1.voornaam FROM ";
$sql2 .= "leden AS l1, login AS l2 ";
$sql2 .= "WHERE l1.id = " . $id . " AND l2.tid = " . $id;
$res = mysql_query($sql2);
$row = mysql_fetch_array($res);

echo $row[0];
?>
.
Je bent succesvol ingelogd.
<p>

Dit is een deel van de code, in de file die je te zien krijgt na de login pagina.

-- login_2.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
<?

$query
= "SELECT * FROM login WHERE username='" . $_POST["username"]  ."' AND wachtwoord='". $_POST["wachtwoord"] . "'";  

$result = mysql_query($query);  

if(mysql_num_rows($result) > 0)
      {
  
          $username = $_POST["username"];  
          $wachtwoord = $_POST["wachtwoord"];  
          $_SESSION["username"] = $username;  
          $_SESSION["wachtwoord"] = $wachtwoord;
?>


Met deze code haal ik de gegevens uit de velden die in het form zijn ingevuld.

Nu kan het aan mij liggen, dat ik iets niet zie, een stomme fout maak of zoiets maar bij $a[1] komt altijd de waarde 5 uit??? Of ik doe iets verkeerd met sessies??

alvast bedankt
Gewijzigd op 05/01/2005 23:09:00 door Mischa Gorinskat
 
PHP hulp

PHP hulp

23/05/2024 00:43:02
 
Alfred -

Alfred -

05/01/2005 23:25:00
Quote Anchor link
om sessies te zetten of te lezen, moet bovenaan, in elk document waar je een sessie gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
session_start();
?>

staan... voor alle andere output... :)
 
Mischa Gorinskat

Mischa Gorinskat

05/01/2005 23:41:00
Quote Anchor link
gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>


of moet je tussen de haakjes een naam geven, want nu krijg ik dus:

Notice: A session had already been started - ignoring session_start() in c:\easyphp1-7\www\jonkheid\login\beveiligd.php on line 10
 
Alfred -

Alfred -

05/01/2005 23:49:00
Quote Anchor link
Die nota wil zeggen dat je meer maals session_start() in je pagina hebt...
 
Mischa Gorinskat

Mischa Gorinskat

05/01/2005 23:54:00
Quote Anchor link
ja dat klopt, sorry ik ben misschien niet helemaal duidelijk geweest, in de index.php staat als eerste een
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

(helemaal boven aan zonder enige output ervoor)
daarna worden alle bestanden via een switch ingeladen, dus:
-het formpje word in geladen,
-daarna de pagina die controleert of de invoer overeenkomt met de database gegevens
-en tot slot de pagina nalogin.php waarop ik dus probeer de naam te weergeven, via $_SESSION["usernam"].
Gewijzigd op 05/01/2005 23:55:00 door Mischa Gorinskat
 
Alfred -

Alfred -

06/01/2005 00:04:00
Quote Anchor link
Ik begrijp je nu....
Waarom niet gewoon de username echoën?

Of probeer dit ;)
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
<?
$sql
= "SELECT id FROM login WHERE username='" . $_SESSION["username"]  ."'";
$res = mysql_query($sql);
if ($row = mysql_fetch_array($res)) {
  $id = $row['id']; // Geen idee hoe de rij noemt ?
}

$sql = "SELECT voornaam FROM leden WHERE id='" . $id . "'";
$res = mysql_query($sql);
if ($row = mysql_fetch_array($res)) {
  $voornaam = $row['voornaam'];
}

echo $voornaam;
?>


Begrijp namelijk niet waarom je de 2de keer uit meerdere tabellen selecteert ;) Misschien voor later in je script... Anyway, hoop dat dit je kan helpen...
 
Mischa Gorinskat

Mischa Gorinskat

06/01/2005 10:00:00
Quote Anchor link
hey man bedankt het werkt, ik snap achteraf gezein eigenlijk ook niet waarom ik dat uit twee tabellen heb zitten halen, maar het werkt

echt bedankt
 



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.