Link uit het database roepen deel 2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Joey Schroder

Joey Schroder

30/03/2012 13:05:59
Quote Anchor link
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>&nbsp;</td>
<td>&nbsp;</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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
}

?>



Hier kijkt die dus of het klopt dan ga je door naar de pagina succes.php;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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");
}

?>




Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);

?>



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>&nbsp;</td>
<td>&nbsp;</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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
}

?>



Hier kijkt die dus of het klopt dan ga je door naar de pagina succes.php;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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");
}

?>




Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);

?>



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
 
PHP hulp

PHP hulp

21/12/2024 18:53:06
 
Gerhard l

gerhard l

30/03/2012 13:12:46
Quote Anchor link
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.
 
Joey Schroder

Joey Schroder

30/03/2012 13:17:11
Quote Anchor link
Ok ik heb die sessions veranderd en op elke pagina gezet.

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.
 
Reshad F

Reshad F

30/03/2012 13:19:27
Quote Anchor link
probeer goede foutafhandeling in te bouwen, gebruik geen wildcard * maar schrijf voluit wat je wilt hebben in je query overigens klopt je query voor geen meter want je doet WHERE link als je dit naar normale vraagtaal zou omzetten krijg je

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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"];
}


?>
 
Gerhard l

gerhard l

30/03/2012 13:20:51
Quote Anchor link
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..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);


is hetzelfde als

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$_POST['myusername'] = mysql_real_escape_string(stripslashes($_POST['myusername']));
$_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 != ''
 
Reshad F

Reshad F

30/03/2012 13:24:06
Quote Anchor link
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 :)
 
Joey Schroder

Joey Schroder

30/03/2012 13:31:19
Quote Anchor link
Reshadd Farid ik heb jouw script overgenomen en zoals je al zij het zal niet werken maar een opzetje. Dat klopt het werkt ook niet. Want ik krijg nu dit;

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)
PHP script in nieuw venster Selecteer het PHP script
1
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"];
}



?>


Bij de eerste if. Maar het zal waarschijnlijk te maken hebben met de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$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?
 
Gerhard l

gerhard l

30/03/2012 13:50:50
Quote Anchor link
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
 
Joey Schroder

Joey Schroder

30/03/2012 13:57:18
Quote Anchor link
Ja dat heb ik net aagepast wat Reshadd mij gaf.

De gewenste informatie zit in de POST.

Het gaat gewoon fout van ;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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"];
}

?>
 
Reshad F

Reshad F

30/03/2012 14:10:00
Quote Anchor link
er moet een else achter je if ($result === false){

zoiets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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"];
}
}

?>
 
Joey Schroder

Joey Schroder

30/03/2012 14:16:54
Quote Anchor link
Dat haalt niks uit omdat ik nog steeds met die foutocdes zit.
 
Reshad F

Reshad F

30/03/2012 14:20:08
Quote Anchor link
laat eerst even zien hoe je members table eruitziet en welke concrete code je nu toegepast hebt. Post niet steeds nieuwe code maar probeer datgeen wat je post steeds aan te passen dat is duidelijker en overzichtelijker.

dus als je even je table structuur post en je code hoe je het precies allemaal nu hebt kunnen we verder kijken.
 
Joey Schroder

Joey Schroder

30/03/2012 14:26:52
Quote Anchor link
Mijn table structuur;

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)
PHP script in nieuw venster Selecteer het PHP script
1
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"];
}

?>
 
Gerhard l

gerhard l

30/03/2012 14:35:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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"];
        }
    }
}

?>

Als sessions sklopt dan moet dit werken.
Gewijzigd op 30/03/2012 14:36:11 door gerhard l
 
Reshad F

Reshad F

30/03/2012 14:42:09
Quote Anchor link
ik denk dat zijn WHERE nog steeds fout is want ik zie dat zijn session ergens als myusername wordt weggeschreven en hij gebruikt naam ipv username

dus het moet zoiets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
        WHERE username='".$_SESSION['myusername']."'
?>
 
Joey Schroder

Joey Schroder

30/03/2012 14:44:02
Quote Anchor link
Dan krijg ik in m'n browser Niks gevonden te zien ;)
 
Reshad F

Reshad F

30/03/2012 14:46:43
Quote Anchor link
heeft die ingelogde gebruiker wel een link?
 
Joey Schroder

Joey Schroder

30/03/2012 14:52:23
Quote Anchor link
ja dat heeft die maar ik zie nu dat die link niet in de session zit..
 
- SanThe -

- SanThe -

30/03/2012 14:58:44
Quote Anchor link
Je moet een mysql_error() krijgen.


WHERE naam=....
Er is geen veld 'naam'.
Gewijzigd op 30/03/2012 15:00:13 door - SanThe -
 
Joey Schroder

Joey Schroder

30/03/2012 15:16:19
Quote Anchor link
Ja nu werkt het! Bedankt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
        WHERE username='".$_SESSION['myusername']."'
?>


Dat deed het hem! Hartstikke bedankt allemaal voor jullie tijd en informatie!

Toevoeging op 30/03/2012 15:25:04:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
        while ($row = mysql_fetch_assoc($result)){
            echo $row["link"];
?>


Nu wil ik die link in een <a href> zetten.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo Klik '<a href='$row["link"]'>'Hier'</a>';
?>


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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Klik <a href='.$row['link'].'>Hier</a>';
?>


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?
 
Reshad F

Reshad F

30/03/2012 15:40:48
Quote Anchor link
omdat je echo compleet fout zit.

het is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

   echo "klik <a href='" $row['link']"'>hier</a>";

?>


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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.