Avatar billede ridisc Nybegynder
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?
Avatar billede phillips Nybegynder
30. december 2005 - 11:51 #1
Ligger fjendelisten i en database og i så fald, hvordan ser tabellen ud?
Avatar billede ridisc Nybegynder
30. december 2005 - 11:53 #2
Ja den ligger i en database..

Der er id, ejer og fjende.
Avatar billede phillips Nybegynder
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.";
}
Avatar billede phillips Nybegynder
30. december 2005 - 12:15 #4
Men husk at tilpasse MySQL-queryen, så den kun hiver fjendelisten ud for den relevante profil.
Avatar billede ridisc Nybegynder
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?
Avatar billede phillips Nybegynder
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
Avatar billede ridisc Nybegynder
30. december 2005 - 12:43 #7
Hmm, det virker ikke helt dine koder.
Avatar billede phillips Nybegynder
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.
Avatar billede ridisc Nybegynder
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?
Avatar billede phillips Nybegynder
30. december 2005 - 12:50 #10
Hvilken fejlbesked får du?
Avatar billede ridisc Nybegynder
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!
Avatar billede phillips Nybegynder
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.
Avatar billede phillips Nybegynder
30. december 2005 - 13:00 #13
Ups:

if(array_key_exists($vis['brugernavn'], $fjende))

Skal ændres til:

if(array_key_exists($vis['brugernavn'], $fjender))
Avatar billede ridisc Nybegynder
30. december 2005 - 13:05 #14
Jeg får bare en blank side.
Avatar billede phillips Nybegynder
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 ;)
Avatar billede ridisc Nybegynder
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
Avatar billede cronaldo Nybegynder
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
}
?>
Avatar billede ridisc Nybegynder
30. december 2005 - 16:01 #18
Den virker heller ikke cronaldo.
Avatar billede phillips Nybegynder
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.
Avatar billede ridisc Nybegynder
30. december 2005 - 16:25 #20
Men jeg kan ikke se hvor jeg laver fejl?!
Avatar billede cronaldo Nybegynder
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å? :)
Avatar billede ridisc Nybegynder
31. december 2005 - 11:16 #22
Hmm, jeg forstår ikke lige. Vil i have seprofil.php'en?
Avatar billede ridisc Nybegynder
18. april 2006 - 20:55 #23
Lukker!
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