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;


<?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;

<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

if(!session_is_registered(myusername))
{
header("location:link.php");
}
?>



<?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.

[size=xsmall]Toevoeging op 30/03/2012 13:10:09:[/size]

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;


<?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;

<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

if(!session_is_registered(myusername))
{
header("location:link.php");
}
?>



<?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.


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

<?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"];
}
?>

<?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.
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

<?php
WHERE username='".$_SESSION['myusername']."'
?>
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..
Je moet een mysql_error() krijgen.


WHERE naam=....
Er is geen veld 'naam'.
Ja nu werkt het! Bedankt!

<?php
WHERE username='".$_SESSION['myusername']."'
?>

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

[size=xsmall]Toevoeging op 30/03/2012 15:25:04:[/size]

<?php
while ($row = mysql_fetch_assoc($result)){
echo $row["link"];
?>

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

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

[size=xsmall]Toevoeging op 30/03/2012 15:39:07:[/size]

Ik heb die a href al opgelost d.m.v
<?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?
omdat je echo compleet fout zit.

het is

<?php

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

?>

[size=xsmall]Toevoeging op 30/03/2012 15:42:21:[/size]

hangt ervanaf hoe je link eruitziet in je table

geef is een voorbeeldlink

Reageren