webForumDet fria alternativet

Några frågor

5 svar · 250 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 993 inlägg
#1

Jah håller på med ett adminsystem på en sida där flera personer ska kunna editera sidorna och lägga till nytt material.

Jag har en del problem med inloggningen och utloggningen.

1. Jag använder sessions för att kontrollera ifall om man är inloggad eller ej, men IE blockar automatiskt cookies så det fungerar inte att logga in från alla datorer (utan att ta bort den funktionen). Går det här att komma runt på något sätt?

2. Utloggningen funkar bra på min lokala http server, men på webhotellet går det inte att logga ur. Jag loggar ut användaren genom att använda:

unset($_SESSION['loggedin'];

3. Hur får jag min sql query jag använder i inloggningen att matcha stora och små bokstäver i användarnamnet och lösenordet?

WebslaveMedlem sedan maj 2002647 inlägg
#2

1: Du kan skicka med sessions ID i länkarna... kommer inte, ihåg hur man gör men det löser sig om du söker.

2:

session_unset();
session_destroy();

;)

3: Om du vill att man inte ska kunna ha 2 användare som heter "Banan" och "banan" så kan du alltid använta strtolower($dinvariabel);

Alpha IIMedlem sedan maj 20002 993 inlägg
#3

1: Du kan skicka med sessions ID i länkarna... kommer inte, ihåg hur man gör men det löser sig om du söker.

Konstanten SID inehåller sessionidet. Jag vet det men jag har för mig att jag lyckats med detta på något enkelt sätt förut utan att behöva lägga till SID i varje länk :l

2:

session_unset();
session_destroy();

Det tar bort alla sessions, inte för att det gör något men jag kan inte förstå varför unset($_SESSION[namn]) inte ska fungera när manualen säger så.

3: Om du vill att man inte ska kunna ha 2 användare som heter "Banan" och "banan" så kan du alltid använta strtolower($dinvariabel);

Det kommer nog inte hjälpa eftersom det är just nu kan man skriva namnet och lösenordet hur man vill och man blir ändå inloggad. Kan man på något sätt skriva en query som tar hänsyn versaler och gemener?

MatteMedlem sedan aug. 20002 975 inlägg
#4

Det låter som om du har en domän på ett frameset (adressfältet) och en annan i en frame som hanterar din sida.
Då vill inte IE6 i defaultinställning sätta sessionscookies.

I manualen har jag hittat något som påstås fixa det här. Jag har inte testat själv, men du kan ju alltid prova.
Lägg följande före session_start():

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
MatteMedlem sedan aug. 20002 975 inlägg
#5

unset($_SESSION['variabel']) fungerar inte när register_globals är satt förrän PHP-version 4.3.0. Detta p.g.a. en bugg i PHP i de tidigare versionerna.

bohlinMedlem sedan mars 2000263 inlägg
#6

3.
http://www.mysql.com/doc/en/String_comparison_functions.html säger:
SELECT ..... WHERE strcmp(username, 'bohlin') = 0 AND strcmp(password, 'bohlinslösenord') =0

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)