Link uit het database roepen
Ik heb een login systeem gemaakt plus een registreer pagina.
Wat ik nu wil luidt als volgt;
Ik maak voor mensen gebruikers aan. Dus Gebruikersnaam Wachtwoord en een link.
Zo gauw die persoon inlogt wil ik dat hij d.m.v een a href etc door wordt verbonden naar de link die ik hem gegeven heb.
Maar ik heb geen idee hoe ik van de juiste gebruiker de juiste link moet terug roepen.
Iemand misschien tips/tutorials?
Bijvoorbaat dank!
Code (php)
1
2
3
2
3
<?php
echo "<a href='profile.php?id=".$_SESSION['id']."'>Klik hier om naar je profiel te gaan...</a>";
?>
echo "<a href='profile.php?id=".$_SESSION['id']."'>Klik hier om naar je profiel te gaan...</a>";
?>
De variabelen in dit voorbeeld zijn fictief, gezien ik onvoldoende informatie heb over wat waar je link naar toe moet verwijzen.
Code (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
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
<?php
$host="localhost";
$username="root";
$password="";
$db_name="test";
$tbl_name="members";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_succes.php");
}
else {
echo "<center><strong style='color:red'>Verkeerde gebruikersnaam en/of wachtwoord!</strong></center>";
}
?>
$host="localhost";
$username="root";
$password="";
$db_name="test";
$tbl_name="members";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_succes.php");
}
else {
echo "<center><strong style='color:red'>Verkeerde gebruikersnaam en/of wachtwoord!</strong></center>";
}
?>
En als het goed is ga je naar login_succes.php
En dat is deze;
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
if(!session_is_registered(myusername))
{
header("location:main_login.php");
}
?>
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
if(!session_is_registered(myusername))
{
header("location:main_login.php");
}
?>
</head>
<body>
<center><strong style="color:#00CC00">Login Successful</strong></center>
Dit script komt uit 2004 vermoed ik.
Ik kan je beter aanraden om naar www.phptuts.nl te gaan, en daar de beginners-tutorial te doen, om op deze manier goed PHP te leren.
Gewijzigd op 29/03/2012 10:14:32 door - Ariën -
Dit werkt verder wel goed allen deze is verouderd;
Zodra je naar PHP 5.4.0 over gaat (en die wordt inmiddels al uitgerold over de hostingservers) is de functie in één klap weg....
Ga PHP leren, en benut die kennis voor een inlogsysteem. Als je dan weet hoe de sessies werken, dan weet je ook hoe je een simpel inlogsysteem moet bouwen. Daar heb je echt geen tutorials voor nodig.
Gewijzigd op 29/03/2012 10:17:15 door - Ariën -
Omdat dit php 5.0.3 is volgens mij en dat draait mn webserver ook.
Joey Schroder op 29/03/2012 10:16:17:
Omdat dit php 5.0.3 is volgens mij en dat draait mn webserver ook.
Ga eens snel (laten) updaten. Ik heb geen idee of dit voor een webserver geldt (niet te hopen), of een localhost test-webservertje like XAMPP (ook niet te hopen)
Ikzelf draai op dit moment 5.3.10.....
Gewijzigd op 29/03/2012 11:57:21 door - Ariën -
Ik draait dit nu lokaal maar dit moet online komen en die webserver is 5.0.3. Het is niet mijn webserver maar van m'n stage.. Maar heb jij zo nog een handige tut voor mij die ik kan gebruiken?
Ik hoop niet dat hier ook klanten op gehost worden. Zoja, dan raad ik met klem aan om een gespecialiseerd persoon er naar te laten kijken. (dit hoor je niet zelf te doen, zonder enige ervaring, op een productie-webserver)
Gewijzigd op 29/03/2012 10:28:55 door - Ariën -
Nee alleen eigen webpagina's maar dat updaten doe ik niet en wil ik ook niet doen want als er iets fout ga dat sta ik er helemaal zelf voor en aangezien ik nieuw ben in het php gebeuren etc wil ik dat liever niet. Maar ik bedoelde een tut voor een simpel login gebeuren.
En wat is er mis met PHP leren? Je komt vanzelf bij het sessie gedeelte aan, waarna je een login-script kan maken. Daar is geen op zich zelf staande login-tutorial voor nodig. Tenzij je het uitgebreider wilt.....
Maar ik heb meer het idee dat je op dit moment meer aan de basis van PHP nodig hebt.
Gewijzigd op 29/03/2012 10:32:21 door - Ariën -
Maar je weet zo niet hoe ik van een bepaalde id de link kan pakken?
Joey Schroder op 29/03/2012 10:33:23:
Het is elke keer zo als ik een opdracht krijg dan begin ik er aan vol enthousiastme en dan ben ik net het laatste stukje nodig om het script af te maken en dan zit ik vast..
En begin daarom met een PHP-tutorial. Je kan niet zomaar halverwege beginnen. Dan loop je vast.
Quote:
Maar je weet zo niet hoe ik van een bepaalde id de link kan pakken?
Uit de database halen met een query en fetchen? Wees eens duidelijk over wat je nou wilt?
Gewijzigd op 29/03/2012 10:37:50 door - Ariën -
Ik maar een gebruiker aan voor jouw bijvoorbeeld.
Gebruikersnaam; Aar
Wachtwoord; test
Link; www.phphulp.nl
Ik stuur jouw die gegevens op en als jij inlogt moet jij vervolgens door gestuurd worden naar www.phphulp.nl
Zo moet dat werken.
Ja, sla het op in de database. En haalt het op met mysql_query() en gebruik vervolgens mysql_fetch_assoc(), en stuur het door naar de gebruiker.
Dit is wat ik nu heb gemaakt,
Code (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
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
<?php
$conn = mysql_connect("localhost", "root");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("test")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT link as username, password, link
FROM members ";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
$conn = mysql_connect("localhost", "root");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("test")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT link as username, password, link
FROM members ";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
Nu krijg ik dus van alle gebruikers de link te zien. Ik wil graag alleen de link zien van de ingelogde persoon. Hoe ga ik dan klaar spelen?
Overigens, exit is niet de juiste manier voor foutafhandeling.
Gewijzigd op 29/03/2012 11:33:54 door - Ariën -
op lijn 15 hierboven?
Ik heb er dit van gemaakt
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT username, password, link FROM members WHERE username = password ";
?>
$sql = "SELECT username, password, link FROM members WHERE username = password ";
?>
Dan laat die de eerste link zien in de table.
wat doe ik nu nog verkeerd?