30. december 2005 - 10:06
Der er
22 kommentarer og 1 løsning
Fjendeliste virker bare ikke!
Hej jeg er igang med en fjendeliste siden min side. Denne fjendeliste skal tjekke om en SESSION[brugernavn] er på den profil man besøgers fjendelise! Jeg har prøvet og prøvet men forgæves! Kan nogen hjælpe mig?
Annonceindlæg fra Computerworld
30. december 2005 - 11:51
#1
Ligger fjendelisten i en database og i så fald, hvordan ser tabellen ud?
30. december 2005 - 11:53
#2
Ja den ligger i en database.. Der er id, ejer og fjende.
30. december 2005 - 12:14
#3
Har ikke testet det, men det skulle vel være noget i den her stil?: $result = mysql_query("SELECT fjende FROM tabel"); while($row = mysql_fetch_array($result)) { $fjender[] = $row; } if(array_key_exists($_SESSION['brugernavn'], $fjender)) { echo "Du er en fjende."; } else { echo "Du er ikke en fjende."; }
30. december 2005 - 12:15
#4
Men husk at tilpasse MySQL-queryen, så den kun hiver fjendelisten ud for den relevante profil.
30. december 2005 - 12:24
#5
phillips jeg havde tænkt mig noget i stil med at hvis man er en fjende så vises profilen ikke også står du er på personens fjendeliste.. Hvis man ikke er så viser den profilen.? Kan du ikke prøve det?
30. december 2005 - 12:30
#6
Det gør scriptet allerede. Eventuelt kan du ligge scriptet ind i en fil for sig selv, f.eks. redirect.php, som så ser sådan her ud: $result = mysql_query("SELECT fjende FROM tabel WHERE id = '$profilid'"); while($row = mysql_fetch_array($result)) { $fjender[] = $row; } if(array_key_exists($_SESSION['brugernavn'], $fjender)) { echo "Du er en fjende."; } else { header('Location: hvad_din_profilside_nu_hedder.php?id=$profilid'); } Kald redirect.php ved "redirect.php?profilid=x
30. december 2005 - 12:43
#7
Hmm, det virker ikke helt dine koder.
30. december 2005 - 12:45
#8
Husk at tilpasse variabler og filnavne til din side - dem kender jeg jo ikke. Ellers må du være lidt mere specifik.
30. december 2005 - 12:47
#9
Okay den hedder seprofil.php. Databasen hedder "fjendeliste_avis" og den tjekker ved bruger navn altså: "$vis[brugernavn]". Jeg har somsagt felterne: id, fjende og ejer. Fjende er jo den der ikke må se profilen og ejer der den er har blokeret brugeren. Og dine koder ser ud til IKKE at virke. Ellers er det måske mig der laver fejl - jeg ændret det til sådan: <? $result = mysql_query("SELECT fjende FROM fjendeliste_avis WHERE brugernavn = '$vis[brugernavn]'"); while($row = mysql_fetch_array($result)) { $fjender[] = $row; } if(array_key_exists($_SESSION['brugernavn'], $fjende)) { echo "Du er en fjende."; } else { header('Location: slet.php?brugernavn=$vis[brugernavn]'); } ?> Er der fejl?
30. december 2005 - 12:50
#10
Hvilken fejlbesked får du?
30. december 2005 - 12:52
#11
Den viser profilen selvom jeg har skrevet mit brugernavn ind som fjende og jeg har bare valgt en eller anden bruger som ejer. Så når jeg besøger profilen viser den profilen!
30. december 2005 - 12:59
#12
Jeg går ud fra, at mit script ligger i seprofil.php og, at slet.php viser selve profilen. seprofil.php: <?php $result = mysql_query("SELECT fjende FROM fjendeliste_avis WHERE id = '$ejerID'"); while($row = mysql_fetch_array($result)) { $fjender[] = $row; } if(array_key_exists($vis['brugernavn'], $fjende)) { echo "Du er en fjende."; } else { header('Location: slet.php?id=$ejerID'); } ?> seprofil.php skal da kaldes med seprofil.php?ejerID=x, hvor x er ejerens id i tabellen fjendeliste_avis.
30. december 2005 - 13:00
#13
Ups: if(array_key_exists($vis['brugernavn'], $fjende)) Skal ændres til: if(array_key_exists($vis['brugernavn'], $fjender))
30. december 2005 - 13:05
#14
Jeg får bare en blank side.
30. december 2005 - 13:08
#15
Så lyder det som om det virker, men du bare ikke sætter de rigtige variabler. Om ikke andet, så må du læse din egen kode igennem og finde fejlen ;)
30. december 2005 - 13:09
#16
Hmm det virker ikke - medmindre det er menigen man ikke må se alles profiler hvis er på bare ENs liste :P
30. december 2005 - 14:28
#17
<?php $sesuser = $_SESSION['brugernavn']; $result = mysql_query("SELECT * FROM fjendeliste_avis WHERE id = '$ejerID'"); while($row = mysql_fetch_array($result)) { $fjende = $row[fjende]; // Vi tjekker om der er match med noget fra tabellen. if($fjende == $sesuser){ echo "Du er blacklisted fra denne brugers profil."; echo "Mener du der er sket en fejl, så kontakt administrationen, så snakker de med den pågældende bruger."; } else { // ALT DIN KODE TIL AT VISE PROFILEN } // While-løkken ender } ?>
30. december 2005 - 16:01
#18
Den virker heller ikke cronaldo.
30. december 2005 - 16:04
#19
ridisc, cronaldos kode burde virke ligeså godt som min. Jeg er bange for, at fejlen ligger i, hvordan du implementerer den på dine sider. Mit forslag er, at du kigger kigger nøje på, hvilke variabler koden indeholder og har brug for og om de passer med dem, som du benytter i forvejen.
30. december 2005 - 16:25
#20
Men jeg kan ikke se hvor jeg laver fejl?!
30. december 2005 - 16:57
#21
ridisc: prøv at kom med noget kode så, eller giv os et sted vi kan hente filen og se på koden, så? :)
31. december 2005 - 11:16
#22
Hmm, jeg forstår ikke lige. Vil i have seprofil.php'en?
18. april 2006 - 20:55
#23
Lukker!
Vi tilbyder markedets bedste kurser inden for webudvikling