Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

$_session onthoud de waarde die ik geef niet

Pagina: 1
Acties:
  • 247 views

  • DeathslayerNLL
  • Registratie: Oktober 2009
  • Laatst online: 21-11 11:13
Hallo tweakers!!

Omdat ik de vorige erg goed geholpen ben, hoop ik dat jullie mij misschien nog een keer te hulp willen schieten!
Ik heb de volgende code, waar iets waarschijnlijk niet klopt/in fout gaat..

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
<?php
session_start();
if (isset ($_POST["opsturen"])){
include("database/DB.inc.php");
$a = $_POST["gebruikersnaam"];
$b = $_POST["wachtwoord"];
$resultaat = query("SELECT * FROM members WHERE username='$a';");
$aantal = mysql_num_rows($resultaat);
if ($aantal == '0') { 
echo "Er was geen resultaat gevonden, inlognaam bestaat niet.".'<META HTTP-EQUIV=Refresh CONTENT="3; URL=inloggen.php">'; 
}
else { 
$login = mysql_fetch_object($resultaat);
if($b == $login->pass) { 

$_SESSION['naam'] = $a; 
session_register("$a");
session_register("$b");  

echo "U bent succesvol ingelogd, een moment.. ".'<META HTTP-EQUIV=Refresh CONTENT="3; URL=index.php">'; 

} else { 
echo "Uw inloggegevens kloppen niet, waarschijnlijk komt het wachtwoord niet overeen.".'<META HTTP-EQUIV=Refresh CONTENT="3; URL=inloggen.php">'; 
}
}
}
?>


Later vraag ik de $_session['naam'] aan met de volgende code:

PHP:
1
echo "<br/>Welcome, ". $_SESSION['naam'];


Alleen de uitvoer die ik krijg, is 12.

Ik zie totaal geen verband tussen de invoer en de uitvoer..
De gebruikersnaam waarmee ik inlog is Capsamon (een test acc.)
Dit heeft ook geen 12 karakters oid, dus ik ben enigzins het spoor bijster..

Zouden jullie mij kunnen helpen, met wat ik fout doe?

Ik heb geprobeerd de $_SESSION voor en na de registers te zetten, of zelfs helemaal bovenaan de pagina (buiten alle if`s) maar dit veranderd de uitvoer niet..

Alvast enorm bedankt!!

Gr,
Caspár

  • Klojum
  • Registratie: Augustus 2006
  • Laatst online: 10-10 10:59
session_start() moet op elke PHP-pagina aangeroepen worden, liefst bovenaan, en direct in het script zelf of via een INCLUDE()-opdracht.
daarmee moeten sessievariabelen gewoon kunnen meeliften naar de volgende pagina's.

  • mithras
  • Registratie: Maart 2003
  • Niet online
Caution
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

Example:
PHP:
1
2
3
4
5
6
7
8
9
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
In de manual haal je de informatie wat je fout doet ;)
  1. session_register gebruikt variabelen zonder $
  2. Het is überhaupt niet nodig gezien je $_SESSION al gebruikt

  • Klojum
  • Registratie: Augustus 2006
  • Laatst online: 10-10 10:59
Trouwens, session_register() is ondertussen prehistorisch.
Niet meer gebruiken dus.

  • DeathslayerNLL
  • Registratie: Oktober 2009
  • Laatst online: 21-11 11:13
@Klojum

Bedankt voor het bekijken van mijn code.
Als je letterlijk bedoeld bovenaan elke pagina, dan staat het al in de pagina (het aanroepen en opslaan heb ik op dezelfde pagina gezet)
Als je bedoeld in elk stuk php dat begint, dan klopt het inderdaad dat dat fout is, bij het 2e stuk (waar ik het oproep) staat namelijk nog geen session start.

@ mithras

Bedankt voor je input, ik heb dit ook toegevoegd aan mijn code.

De combinatie, of 1 van de 2 oplossingen, heeft gewerkt!
Ik krijg nu de correcte uitvoer..


Bedankt voor jullie hulp:D

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:48

MueR

Admin Devschuur® & Discord

is niet lief

Juist. Dit topic is, net als je vorige topic, redelijk basic zoekwerk. De vorige keer heb ik dat laten gaan, deze keer niet. We verwachten op GoT en zeker in de Devschuur een zekere mate van eigen inzet. Dat betekent foutmeldingen een keer in google of hier in de search gooien. Dat betekent kijken wat functies nu eigenlijk doen. Hoe je aan session_register bent gekomen weet ik niet, vast een of andere oude tutorial, maar een keer naar de manual page kijken had je antwoord gegeven. Dat betekent basic buggen (zie Devschuur® Beleid - Help, mijn script werkt niet (goed)).

Daarnaast staat je topic wederom in het verkeerde forum. PHP development hoort in Programming, zoals aangegeven in Waar hoort mijn topic?.

Lees voordat je een nieuw topic opent onze Quickstart even door, plus het lokale beleid in een subforum, dat voorkomt nieuwe slotjes.

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.