| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
wezzy
Medlem i: 3731 dagar Från: Pixbo
Status: Offline
#26338
|
Skrivet: 2003-03-06 12:18
Ämne: teori
|
|
|
Det verkar som om det går bra att logga in men att den inte behåller sessionen, utan blir utloggad direkt. (bara en teori, men jag ska testa den nu)
/Jacob |
|
|
|
| Till toppen på sidan |
|
wezzy
Medlem i: 3731 dagar Från: Pixbo
Status: Offline
#26540
|
Skrivet: 2003-03-07 16:08
Ämne: Jag hade fel...
|
|
|
Buhu
det fungerar fortfarande inte...
Jag har alltså ett inloggningsscript som utgår ifrån Maltes.
När jag försöker logga in med en obefintlig användare så är allt frid och fröjd. Jag får felmeddelande som säger precis det jag vill att den ska säga.
När jag loggar in med en befintlig användare så händer absolut ingenting. Sidan laddas om och jag är tillbaka där jag startade. Jag skickas inte vidare till välkomstsidan och jag skickas inte heller först till välkomstsidan och sedan ut därifrån, för den har jag dirigerat till en helt annan sida och dit kommer jag inte.
HJÄLP...
/Jacob |
|
|
|
| Till toppen på sidan |
|
Malte


Medlem i: 4084 dagar Från: Tingsryd
Status: Offline
#26564
|
Skrivet: 2003-03-07 19:39
Ämne:
|
|
|
Kolla så att du inte har någon tomrad eller mellanslag före PHP-taggen.
Detta gäller även den inkluderade filen conn.php, där du även får kolla upp så att det inte finns några dolda tecken efter den avslutande PHP-taggen. Detta gör du genom att sätta markören direkt efter den avslutande PHP-taggen och trycka upprepade gånger på delete. |
|
|
_________________ Funktion är vackert |
| Till toppen på sidan |
|
=JoNaZ=
Medlem i: 3760 dagar
Status: Offline
#26710
|
Skrivet: 2003-03-09 01:16
Ämne:
|
|
|
jag får följande felmeddelande längst upp på index.php sidan när jag testar scriptet
1: 2: Warning: session_start() [function.session-start]: open(/tmp\sess_c78fcdb300cb71ad08f5279af152ebac, O_RDWR) failed: No such file or directory (2) in e:\site\admin\index.php on line 2
3: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at e:\site\admin\index.php:2) in e:\site\admin\index.php on line 2
4: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at e:\site\admin\index.php:2) in e:\site\admin\index.php on line 2
5:
|
det var inget.. det funkar bra nu. jag hade glömt konfigurera php.ini |
|
|
|
| Till toppen på sidan |
|
hdidring
Medlem i: 3761 dagar Från: Sthlm
Status: Offline
#28275
|
Skrivet: 2003-03-19 00:54
Ämne: mysql_result funktion?
|
|
|
Skulle uppskatta om du ville förklara vad som sker i nedanstående kodstycke Malte. Har spanat mysql_result på www.php.net, och fattar inte riktigt hur det hänger ihop, samt varför COUNT(*)?
| Citat: |
// Kolla om användarnamnet är upptaget
$sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['user']}'";
$result = mysql_query($sql);
if (mysql_result($result, 0) > 0) {
$reg_error[] = 1;
} | |
|
|
_________________ Mvh Hans
Auri sacra fames |
| Till toppen på sidan |
|
Malte


Medlem i: 4084 dagar Från: Tingsryd
Status: Offline
#28280
|
Skrivet: 2003-03-19 07:58
Ämne:
|
|
|
COUNT(*) ger antal rader. Kunde i och för sig också skrivit COUNT(id) med samma resultat.
Alltså sql-satsen lämnar endast ifrån sig ett värde; hur många rader har kolumnen/fältet user som är lika med det postade användarnamnet.
mysql_result() är lämpligt att använda när det endast är enstaka värden som ska hämtas från resultatet, eftersom du med mysql_result() endast hämtar en kolumn från en rad.
mysql_result är inget man använder normalt för att hämta data från databas, dels för att det kräver många fler körningar mot mysql, dels att det rapporterar fel om ingen rad skulle hittas, men i det här fallet är det perfekt eftersom COUNT() alltid lämnar ifrån sig ett värde, och det är en rad, ett värde.
Syntaxen för mysql_result är
1: mysql_result(RESULTAT-SET, radnr [, kolumnnamn])
|
Är det bara en kolumn som hämtas från tabellen så behöver du inte ange kolumnnamn.
Och ska vi fortsätta i kodsnutten så läggs ett element med värde 1 till arrayen $reg_error om COUNT(*) skulle rapportera ett större värde än 0 (noll).
Lite mer om hur skriptet är uppbyggt kan du läsa här (fast kanske inte så mycket om din fråga): http://www.phpportalen.net/wiki/index.php?page=Enkel+inloggning+med+MySql+och+sessioner |
|
|
_________________ Funktion är vackert |
| Till toppen på sidan |
|
Coq_Rouge
Medlem i: 3712 dagar Från: Halmstad
Status: Offline
#30869
|
Skrivet: 2003-04-02 12:16
Ämne:
|
|
|
Sitter och försöker få ihop Maltes inloggnings script... vet inte vad jag gör för fel....
får följande fel meddelande i browsern:
| Citat: |
| Warning: Cannot modify header information - headers already sent by (output started at d:\program\apache group\apache\htdocs\styrteknik\conn.php:7) in d:\program\apache group\apache\htdocs\styrteknik\index.php on line 19 |
Och i index filen på rad 19 står det:
| Citat: |
| header("Location:welcome.php"); |
Vad gör jag för fel?? Har följt maltes anvinsningar slaviskt och databasen funkar som den skall... |
|
|
|
| Till toppen på sidan |
|
Malte


Medlem i: 4084 dagar Från: Tingsryd
Status: Offline
#30873
|
Skrivet: 2003-04-02 12:43
Ämne:
|
|
|
Hej Coq_Rouge, och välkommen till PHPportalen
Felmeddelandet säger att du har en "output" till webbläsaren i filen conn.php på rad 7.
Du får inte skicka något till webbläsaren före en header, och förutom HTML eller echo/print gäller även detta mellanslag eller tomrader utanför PHP-taggarna.
Det gäller alltså även efter PHP-taggen i conn.php, där får inte finnas någonting.
Hur ser din conn.php ut?
Något måste där finnas som skickar till webbläsaren. |
|
|
_________________ Funktion är vackert |
| Till toppen på sidan |
|
Coq_Rouge
Medlem i: 3712 dagar Från: Halmstad
Status: Offline
#30915
|
Skrivet: 2003-04-02 15:45
Ämne: Tackar!! =)
|
|
|
hehehe tackar Malte.... hade ju fullt med taggar i conn.php filen.
Agar mig själv med mussladden.
Än en gång tack för ditt snabba svar. |
|
|
|
| Till toppen på sidan |
|
Garfield
Medlem i: 3709 dagar
Status: Offline
#31190
|
Skrivet: 2003-04-03 20:19
Ämne:
|
|
|
tja tja, jag kvack-kvack-kvack detta script nu, men en sak som jag inte fattar!
om man trycker på logout, så händer ju ingenting
elle jo, sidan laddas om men man loggas inte ut!
kvack-kvack-kvack denna länk:
index.php?logout=
men sidan bara laddas om ju !
Kan ej logga ut! |
|
|
_________________ Get Firefox |
| Till toppen på sidan |
|
Malte


Medlem i: 4084 dagar Från: Tingsryd
Status: Offline
#31333
|
Skrivet: 2003-04-04 16:48
Ämne:
|
|
|
| Citat: |
Något som är väldigt viktigt om man har register_globals=On i sin php.ini, är att att använda ett unikt index för sina sessionsvariabler. Alltså man får inte ha några andra variabler som samma index eller variabelnamn som ett index för en sessionsvariabel. Ett sätt att säkra detta är att t.ex. göra som jag har gjort i exemplet; sätta 'sess_' före indexnamnet, typ $_SESSION['sess_variabelnamn'].
Om man inte gör detta kan sessionsvariabeln "krocka" med andra variabler och skumma saker hända. I det snällare fallet så går det inte att logga ut, i styggare fall kan sessionsvariabeln byta värde.
Undvik helst även att "översätta" sessionsvariabel från arrayformat, typ:
1: $sess_variabelnamn = $_SESSION['sess_variabelnamn'];
|
Då kan de "snällare" sakerna hända som beskrevs i stycket ovan. Utan använd sessionsvariabel direkt i sitt arrayformat $_SESSION['sess_variabelnamn']. |
Det är inte någon av ovanstående saker som spökar?
I och med att session_unset/session_destroy tömmer och raderar sessionen måste en ny session skapas med samma variabler. Det kan hända om du har register_globals=On och har gjort något i stil med ovanstående.
Har du register_globals lika med On eller Off ?
Du kan alltid prova med att lägga till ytterligare en sak för att avsluta sessionen.
1: if (isset($_GET['logout'])){
2: $_SESSION = array();
3: session_unset();
4: session_destroy();
5: header("Location: index.php");
6: exit;
7: }
|
I värsta fall får du även försöka ta död på cookien:
1: if (isset($_GET['logout'])){
2: $_SESSION = array();
3: session_unset();
4: session_destroy();
5: setcookie(session_name(),"","","/");
6: header("Location: index.php");
7: exit;
8: }
|
Koden för att ta bort cookien kan dock se lite annorlunda ut, beroende på inställningar i php.ini. |
|
|
_________________ Funktion är vackert |
| Till toppen på sidan |
|
Garfield
Medlem i: 3709 dagar
Status: Offline
#31340
|
Skrivet: 2003-04-04 16:56
Ämne:
|
|
|
| ok, ska testa att lägga till detta då setcookie(session_name(),"","","/"); |
|
|
_________________ Get Firefox |
| Till toppen på sidan |
|
Jacob

Medlem i: 3751 dagar Från: Göteborgish --> Lerum
Status: Offline
#31349
|
Skrivet: 2003-04-04 18:09
Ämne: funkar bra
|
|
|
Detta funkar bra för mig  |
|
|
_________________ HELLÖ RÖMAN!
(Notera att jag går mot strömmen och behåller min Jul-avatar!) |
| Till toppen på sidan |
|
Garfield
Medlem i: 3709 dagar
Status: Offline
#31351
|
Skrivet: 2003-04-04 18:15
Ämne:
|
|
|
nu kom det inte ens upp någon logga ur knapp !  |
|
|
_________________ Get Firefox |
| Till toppen på sidan |
|
Malte


Medlem i: 4084 dagar Från: Tingsryd
Status: Offline
#31398
|
Skrivet: 2003-04-04 22:21
Ämne:
|
|
|
| Får du ingen logout-länk i index.php så måste du ha ett inloggningsformulär, och då är man utloggad. |
|
|
_________________ Funktion är vackert |
| Till toppen på sidan |
|
|