Hello,

Nu mijn vorige probleem is opgelost en het login systeem werkt zit ik met een nieuw probleem.

Ik wil een sessie variabele punten maken, en die vullen met de waarde in database kolom Punten van de gebruiker die inlogt.

In login.php heb ik dat als volgt opgelost:
<?php
$sql="SELECT * FROM $tbl_name WHERE Gebruikersnaam='$naam' and Wachtwoord='$wachtwoord' and Recht=0";
$result=mysql_query($sql);

$punten = $result['Punten'];

$count=mysql_num_rows($result);

if($count==1)
{

$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;
$_SESSION['punten'] = $punten;
?>

Het script loopt foutloos, maar dan gaat het door naar de volgende pagina, waar dit staat:

<?
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);

if(!isset($_SESSION['naam']))
{
header("location:spel.php");
}

$user = $_SESSION['naam'];
$recht = $_SESSION['recht'];
$punten = $_SESSION['punten'];


?>

...

<p><?php echo 'Je hebt ' . $punten . 'punten.' ?></p>


De output is slechts:
"Je hebt punten."
Dus totaal zonder variabele..

Iemand enig idee?
Als je geen error of notice krijgt dan zal de var leeg zijn.
Ja dat dacht ik inderdaad ook al.

Ik heb het nu net opgelost =)

Ik had een regel uit dat script van internet, waar stond dat ie werkte, maar ik heb er nog wat aan toegevoegd:
<?php
while($row = mysql_fetch_array($result, MYSQL_ASSOC))

$punten = $row['Punten'];
?>

Nu werkt het wel =)

Thanks voor het meedenken in elk geval!
Je bent vergeten om de informatie die vanuit de query komt in een array of iets te zetten. Ik zou het volgende doen overigens een klein aanpassing in de code om in de toekomst problemen te voorkomen.

<?php
$sql = 'SELECT *
FROM '. $tbl_name .'
WHERE Gebruikersnaam='. mysql_real_escape_string($naam) .'
AND Wachtwoord='. mysql_real_escape_string($wachtwoord) .'
AND Recht=0';
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);

$punten = $result['Punten'];

$count = mysql_num_rows($result);

if($count == 1) {
$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;
$_SESSION['punten'] = $punten;
}
?>
Ja dat in een array zetten is wat ik inmiddels met die regel heb gedaan =) Maar ik snap niet waarom dat moet? Wat is een array eigenlijk precies?
Even Googlen en je zult waarschijnlijk het antwoord vinden. Komt erop neer dat een array een rij met waardes is, dus je zult het in die format moeten plaatsen wil je er dus zo mee omgaan.
Ik heb het meermaals gegoogled maar snap het nog niet :P

nu heb ik nog precies zo'n zelfde regel met nieuwe variabelen:
<?php
$voornaam = $result['Naam'];
?>

maar dat werkt weer niet...
Mark Tielemans op 01/11/2010 14:04:26

Ik heb het meermaals gegoogled maar snap het nog niet :P

nu heb ik nog precies zo'n zelfde regel met nieuwe variabelen:
<?php
$voornaam = $result['Naam'];
?>

maar dat werkt weer niet...


De resultaten vanuit de query zijn gerelateerd aan de naam die ze dus hebben in de database. En vanuit je query neem ik dan aan dat het veld dat je bedoeld dus 'Gebruikersnaam' zou moeten heten in plaats van 'Naam'.
Nee, er zijn de velden Gebruikersnaam, Naam, Tussenvoegsel en Achternaam (en natuurlijk Punten).. Dus hij zou gewoon moeten werken.. Ook Achternaam doet t niet.. Zelfde fout als punten in eerste instantie gaf, de variabele verschijnt gewoon niet, zelfs geen php error..
Zo te zien werk jij met $row en niet met $result.
<?php
$voornaam = $row['Naam'];
?>
Sorry, kopieer foutje.. In mn script gebruik ik:
<?php

$sql="SELECT * FROM $tbl_name WHERE Gebruikersnaam='$naam' and Wachtwoord='$wachtwoord' and Recht=0";
$result=mysql_query($sql);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))

$punten = $row['Punten'];
$achternaam = $row['Achternaam'];

?>

En dat wil niet werken...

Reageren