Avatar billede julemandenb Nybegynder
18. februar 2010 - 20:29 Der er 16 kommentarer og
1 løsning

Tjek om tagwall_ban er sat til = 0 uden session

Heej Eksperten :b

Ja. på min side har jeg en tagwall. Lige nu starter man
en session med Tagwall_ban som skal tjekke om det er
til =0 eller =1 hvis den er =1 så man bannet. og hvis
man er = 0 så man ikke bannet.

I det man logger ind starter du en Session
Men hvis du nu er online og en bruger bliver
tagwall bannet altså tagwall_ban = 1
så har man jo stadig adgang fordi session huske
der tidligere nemlig tagwall_ban = 0

Hvordan får man den til at tjekke
uden session. så den tjekker HVER
gang man besøger tagwall.php (:

M.v.h
Mikkel Bering
Avatar billede zynzz Praktikant
18. februar 2010 - 20:34 #1
Jamen du tjekker det i toppen af tagwallen??!


fx.:
if(TjekBanned("Tagwall")){
//fejl..
}else{
//vis tagwall
}
Avatar billede majbom Novice
18. februar 2010 - 20:38 #2
hvor gemmer du henne om en bruger en banned? i en database vel?
Avatar billede julemandenb Nybegynder
18. februar 2010 - 20:49 #3
Ja. Splazz i en DB
Avatar billede majbom Novice
18. februar 2010 - 20:54 #4
så skal du jo lave et db-opslag, når brugeren besøger tagwall.php, derefter kan du så gemme resultatet i en session og starte med at tjekke om den session er sat inden du spørger db'en...

hvis f.eks. brugeren er banned er der ingen grund til at tjekke igen, når han besøger tagwall.php for anden gang i samme session, men omvendt, hvis han ikke er banned er det måske en god ting at tjekke hver gang han besøger siden (hvis det gav mening :) )

men det er jo en smagssag, du kan også bare nøjes med at tjekke når han logger ind og så gemme det i sessionen dér...
Avatar billede julemandenb Nybegynder
18. februar 2010 - 20:57 #5
Hej Splazz...
Det nederste er det jeg gør i forvejen.
Problemet er at hvis han så bliver bannet
EFTEr sig login så er han jo ALTID unbannet
indtil han logger ind næste gang

Der ryger lidt pointen i at banne en
spammende bruger :D
Avatar billede majbom Novice
18. februar 2010 - 21:09 #6
præcis, det var også derfor jeg skrev det første :)

der tjekker den en ikke bannet bruger hver gang han besøger siden i samme login-periode, hvorimod den kun tjekker en banned bruger første gang...
Avatar billede julemandenb Nybegynder
18. februar 2010 - 21:10 #7
Men hvordan skal det laves? :s
Avatar billede majbom Novice
18. februar 2010 - 21:19 #8
noget a la:

if($_SESSION['ban']){
  //bruger er banned
  /skriv evt besked og send videre til forside eller andet efter 5 sek.
}else{
  //bruger er ikke banned (i session), tjek db og sæt $_SESSION['ban']=1; hvis brugeren er banned i db
}

eller skal du have det hele serveret? ;o)
Avatar billede julemandenb Nybegynder
18. februar 2010 - 21:28 #9
Jamen det skal være uden Session? :s
Avatar billede majbom Novice
18. februar 2010 - 21:45 #10
så må du tjekke i databasen hver gang man besøger tagwallen

men hvorfor ikke bruge sessions? hvordan fungerer dit login-system? osse uden sessions?
Avatar billede julemandenb Nybegynder
18. februar 2010 - 22:05 #11
Nej. det funger med Session. men problemet er
at i det du udfylder login formulars og trykker "Login" bliver man sendt til "check-Login.php" hvis der er fejl skriver den "Fejl i login" hvis det lukkedes starter den følgende sessioner

$_SESSION['login'] = "ok";
$_SESSION['login'] = "nej";
$_SESSION['id'] = $row[id];
$_SESSION['user'] = $row[user];
$_SESSION['admin_id'] = $row['admin_id'];
$_SESSION['ansogt_sendt'] = $row['ansogt_sendt'];
$_SESSION['tagwall'] = $row['tagwall'];
$_SESSION['debat'] = $row['debat'];

Problemet er at efter den har startet følgende sessioner
så hjælper det jo INGEN ting at en admin tagwall
banner brugeren da den huske der der blev valgt inden
han blev bannet... Det jeg ønsker er jo så at den
skal ungå at skrive session eller noget andet smart
og nemt ( Er lidt nu i PHP ) så man ikke skal logge
ud for at tagwall banningen træder i kræft!


Håber ikke det blev for indviklet :D
Avatar billede julemandenb Nybegynder
18. februar 2010 - 22:59 #12
Ved ikke lige hvorfor jeg har Login = ok og Login = nej :s
Avatar billede majbom Novice
19. februar 2010 - 01:34 #13
det er jo osse derfor at jeg mener du skal tjekke en brugers ban-status i db, hvis han IKKE er bannet, HVER gang han går ind på tagwallendu kan jo godt ændre din session efter den er sat ved login...
Avatar billede julemandenb Nybegynder
19. februar 2010 - 07:12 #14
Splazz, Hvordan? :D
- Kan du give nogle kode eks? :D
Avatar billede majbom Novice
19. februar 2010 - 10:12 #15
har du ikke selv lavet dit login-system?

det er ret simpelt:

$res = mysql_query("SELECT ban FROM users WHERE id='$user_id'") or die(mysql_error());
$user_ban = mysql_fetch_array($res);
$_SESSION['ban'] = $user_ban['ban'];
if($_SESSION['ban']){
  echo "du er banned i en uge, vi ses!";
}else{
  //vis tagwall
}
Avatar billede julemandenb Nybegynder
29. marts 2010 - 17:58 #16
Tak for jers svar
- Tråden er lukket
Avatar billede majbom Novice
29. marts 2010 - 20:13 #17
øøh selv tak?
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