Toon posts:

Naam en e-mail adres uitlezen en weergeven

Pagina: 1
Acties:
  • 251 views

  • Wess
  • Registratie: februari 2005
  • Laatst online: 29-12-2012

Wess

Rookworst zonder R = ook worst

Topicstarter
Beste PHP'ers,

Dit is de code die we gebruiken:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
require("connect.php"); // connectie met database maken en database selecteren
session_start(); // start een sessie of zet een sessie voort

// controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren
if(isset($_POST['login'])) {
  if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") {
    // naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en
    // het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op
    // en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord.

    $naam  = $_POST['naam'];
    $wacht = md5($_POST['wacht']);
    $res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());

    // Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam
    if(mysql_num_rows($res) > 0) {
      $row = mysql_fetch_assoc($res);
      // aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5()
      // vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het
      // formulier opgegeven wachtwoord
      if(!strcmp($wacht, $row['pass'])) {
        // alle gegevens kloppen

        // v1.2 extra functionaliteit, onthouden login
        // wil de gebruiker zijn gegevens onthouden ?
        if(isset($_POST['memory'])) {
          // set cookie (voor 2 maanden) en onthoud het IP
          // gebruik hierbij het id van de gebruiker
          setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/");
          $ip = $_SERVER['REMOTE_ADDR'];
          mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
        }

        // vul sessievariabelen
        $_SESSION['suser']    = $naam;         // gebruikersnaam van ingelogd persoon
        $_SESSION['slevel']   = $row['level']; // bijbehorende gebruikersniveau
        $_SESSION['stime']    = time();        // de huidige tijd
        $_SESSION['smaxidle'] = 60 * 60;       // het aantal seconden inactiviteit
      } else {
        // wachtwoorden komen niet overeen, breek de sessie weer af
        $_SESSION = array();
        session_destroy();
      }
      // geef de resultaten van deze query weer vrij
      unset($row);
      mysql_free_result($res);
    }
    // ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina
    header("Location: login.php");
  }
}
?>

<!DOCTYPE HTML>
<html lang="nl" xml:lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" />
<title>Sporty</title>
<link rel="stylesheet" href="stylesheet.css">
</head>

<body>

<!-- begin container -->
<div id="container">

<div id="header"><a href="javascript: window.history.back(1)"><img src="img/button_terug.jpg" alt="Terug" width="68" height="30" class="button"></a></div>

<div id="main"><h2>Profiel overzicht</h2></div>
<div id="list">Gebruikersnaam: <?= $_SESSION['suser'] ?></div>
<?php

include "connect.php"; //verbinding maken
$query = "SELECT email FROM users";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd

while($record = mysql_fetch_object($sql)){

echo    "<div id=\"list\">$record->email</div>";
}

?>
<br />
<!-- einde container -->
</div>

</body>
</html>


Zoals hier te zien is:
code:
1
<div id="list">Gebruikersnaam: <?= $_SESSION['suser'] ?></div>
laat het script de gebruikersnaam helemaal goed zien. Nu willen we alleen ook het e-mail adres van de gebruiker laten zien. In de database heet die kolom 'email'. Wel kunnen we door te zeggen SELECT email FROM users alle e-mailadressen laten zien die in de database voorkomen. Maar we willen alleen die laten zien, van de gebruiker die op dit moment is ingelogd.

Iemand enig idee hoe we dat voor elkaar kunnen krijgen?

Bedankt!

Wessel

  • Reptile209
  • Registratie: juni 2001
  • Laatst online: 00:44

Reptile209

- gers -

SELECT email FROM users WHERE user = ingelogdeuser
?

If you're not part of the solution, you're part of the precipitate.


  • Wess
  • Registratie: februari 2005
  • Laatst online: 29-12-2012

Wess

Rookworst zonder R = ook worst

Topicstarter
Zo, dat is een snelle reactie!

Zou je iets meer uitleg kunnen geven? Ben beginner op dit gebied en ik weet niet exact wat je
bedoelt. Hoe roep ik achter WHERE daar de ingelogde user aan?

  • Cloud
  • Registratie: november 2001
  • Laatst online: 22:09

Cloud

Moderator FM / FP PowerMod

Moderatie Mobster

Op precies dezelfde manier als waarop je de inloggegevens van de gebruiker ophaalt. Je zou dat zelfs in dezelfde query kunnen combineren, scheelt je weer een extra rondje database.

Never attribute to malice that which can be adequately explained by stupidity.


  • SinergyX
  • Registratie: november 2001
  • Laatst online: 01:17

SinergyX

____(>^^(>0o)>____

Je maakt gewoon een session voor email aan?

Bij
// vul sessievariabelen
voeg je ook email toen, deze haal je via sessie weer op?

[Voor 52% gewijzigd door SinergyX op 04-11-2010 13:24]

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • Wess
  • Registratie: februari 2005
  • Laatst online: 29-12-2012

Wess

Rookworst zonder R = ook worst

Topicstarter
Iets dat ik al geprobeerd heb, en volgens mij bedoelen jullie dat is het volgende:

code:
1
$res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());


bovenstaand wordt:

code:
1
$res = mysql_query("SELECT id, pass, level, email FROM users where name='".$naam."'") or die(mysql_error());


Vervolgens:

code:
1
2
3
4
5
        $_SESSION['suser']    = $naam;         // gebruikersnaam van ingelogd persoon
       $_SESSION['semail']    = $row['email'];         // email van ingelogd persoon
        $_SESSION['slevel']   = $row['level']; // bijbehorende gebruikersniveau
        $_SESSION['stime']    = time();        // de huidige tijd
        $_SESSION['smaxidle'] = 60 * 60;


en dan:

code:
1
<div id="list">Mail: <?= $_SESSION['semail'] ?></div>


Dit blijkt helaas niet te werken.

  • Barleone
  • Registratie: maart 2009
  • Laatst online: 22:04
Reptile209 schreef op donderdag 04 november 2010 @ 13:20:
SELECT email FROM users WHERE user = ingelogdeuser
?
Beetje kort door de bocht ( d:)b ) maar wekt ook verwarring qua naamgeving denk ik.
Mijn idee zou zijn:
SQL:
1
SELECT email FROM users WHERE userstatus = online;


Alles over SQL queries zul je WEL zelf moeten uitzoeken, tweakers zijn geen helpdesk en FAQ, maar een discussie forum, om over problemen en oplossingen te redeneren met argumenten.
Je kan heel goed hier terecht voor een tutorial/howto SQL: W3Schools.com -- SQL Tutorial

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


  • SinergyX
  • Registratie: november 2001
  • Laatst online: 01:17

SinergyX

____(>^^(>0o)>____

Wess schreef op donderdag 04 november 2010 @ 13:25:
Iets dat ik al geprobeerd heb, en volgens mij bedoelen jullie dat is het volgende:
Dit blijkt helaas niet te werken.
En debug dit is? Wordt de row wel gevuld met email?

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • MueR
  • Registratie: januari 2004
  • Laatst online: 01:04

MueR

Moderator Devschuur®

is niet lief

Dan zul je moeten gaan debuggen (Programming FAQ - Debuggen: hoe doe ik dat?). Dit is wel heel basic. Een simpel veld uit een tabel uitlezen en in je sessie opslaan is niet bepaald rocket science en moet je met een klein beetje moeite wel lukken.

Verder zou ik graag zien dat je voortaan alleen relevante code post. We hebben absoluut niets aan je 92 regels code, als er maar ~10 relevant zijn.

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!

Pagina: 1

Dit topic is gesloten.



Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee