Link uit het database roepen deel 2
Dit is wat ik zelf heb geschreven;
De login pagina;
<table width="150px" border="0" align="center">
<tr>
<form method="post" action="logincheck.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Login</strong></td>
</tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Je word dus d.m.v de action door gestuurd naar logincheck.php;
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
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
<?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: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:succes.php");
}
else
{
echo "<center><strong style='color:red;'>Verkeerde gebruikersnaam en/of wachtwoord!</strong></center>";
}
?>
Hier kijkt die dus of het klopt dan ga je door naar de pagina succes.php;
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:link.php");
}
?>
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
if(!session_is_registered(myusername))
{
header("location:link.php");
}
?>
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
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
<?php
$conn = mysql_connect("localhost", "root");
if (!$conn)
{
echo "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT * FROM members WHERE link ";
$result = mysql_query($sql);
if (!$result)
{
echo "Kan de query niet uitvoeren" . mysql_error();
}
if (mysql_num_rows($result) == 0)
{
echo "Niks gevonden";;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
$conn = mysql_connect("localhost", "root");
if (!$conn)
{
echo "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT * FROM members WHERE link ";
$result = mysql_query($sql);
if (!$result)
{
echo "Kan de query niet uitvoeren" . mysql_error();
}
if (mysql_num_rows($result) == 0)
{
echo "Niks gevonden";;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
Ik krijg dus. Niks gevonden. Wat doe ik verkeerd?
Ik wil graag als iemand is ingevolgd dat hij/zij een link krijgt naar een andere website. De gebruikers maak ik zelf aan + die link. Dit wordt opgeslagen in een database. username, password, link .
Ik wil van de ingelogd persoon de juiste link zien, althans dat is de bedoeling.
Toevoeging op 30/03/2012 13:10:09:
Joey Schroder op 30/03/2012 13:05:59:
Ik heb de php tutorial doorgelopen en de MySQL tutorial en ik ben er uiteraard wijzer van geworden maar ik loop nu nog steeds vast op dit probleem.
Dit is wat ik zelf heb geschreven;
De login pagina;
<table width="150px" border="0" align="center">
<tr>
<form method="post" action="logincheck.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Login</strong></td>
</tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Je word dus d.m.v de action door gestuurd naar logincheck.php;
Hier kijkt die dus of het klopt dan ga je door naar de pagina succes.php;
Ik krijg dus. Niks gevonden. Wat doe ik verkeerd?
Ik wil graag als iemand is ingelogd dat hij/zij een link krijgt naar een andere website. De gebruikers maak ik zelf aan + die link. Dit wordt opgeslagen in een database. username, password, link .
Ik wil van de ingelogd persoon de juiste link zien, althans dat is de bedoeling.
Dit is wat ik zelf heb geschreven;
De login pagina;
<table width="150px" border="0" align="center">
<tr>
<form method="post" action="logincheck.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Login</strong></td>
</tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Je word dus d.m.v de action door gestuurd naar logincheck.php;
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
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
<?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: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:succes.php");
}
else
{
echo "<center><strong style='color:red;'>Verkeerde gebruikersnaam en/of wachtwoord!</strong></center>";
}
?>
Hier kijkt die dus of het klopt dan ga je door naar de pagina succes.php;
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:link.php");
}
?>
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
if(!session_is_registered(myusername))
{
header("location:link.php");
}
?>
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
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
<?php
$conn = mysql_connect("localhost", "root");
if (!$conn)
{
echo "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT * FROM members WHERE link ";
$result = mysql_query($sql);
if (!$result)
{
echo "Kan de query niet uitvoeren" . mysql_error();
}
if (mysql_num_rows($result) == 0)
{
echo "Niks gevonden";;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
$conn = mysql_connect("localhost", "root");
if (!$conn)
{
echo "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT * FROM members WHERE link ";
$result = mysql_query($sql);
if (!$result)
{
echo "Kan de query niet uitvoeren" . mysql_error();
}
if (mysql_num_rows($result) == 0)
{
echo "Niks gevonden";;
}
while ($row = mysql_fetch_assoc($result))
{
echo $row["link"];
}
mysql_free_result($result);
?>
Ik krijg dus. Niks gevonden. Wat doe ik verkeerd?
Ik wil graag als iemand is ingelogd dat hij/zij een link krijgt naar een andere website. De gebruikers maak ik zelf aan + die link. Dit wordt opgeslagen in een database. username, password, link .
Ik wil van de ingelogd persoon de juiste link zien, althans dat is de bedoeling.
Gewijzigd op 30/03/2012 13:07:49 door Joey Schroder
session_register en session_is_registered zijn antiek waarom gebruik je ze nog? Escape je variabelen in query, je mist session_start op sommige paginas. Onnodig kopieeren van variabelen. $sql = "SELECT * FROM members WHERE link "; wat is dit in je WHERE? haal dat weg.
Wat bedoel je met onnodig kopieeren van variabelen.
Die WHERE heb ik er staan omdat ik graag wil dan alleen de link moet worden weergegeven. Maar hij pakt nu de eerste link in de table en niet de link die bij de login gegevens horen.
selecteer alles vanuit memberstable waar link.
dat is geen goede zin toch? Juist! daarom krijg je ook niks. maar stel dat je zoiets hebt.
SELECTEER naam, password, link VANUIT memberstable WAAR gebruiker is gelijk aan gebruiker(ingelogd).
dan kom je al heel gauw rond dit scriptje, ik heb het niet getest helemaal en ik denk dat het ook niet gaat werken bij jou omdat ik niet weet of alle dingen wel zo kloppen maar je hebt nu wel een goede opzet :)
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 "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT naam, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
$conn = mysql_connect("localhost", "root");
if (!$conn)
{
echo "Kan niet vebinden met de DB: " . mysql_error();
}
if (!mysql_select_db("test"))
{
echo "Kan de database niet selecteren: " . mysql_error();
}
$sql = "SELECT naam, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
is hetzelfde als
Code (php)
1
2
2
$_POST['myusername'] = mysql_real_escape_string(stripslashes($_POST['myusername']));
$_POST['mypassword'] = mysql_real_escape_string(stripslashes($_POST['mypassword']));
$_POST['mypassword'] = mysql_real_escape_string(stripslashes($_POST['mypassword']));
Als ik jou was zal ik wel eerst kijken of ze wel gepost zijn. Met bijv. isset of != ''
Gerhard l op 30/03/2012 13:20:51:
Ja hoe moet de database weten welke link bij welke gebruiker hoort? Dan moet je in de where iets zetten wat terugslaat op de gebruiker..
zie query in mijn vb :)
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\Joey\succes.php on line 45
dat is op
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
Bij de eerste if. Maar het zal waarschijnlijk te maken hebben met de
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
?>
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
?>
gerhard l
Hoe kan ik dat kijken of er wel wat in de POST zit?
Bekijk je database structuur, heb je de velden wel die Reshadd als voorbeeld gaf? echo '<pre>'; print_r($_SESSION); zit er in de sessie alles wat je verwacht?? Echo je mysql_error
De gewenste informatie zit in de POST.
Het gaat gewoon fout van ;
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
zoiets
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
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
<?php
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
else {
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
}
?>
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
else {
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
}
?>
Dat haalt niks uit omdat ik nog steeds met die foutocdes zit.
dus als je even je table structuur post en je code hoe je het precies allemaal nu hebt kunnen we verder kijken.
Kolom Type Collatie
1 id int(4)
2 username varchar(65)
3 password varchar(65)
4 link varchar(250)
De session klopt gewoon.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
$sql = "SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
";
$result = mysql_query($sql);
if ($result === false){
echo "Kan de query niet uitvoeren";
}
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$result = mysql_query("SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
");
if ($result === false){
echo "Kan de query niet uitvoeren ". mysql_error();
}
else{
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
else{
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
}
}
?>
$result = mysql_query("SELECT username, password, link
FROM members
WHERE naam='".$_SESSION['naam']."'
");
if ($result === false){
echo "Kan de query niet uitvoeren ". mysql_error();
}
else{
if (mysql_num_rows($result) == 0){
echo "Niks gevonden";
}
else{
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
}
}
}
?>
Als sessions sklopt dan moet dit werken.
Gewijzigd op 30/03/2012 14:36:11 door gerhard l
Dan krijg ik in m'n browser Niks gevonden te zien ;)
heeft die ingelogde gebruiker wel een link?
ja dat heeft die maar ik zie nu dat die link niet in de session zit..
Dat deed het hem! Hartstikke bedankt allemaal voor jullie tijd en informatie!
Toevoeging op 30/03/2012 15:25:04:
Nu wil ik die link in een <a href> zetten.
Dit werkt niet. omdat er een unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
Ik heb ook al met dubbele quotes geprobeert..
Weet iemand hoe dat moet of heeft iemand een site voor me waar ik dat kan vinden ?
bvd
Toevoeging op 30/03/2012 15:39:07:
Ik heb die a href al opgelost d.m.v
Maar nu geef die op de browser weer ; The requested URL /test/www.google.nl was not found on this server.
Hoe kan ik er voor zorgen dat die /test/ weg laat?
het is
Toevoeging op 30/03/2012 15:42:21:
hangt ervanaf hoe je link eruitziet in je table
geef is een voorbeeldlink
Gewijzigd op 30/03/2012 15:41:14 door Reshad F