login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Profiel Script (Opgelost)

Offline SomaQan - 22/02/2007 16:54
Avatar van SomaQanPHP beginner mijn profiel script werkt wel maar hij pakt telkens alleen gebruiker 1 z'n profiel in plaats van dat hij voor elk ingelogd zijn profiel moet pakken

Script is overigens niet door mij gemaakt maar wel een beetje aangepast naar mij wensen 

  1. <?php
  2.  
  3. if ($_SESSION['id'] == 0) {
  4.  
  5. header('location: ./');
  6.  
  7.  
  8. }
  9. include("config.php");
  10.  
  11. if(isset($_SESSION['id']) && is_numeric($_SESSION['id']))
  12. {$id = $_SESSION['id'];}
  13. else{
  14. echo "<b>Dit lid bestaat niet.</b>";
  15. }
  16. $sql = "SELECT * FROM lid WHERE id='". $id ."'";
  17. $query = mysql_query($sql);
  18. while ($show = mysql_fetch_object($query))
  19. {
  20. ?>
  21. <table>
  22. <tr>
  23. <td><b>Naam: </b></td>
  24. <td><? echo htmlspecialchars($show->naam); ?></td>
  25. </tr>
  26. <tr>
  27. <td><b>Gebruikersnaam: </b></td>
  28. <td><? echo htmlspecialchars($show->username); ?></td>
  29. </tr>
  30. <tr>
  31. <td><b>Email: </b></td>
  32. <td>
  33. <? echo $show->email; ?>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>
  38. <b>Leeftijd: </b>
  39. </td>
  40. <td>
  41. <? echo $show->leeftijd; ?>
  42. </td>
  43. </tr>
  44. <tr>
  45. <td><b>Woonplaats: </b></td>
  46. <td><? echo $show->woonplaats; ?></td>
  47. </tr>
  48. </table>
  49. <?
  50. }
  51. ?>

16 antwoorden

Gesponsorde links
Offline Nrzonline - 22/02/2007 16:58 (laatste wijziging 22/02/2007 17:00)
Avatar van Nrzonline PHP ver gevorderde Waar wordt je $_SESSION['id'] gezet?
denk dat daar het probleem zit.
include dus ook even pagina waar je $_SESSION['id'] zet
(je login o.i.d?)

Dit stukje script echoëd namelijk de gegevens van het opgegeven
$_SESSION['id'] en die geeft aan waar hij de gegevens van moet ophalen, dus lijkt me sterk als het hier aan kan liggen 
Offline roelh - 22/02/2007 17:14
Avatar van roelh PHP gevorderde Hij hoeft de inlog pagina niet te includen, dat is onzin.
Als je inlogd en je zte een session, dan word dat altijd herkent, mits je session_start(); gebruikt.
K denk dat $_SESSION['id'] niet goed is.
Heb probleem zelf ook gehad een x, en toen had ik ipv $_SESSION['sid'] gewoon['id'] gedaan.
Kijk daar eens naar
Offline Nrzonline - 22/02/2007 17:19 (laatste wijziging 22/02/2007 17:21)
Avatar van Nrzonline PHP ver gevorderde Roelh, je snapt mij niet ;) Mijn opmerking had ten eerste al niets met 'herkenning' van sessions te maken. En ten tweede zeg je zelf dat je denkt dat session_id niet goed is. En waar krijgt de sessie zijn waarde? Juist, niet in de pagina die hij hier zojuist heeft geinclude. Oftwerwijl, waar moet je gaan kijken? Waar de sessie zijn waarde krijgt, die hij in dit script weer wil gaan uitlezen.

Jij begint hier nu dus gewoon te gokken naar het probleem. Misschien gok je goed, maar het kan tig andere oorzaken hebben.
Offline X3ore - 22/02/2007 17:20 (laatste wijziging 22/02/2007 17:21)
Avatar van X3ore HTML interesse Gast ik word echt ziek van je dit is al de 2de keer dat ik je hetzelfde topic achter elkaar hier zie posten en op wmcity geen gedult fzo?

En zoals ik al op wmcity zei, waarom word het id uit een sessie gehaalt? en niet met GET? nu zal je altijd het profiel zien met het id in JOUW sessie..
Offline roelh - 22/02/2007 17:21
Avatar van roelh PHP gevorderde Sorry NRZOnline, heb je verkeerd begrepen
Offline SomaQan - 22/02/2007 19:19
Avatar van SomaQan PHP beginner mijn inlog script

  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if(isset($_POST['submit']))
  6.  
  7. {
  8.  
  9.  
  10. $query = mysql_query(" SELECT ID FROM lid WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".md5($_POST['password'])."' AND naam = '".mysql_real_escape_string($_POST['naam'])."' ")or die(mysql_error());
  11.  
  12. if(mysql_num_rows($query) != 0)
  13.  
  14. {
  15.  
  16. $_SESSION['id'] = 1;
  17. $_SESSION['username'] = addslashes($_POST['username']);
  18. $_SESSION['naam'] = addslashes($_POST['naam']);
  19.  
  20. header ("Location: index.php");
  21.  
  22. }
  23.  
  24. else
  25.  
  26. {
  27.  
  28. echo "Dit account bestaat niet !<br />";
  29. die("Klik <a href='javascript:history.go(-1)'>hier</a> om terug te gaan");
  30.  
  31. }
  32.  
  33. }
  34.  
  35. else
  36.  
  37. {
  38.  
  39. echo "
  40.  
  41. <form method='post' action=''>
  42. Gebruikernaam: <input type='text' name='username' /><br />
  43. Wachtwoord: <input type='password' name='password' /><br />
  44. Naam: <input type='text' name='naam' /><br />
  45. <input type='submit' name='submit' value='Inloggen' />
  46. </form>
  47. ";
  48.  
  49. }
  50.  
  51. ?>
Offline Nrzonline - 22/02/2007 19:31 (laatste wijziging 22/02/2007 19:34)
Avatar van Nrzonline PHP ver gevorderde Dat bedoel ik.. $_SESSION['id'] = 1; ofterwijl elke ingelogde gebruiker krijgt als ID 1, wat dus niet moet.

  1. <?PHP
  2.  
  3. # Je query zegt dat hij de ID van de user moet
  4. # pakken waar de username $_POST['username'] is, en
  5. # wachtwoord $_POST['wachtwoord'] is. Nu moet je dus de
  6. # output van $query (de gebruiker zijn ID) in $_SESSION['id']
  7. # zetten.
  8.  
  9. $_SESSION['id'] = mysql_result ($query, 0);
  10.  
  11. ?>


Offline roelh - 22/02/2007 19:33 (laatste wijziging 22/02/2007 19:42)
Avatar van roelh PHP gevorderde
  1. $_SESSION['id'] = 1;


Je zet hem dus ALTIJD op 1
Niet slim neen
doe dan

$arr = mysql_fetch_assoc($query);

$_SESSION['id'] = arr['id'];

offtopic:
Wat een timing weer he:cool:
Offline SomaQan - 22/02/2007 19:46
Avatar van SomaQan PHP beginner oke en wat moet ik nu bij mij index zetten ?

  1. <?php
  2.  
  3.  
  4. if ($_SESSION['id'] = mysql_result ($query, 0)) {
  5.  
  6. echo 'U Bent ingelogd <IMG SRC="gb.gif"><b>'.$naam.'</b>!<br />';
  7. echo '<a href="profiel.php">Profiel</a><br />';
  8. echo '<a href="wwz.php">Wachtwoord Wijzigen</a><br />';
  9. echo '<a href="uitloggen.php">Uitloggen</a>';
  10.  
  11. } else {
  12.  
  13. echo "U bent niet ingelogd!<br />";
  14. echo '<a href="registreren.php">Aanmelden</a><br />';
  15. echo '<a href="inloggen.php">Inloggen</a>';
  16.  
  17. }
  18.  
  19. ?>


Want ik krijg deze fout

  1. Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/med013/domains/mootje.medos.be/public_html/index.php on line 5
Offline Nrzonline - 22/02/2007 19:59 (laatste wijziging 22/02/2007 20:02)
Avatar van Nrzonline PHP ver gevorderde
  1. <?PHP
  2. if ($_SESSION['id'] = mysql_result ($query, 0))
  3. {
  4. // Code hier
  5. }
  6. ?>


Je probeert hier in een if (voorwaarde) $_SESSION['id'] een waarde te geven. Dat gaat natuurlijk nooit werken 

Een vergelijking doe je door een dubbele is "=" te gebruiken..
en ik heb ook een foutje gemaakt. Je kunt beter (zoals roelh zei)
een assoc gaan gebruiken:

  1. <?PHP
  2.  
  3. $asUserId = mysql_fetch_assoc ($sQuery);
  4. $_SESSION['id'] = $asUserId['id']
  5.  
  6. ?>


Als je $_SESSION['id'] met iets wilt gaan vergelijken doe je dat zo:

  1. <?PHP
  2.  
  3. if ($_SESSION['id'] == $vergelijkingsVar)
  4. {
  5. // code hier uitvoeren
  6. }
  7.  
  8. ?>


Een enkele "=" is om een variabel een waarde toe te wijzen. Dat kun je dus niet tijdens een "if()" of "elseif()" doen. Want bij deze gaat het altijd om een controle of een vergelijking.
  1. <?PHP
  2. $var = 12; // Nu krijgt de variabel $var de waarde 12
  3. $var == 12; // Nu controleer je of variabel $var gelijk aan 12 is.
  4. ?>
Offline SomaQan - 22/02/2007 20:14
Avatar van SomaQan PHP beginner ik heb me indez zo nu

  1. <?php
  2.  
  3. include('config.php');
  4.  
  5.  
  6. if ($_SESSION['id'] == $vergelijkingsVar)
  7. {
  8.  
  9. echo 'U Bent ingelogd <IMG SRC="gb.gif"><b>'.$naam.'</b>!<br />';
  10. echo '<a href="profiel.php">Profiel</a><br />';
  11. echo '<a href="wwz.php">Wachtwoord Wijzigen</a><br />';
  12. echo '<a href="uitloggen.php">Uitloggen</a>';
  13.  
  14. } else {
  15.  
  16. echo "U bent niet ingelogd!<br />";
  17. echo '<a href="registreren.php">Aanmelden</a><br />';
  18. echo '<a href="inloggen.php">Inloggen</a>';
  19.  
  20. }
  21.  
  22. ?>


en me inlog zo

  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if(isset($_POST['submit']))
  6.  
  7. {
  8.  
  9.  
  10. $query = mysql_query(" SELECT ID FROM lid WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".md5($_POST['password'])."' AND naam = '".mysql_real_escape_string($_POST['naam'])."' ")or die(mysql_error());
  11.  
  12. if(mysql_num_rows($query) != 0)
  13.  
  14. {
  15.  
  16. $_SESSION['id'] = mysql_result ($query, 0);
  17. $_SESSION['username'] = addslashes($_POST['username']);
  18. $_SESSION['naam'] = addslashes($_POST['naam']);
  19.  
  20. header ("Location: index.php");
  21.  
  22. }
  23.  
  24. else
  25.  
  26. {
  27.  
  28. echo "Dit account bestaat niet !<br />";
  29. die("Klik <a href='javascript:history.go(-1)'>hier</a> om terug te gaan");
  30.  
  31. }
  32.  
  33. }
  34.  
  35. else
  36.  
  37. {
  38.  
  39. echo "
  40.  
  41. <form method='post' action=''>
  42. Gebruikernaam: <input type='text' name='username' /><br />
  43. Wachtwoord: <input type='password' name='password' /><br />
  44. Naam: <input type='text' name='naam' /><br />
  45. <input type='submit' name='submit' value='Inloggen' />
  46. </form>
  47. ";
  48.  
  49. }
  50.  
  51. ?>


Maar inloggen lukt mij niet :S volgens mij doe ik iets fout bij het session maar wat zou ik niet weten 
Offline roelh - 22/02/2007 21:22
Avatar van roelh PHP gevorderde Dit is een inlog scriptje van mij
Kijk hier eens naar

http://www.plaatscode.be/4340/

En met de query, nie kijken of een naam goed is, alleen gebruikersnaam en ww!
Offline Nrzonline - 22/02/2007 21:32 (laatste wijziging 06/11/2011 18:21)
Avatar van Nrzonline PHP ver gevorderde SomaQan, ik heb niet echt het gevoel dat je snapt wat je aan het doen bent. Je knipt en plakt klakkeloos $vergelijkingsVar zonder er bij na te denken.

Misschien is het handig om eens een tutorial te lezen over:
- Variabelen
- Vergelijkingen
- Sessies
- Mysql_fetch_assoc ()

of completer:
- Een login tutorial

Probeer is na te denken, en besef dat wij je dingen proberen uit te leggen ipv voor te kouwen. $vergelijkingsVar was bedoeld als een variabel waar hij $_SESSION['id'] mee zou moeten/kunnen vergelijken. (Waarom jij dat daar wilt vat ik nog steeds niet, maarja..)

Maar wat jij hier wilt:
  1. <?PHP
  2. if ($_SESSION['id'] == $vergelijkingsVar)
  3. {
  4. // echoën
  5. }
  6. ?>

Is controleren of de sessie bestaat (ofterwijl, of de gebruiker is ingelogged)

Als dat het geval is, dan doe je dit:

  1. <?PHP
  2. // Controleren of $_SESSION['id] wel bestaat en niet leeg is
  3. if (isset ($_SESSION['id']) && !empty ($_SESSION['id']))
  4. {
  5. // echoën
  6. }
  7. ?>


Ook snap ik niet waar jij $naam; vandaan haalt.. als je die wilt ophalen mbv het id van de gebruiker dan doe dit bijvoorbeeld zo:

  1. <?PHP
  2. if (isset ($_SESSION['id']) && !empty ($_SESSION['id']))
  3. {
  4. $qSelUsername = mysql_query (
  5. "SELECT username
  6. FROM users
  7. WHERE id = " . $_SESSION['id']);
  8. $asUsername = mysql_fetch_assoc ($qSelUsername);
  9. $sName = $asUsername['username'];
  10.  
  11. echo $sName; // echoëd gebruiker als id bestaat (wel controleren natuurlijk, maar dat doe je maar zelf ;)
  12. }
  13. ?>


mocht je meer gegevens van een gebuiker willen weergeven,
bijvoorbeeld zijn voornaam, achternaam, leeftijd etc dan doe je dit zo:

  1. <?PHP
  2. if (isset ($_SESSION['id']) && !empty ($_SESSION['id']))
  3. {
  4. // Bij deze query komt dus voornaam, achternaam, leeftijd er nog bij! Dit gaan we met een mooie while -> assoc doen.
  5. $qSelGegevens = mysql_query (
  6. "SELECT gebruikersnaam, voornaam, achternaam, leeftijd
  7. FROM users
  8. WHERE id = " . $_SESSION['id']);
  9. while ($asGegevens = mysql_fetch_assoc($qSelGegevens))
  10. {
  11. $sGeberuikersnaam = $asGegevens['gebruikersnaam'];
  12. $sVoornaam = $asGegevens['voornaam'];
  13. $sAchternaam = $asGegevens['achternaam'];
  14. $iLeeftijd = $asGegevens['leeftijd'];
  15. }
  16. echo "Welkom " . $sGebruikersnaam . "<br />";
  17. echo "Uw naam is " . $sVoornaam . " " . $sAchternaam . "<br />";
  18. echo "U bent " . $iLeeftijd . " jaar oud!";
  19. }
  20.  
  21. # Voorbeeld output:
  22.  
  23. # Welkom Nrzonline
  24. # Uw naam is sjaabonenstaak
  25. # U bent 18 jaar oud!
  26.  
  27. ?>
Offline riekele - 22/02/2007 22:53
Avatar van riekele PHP beginner while ($asGegevens = mysql_fetch_assoc)

misschien ff veranderen in dit ;)

while ($asGegevens = mysql_fetch_assoc($qSelGegevens))
Offline SomaQan - 22/02/2007 23:12
Avatar van SomaQan PHP beginner tnx hij doet het en inderdaad ik snap wel wat ik doe want ik heb de hele loginsysteem zelf gescript maar ik zal straks wel ff een paar tutorials goed door nemen
Offline Nrzonline - 22/02/2007 23:49
Avatar van Nrzonline PHP ver gevorderde Hmz, dom foutje ja.. krijg je hè, als je dingen niet test 
Thnx riekele
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.369s