[php] login -> met variable uit de tabel

Pagina: 1
Acties:

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Ik ben bezig met een loginscript. werkt allemaal leuk. Nu wil ik alleen de user ID (uid) in een session zetten.

dit is de code op dit moment (foutloos)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
        $Query = mysql_query("SELECT * FROM lokwa_users WHERE username = '$LoginNaam' AND password = '$LoginPassword'"); 
        $Results = mysql_num_rows($Query); 
         while ($row = mysql_fetch_array($Query));
        $uid = "3";

        If ($Results == '1') 
        {             
              $Login = "1";  
              session_register("Login"); 
              session_register("uid");
?>

Alleen de uid heb ik nu zelf erin gezet (in dit geval 3)
Deze plaatst hij ook keurig, maaar op het moment dat ik een variable uit de database (lokwa_users) dan gaat het fout.

Bij (mysql_fetch_array) => $uid = "".row["uid"]."";
krijg ik een parse error (Parse error: parse error in ...... on line 13 (en doet hij dus verder niks meer)
Bij (mysql_fetch_object) => $uid = "$row->uid";
krijg ik op de pagina waar ik die waarde opvraag krijg ik dit: Warning: Supplied argument is not a valid MySQL result resource in ......... on line 25
En als ikgewoon dus voor uid 3 invul krijg ik op deze pagina géén errors en op de pagina waar ik die waarde uit de session vraag óók niet.

wie helpt met dit vage probleem?

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


Verwijderd

Op donderdag 11 oktober 2001 09:18 schreef dombie-dom het volgende:
Ik ben bezig met een loginscript. werkt allemaal leuk. Nu wil ik alleen de user ID (uid) in een session zetten.

dit is de code op dit moment (foutloos)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
        $Query = mysql_query("SELECT * FROM lokwa_users WHERE username = '$LoginNaam' AND password = '$LoginPassword'"); 
        $Results = mysql_num_rows($Query); 
         while ($row = mysql_fetch_array($Query));
        $uid = "3";

        If ($Results == '1') 
        {             
              $Login = "1";  
              session_register("Login"); 
              session_register("uid");
?>
Ziet er netjes uit :).
Alleen de uid heb ik nu zelf erin gezet (in dit geval 3)
Deze plaatst hij ook keurig, maaar op het moment dat ik een variable uit de database (lokwa_users) dan gaat het fout.
Da's niet zo mooi.
Bij (mysql_fetch_array) => $uid = "".row["uid"]."";
krijg ik een parse error (Parse error: parse error in ...... on line 13 (en doet hij dus verder niks meer)
Bij (mysql_fetch_object) => $uid = "$row->uid";
krijg ik op de pagina waar ik die waarde opvraag krijg ik dit: Warning: Supplied argument is not a valid MySQL result resource in ......... on line 25
Fout nummer 2 is het gevolg van fout nummer 1.
Probeer het eens zo: $uid = $row[uid];

(Wat was er fout? Je had dubbele-dubbele aanhalingstekens die nergens goed voor waren, je had dubbele aanhalingstekens binnen de blokhaken en je had geen $ voor de var. naam).
En als ikgewoon dus voor uid 3 invul krijg ik op deze pagina géén errors en op de pagina waar ik die waarde uit de session vraag óók niet.
Allicht, want dan is deze correct ingesteld.
wie helpt met dit vage probleem?
Ik ;).

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Wat stom op om $ vergeten |:(

Maar oké nu heb ik dus
$uid = $row[uid];

nu krijg ik als ik opvraag:

deze foutmelding:
Warning: Supplied argument is not a valid MySQL result resource in ........ on line 25

Dit is voor de duidelijkheid effies de code:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
    include('./include/config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
    $sql2 = "SELECT username FROM lokwa_users WHERE uid=$uid";
    $result3 = mysql_query($sql2);
    while ($row = mysql_fetch_array($result3)) {
    echo "$row[username]";
    }   
?>

En ik heb dus de uid via die sessie erin gezet :(
en als ik gewoon $uid=3 (bij session_register) doe. Dan werkt hij wel. haalt hij keurig de username uit de database
maar als ik dit die via database in sessie plaatsen krijg ik dus foutmelding

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


Verwijderd

Op donderdag 11 oktober 2001 09:38 schreef dombie-dom het volgende:
Wat stom op om $ vergeten |:(

Maar oké nu heb ik dus
$uid = $row[uid];

nu krijg ik als ik opvraag:

deze foutmelding:
Warning: Supplied argument is not a valid MySQL result resource in ........ on line 25

Dit is voor de duidelijkheid effies de code:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
    include('./include/config.inc.php');
    $server = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname, $server); 
    $sql2 = "SELECT username FROM lokwa_users WHERE uid=$uid";
    $result3 = mysql_query($sql2);
    while ($row = mysql_fetch_array($result3)) {
    echo "$row[username]";
    }   
?>

En ik heb dus de uid via die sessie erin gezet :(
en als ik gewoon $uid=3 (bij session_register) doe. Dan werkt hij wel. haalt hij keurig de username uit de database
maar als ik dit die via database in sessie plaatsen krijg ik dus foutmelding
Probeer bij die query eens: WHERE uid='$uid'.

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Shit 2 stomme kleine dingen van mij kant |:(

Denk ik dat het complexe problemen zijn.
ben ik de 1e keer '$' vergeten en de 2e keer 2x '

lekkerrrrr

naja het doet het nu wel!

tnx!

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
HELPPPPP nee hè....

oké hij geeft foutmeldingen meer bij het ophalen uit de sessie. Nu geeft hij gewoon helemaal niks weer :(

maar hij zet d'r ook NIKS in :( in die session :(
(ik had de session effies ge-echo'ed)

dit is de code om iets in die sessions te zetten
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
        $Query = mysql_query("SELECT * FROM lokwa_users WHERE username = '$LoginNaam' AND password = '$LoginPassword'"); 
        $Results = mysql_num_rows($Query); 
         while ($row = mysql_fetch_array($Query));
        $uid = $row[uid];
        // $uid = "3";

        If ($Results == '1') 
        {             
              $Login = "1";  
              session_register("Login"); 
              session_register("uid");
?>


waarom zet hij niks in die session (uid!!!)
die ik wel uit de database haal: > $uid = $row[uid];

dacht ik dat alles werkte. hebbie dit weer....

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

PHP:
1
2
3
4
<?
while($row = mysql_fetch_array($result));
    echo 'hoi';
?>

levert exact 1x hoi op... zelf als er 500 rows uit komen...

Klaar voor een nieuwe uitdaging.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op donderdag 11 oktober 2001 10:33 schreef chem het volgende:
PHP:
1
2
3
4
<?
while($row = mysql_fetch_array($result));
    echo 'hoi';
?>

levert exact 1x hoi op... zelf als er 500 rows uit komen...
ja duhhhhh.
en wat wil je hiermee zeggen?

ik haal toch gewoon de variable uit de database: $row[uid]

voor die $uid = "3"; staan '//'

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

hij wil zeggen dat je waarschijnlijk ergens een ; teveel hebt staan

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
oké bedankt!

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op donderdag 11 oktober 2001 10:43 schreef dombie-dom het volgende:

[..]

ja duhhhhh.
en wat wil je hiermee zeggen?

ik haal toch gewoon de variable uit de database: $row[uid]

voor die $uid = "3"; staan '//'
goed lezen :)

het gaat hier niet om de vraag wat er uit de database komt maar om wat je er mee doet...

Klaar voor een nieuwe uitdaging.


Verwijderd

Je moet aan het begin van je script

session_register("uid") doen.

als je slim bent doe je daar ook:

if(!isset($uid))
$uid=0;
dan kun je later checken of iemand is ingelogd met ($uid!=0)
.

Pas daarna set je met je mysqlzut die uid als iemand inlogt.
En vergeet niet in al je files die session_register("uid") bovenaan te zetten als je die wilt gebruiken.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

fladder: wat een afschuwelijke methode met !isset() en !=0...

doe dan if ((int)$HTTP_SESSION_VARS["uid"] > 0) {...} oid...

Klaar voor een nieuwe uitdaging.


Verwijderd

Chem: bedoel je niet is_int / is_integer of is_long?
int() is toch geen functie of wel?

Verwijderd

Op donderdag 11 oktober 2001 11:07 schreef daniel_hoenderdos het volgende:
Chem: bedoel je niet is_int / is_integer of is_long?
int() is toch geen functie of wel?
Hij cast naar int, tis geen functie.

Verwijderd

Op donderdag 11 oktober 2001 11:06 schreef chem het volgende:
fladder: wat een afschuwelijke methode met !isset() en !=0...
[..]
ok, die !isset() is wel ranzig, maar stel ik heb een groot script en ik wil vaak weten of de client ingelogd is, dan is het toch niet lelijk om 0 voor anonymous te gebruiken?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op donderdag 11 oktober 2001 11:30 schreef fladder het volgende:

[..]

Hij cast naar int, tis geen functie.
pcies... als je bv. door een 'hack' een string ipv. getal zou terugkrijgen (zeer onwaarschijnlijk, maar ja je weet het niet) dan is de integer waarde van een string nul, wat ook het geval is als er geen waarde voor $uid zou zijn...

Zo weet je zeker dat je uid een getal is...

Klaar voor een nieuwe uitdaging.

Pagina: 1