Avatar billede prodigy01 Nybegynder
11. maj 2008 - 21:32 Der er 15 kommentarer og
1 løsning

Tilføje som favorit - problem

Hej.
Jeg har prøvet at lave så man kan tilføje et spil som favorit, men uden held..
Altså, den tilføjer den godt nok til databasen, men den tilføjer ikke det indhold det skal.
den tilføjer bar "$navn" . istedet for det rigtige navn osv.

Og kan i sige mig hvordan jeg gør sådan at det er kun den person som har tilføjet spillet som favorit, som er den der kan slette den.
Så man ikke bare kan trykke et andet id ind og så slette andres.

Sletfavorit.php
    <?
    include "config/database.php";
   
mysql_query("DELETE FROM favoritter WHERE ID = '$_GET[id]'");
echo "Favoritten er nu slettet!";
print "<meta http-equiv=\"refresh\" content=\"0;url=?side=forside\">";
?>



jeg linker fra en anden side af, til:
?side=spil&favorit=ja


indeholdet af favorit.php:
<?
if ($_GET["favorit"] == "ja") {

include "config/database.php";
$id = $_GET["id"];
$tingid = $_GET["id"];
$ip = $_SERVER["REMOTE_ADDR"];
$navn = "$navn";

mysql_query("insert into favoritter set id = '$id', tingid = '$tingid', ip = '$ip', navn = '$navn'");
echo "Tilføjet som din favorit!";
}
?>
Avatar billede prodigy01 Nybegynder
11. maj 2008 - 21:45 #1
Undskyld.. det sidste her.. er indholdet af spil.php.
<?
if ($_GET["favorit"] == "ja") {

$id = $_GET[id];
$tingid = '$id';
$ip = $_SERVER[REMOTE_ADDR];
$navn = '$navn';

mysql_query("insert into favoritter set id = '$id', tingid = '$tingid', ip = '$ip', navn = '$navn'");
echo "Tilføjet som din favorit!";
}
?>
Avatar billede tmi Nybegynder
12. maj 2008 - 00:51 #2
din sql er gal..
mysql_query("INSERT INTO favoritter (id, tingid, ip, navn) VALUES('$id','$tingid','$ip','$navn')");
Avatar billede prodigy01 Nybegynder
12. maj 2008 - 01:44 #3
virker stadig ikke? :S
Avatar billede nielle Nybegynder
12. maj 2008 - 10:13 #4
Hvad er det du forsøger at gøre med denne linje?

$navn = "$navn";
Avatar billede prodigy01 Nybegynder
12. maj 2008 - 18:31 #5
få fat i spil-navnet .. ?
Avatar billede nielle Nybegynder
12. maj 2008 - 19:33 #6
Hvorfra får den det? Der er jo ikke noget i $navn til at starte med.

Skal den hente det fra en session eller fra en form som er submittet? Eller hvad?
Avatar billede prodigy01 Nybegynder
12. maj 2008 - 19:37 #7
Skal jeg smække hele koden ind?.
Avatar billede nielle Nybegynder
12. maj 2008 - 21:46 #8
Når du har kode som:

$navn = '$navn';

- så er det i hvert fald ikke nogen overraskelse hvis der bliver skrevet teksten $navn i databasen.

I det oprindelige eksempel havde du imidlertid:

$navn = "$navn";

- og det vil sætte $navn til at være lige med indholdet af $navn ... hmmmm, det er den jo da alligevel ... en ret overflødig linje kode.

Det er er vigtigt, er hvordan $navn får en værdi.
Avatar billede prodigy01 Nybegynder
12. maj 2008 - 23:45 #9
Hvordan giver jeg den, den rigtige værdi, for det er fra et andet sted jeg skal hente navnet jo.

<?
if ($_GET["favorit"] == "ja") {

$id = $_GET[id];
$tingid = '$id';
$ip = $_SERVER[REMOTE_ADDR];
$navn = '$navn';

mysql_query("insert into favoritter set id = '$id', tingid = '$tingid', ip = '$ip', navn = '$navn'");
echo "Tilføjet som din favorit!";
}
?>
<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<div align="center"><font color="#03679B" size="2" face="Verdana"> <a href="?side=spil&valg=nyeste">10 Nyeste</a> | <a href="?side=spil&valg=popular">10 Popul&aelig;re</a></font></div>
<hr color="#006699" size="1"/>
<div align="center"><a href="#" onClick="popop();"><img src="gfx/tilfojspil.gif" width="69" height="23" /></a></div>
<hr color="#006699" size="1"/>
<table border="0" width="495" height="56">
<tr>
<?
if($_GET["valg"] == "nyeste")
{
echo("");
?>
<table border="0" width="495" height="56">
  <tr>
    <?
include "config/database.php";

$sql = mysql_query("select * from spil ORDER BY id DESC LIMIT 0,10");
while($row = mysql_fetch_array($sql)){
$id = '$_GET[id]';

if ($_GET["favorit"] == "ja") {

$tingid = '$id';
$ip = $_SERVER[REMOTE_ADDR];
$navn = '$navn';

mysql_query("insert into favoritter set id = '$id', tingid = '$tingid', ip = '$ip', navn = '$navn'");
echo "Tilføjet som din favorit!";
}
?>
    <td width="100" rowspan="3" height="1"><a target="_blank" href="play.php?id=<?=$row[id]?>"><img src="grafik/spil/<?=$row[kategori]?>/<?=$row[image]?>" width="100" height="100" border="0" style="filter:alpha(opacity=70)"/></a></td>
    <td height="1"><a target="_blank" href="play.php?id=<?=$row[id]?>"><strong><?=$row[navn]?></strong></a></td>
    <td height="1"><div align="right"><font color="#000000"> <?=$row[klik]?> hits</font></div></td>
  </tr>
  <tr>
    <td height="43" colspan="2"><a target="_blank" href="play.php?id=<?=$row[id]?>"><?=$row[beskrivelse]?></a></td>
  </tr>
  <tr>
    <td width="283" height="1"><a target="_blank" href="play.php?id=<?=$row[id]?>"><font color="#CCCCCC"><? echo substr($row[link],0,50); ?></font></a></td>
    <td width="95" height="1"><div align="right"><a href="?side=spil&favorit=ja">- favorit</a></div></td>
    <td width="95" height="1">&nbsp;</td>
  </tr>
  <tr>
    <td height="1"><hr color="#EAEAEA" size="1"/></td>
    <td height="1"><hr color="#EAEAEA" size="1"/></td>
    <td height="1"><hr color="#EAEAEA" size="1"/></td>
  </tr>
  <?

  }
?>
<?
}
?>
<?
Avatar billede nielle Nybegynder
13. maj 2008 - 06:39 #10
> Hvordan giver jeg den, den rigtige værdi, for det er fra et andet sted jeg skal hente navnet jo.

Ja, korrekt.

Men hvordan ved du da hvilket spil der er tale om når folk klikker på linket for at gøre det til favorit? Det er den oplysning som på en eller anden måde skal ind i koden.
Avatar billede prodigy01 Nybegynder
13. maj 2008 - 15:49 #11
Er lost, men ved godt hvad du mener.

har du nogen idé hvordan jeg gør det?
Avatar billede nielle Nybegynder
13. maj 2008 - 18:25 #12
Hvis du ikke selv ved hvor du får navnet på spillet fra så er jeg godt nok lidt lost.

Jeg vil da gætte på at det burde være en del af det link de klikker på - altså en del af url'et. Du får værdierne af $id, $tingid og $ip ved at hente dem forskellige steder fra:

$id = $_GET["id"];
$tingid = $_GET["id"];
$ip = $_SERVER["REMOTE_ADDR"];

Noget lignende må du vel gøre med navnet på spillet? Måske skal det bare være med i det link hvor at du også får $id fra.
Avatar billede prodigy01 Nybegynder
13. maj 2008 - 21:19 #13
Fandt ud af det ... :)
Men kan du fortælle mig, hvordan gør jeg så det er kun brugeren med den samme ip som har tilføjet den foretrukne ting, kan slette den.
og ingen andre.
Avatar billede nielle Nybegynder
13. maj 2008 - 22:16 #14
Sæt IP'et på som en ekstra betingelse:

$sql = "DELETE FROM favoritter WHERE ID = '$_GET[id]' AND ip = '$ip'";
Avatar billede prodigy01 Nybegynder
14. maj 2008 - 01:27 #15
Smid svar m8 :D
Avatar billede nielle Nybegynder
14. maj 2008 - 06:54 #16
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester