Avatar billede dennism Nybegynder
03. marts 2002 - 12:41 Der er 22 kommentarer og
2 løsninger

PHP Brugersystem login. ..

Hvorfor virker denne kode ikke, og hvad skal jeg gøre for at få den til at virke:

if ($action == "logind2") {

include("include/db_ind.php");
$foresp = mysql_query("SELECT brugernavn, kode FROM brugere WHERE brugernavn = '$indtastet_brugernavn'");

$row = mysql_fetch_array($foresp);

if ($row[kode] == $indtastet_adgangskode) {
$resultat = "korrekt";
} else {
$resultat = "fejl";
}

if ($resultat == "korrekt") {
session_start();
session_register("brugernavn");
session_register("kode");
$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
}

}
Avatar billede lauer Nybegynder
03. marts 2002 - 13:09 #1
prøv
if ($resultat == "korrekt") {
session_start();
$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
session_register("brugernavn");
session_register("kode");
}
Avatar billede dennism Nybegynder
03. marts 2002 - 13:37 #2
Virker ikke... Jeg får følgende fejl:

Warning: Cannot send session cookie - headers already sent by (output started at d:\htdocs\fodboldsiden\include\db_ind.php:2) in d:\htdocs/fodboldsiden/bruger.php on line 17
Avatar billede mortenfn Nybegynder
03. marts 2002 - 13:42 #3
for mig at se sætter du ikke værdien brugernavn og kode

if ($resultat == "korrekt") {

$kode = $indtastet_adgangskode
$brugernavn = $indtastet_brugernavn

session_start();
session_register("brugernavn");
session_register("kode");

$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
}
Avatar billede mortenfn Nybegynder
03. marts 2002 - 13:42 #4
cookie og sesion skal altid før anden udskrift til siden
Avatar billede mortenfn Nybegynder
03. marts 2002 - 13:48 #5
du kan starte siden med 

ob_start();

og slutte siden med

ob_end_flush();

så styrer php selv udskriftrækkefølgen og du får ikke denne fejl - siderne bliver en smule langsommere
Avatar billede dennism Nybegynder
03. marts 2002 - 13:52 #6
Hvad skal 'ob_end_flush(); ' og  'ob_start();' gøre? Jeg forstår ikke helt deres funktion... Gider du indsætte dem i dette script:

<?php

if ($action == "logind2") {

include("include/db_ind.php");
$foresp = mysql_query("SELECT brugernavn, kode FROM brugere WHERE brugernavn = '$indtastet_brugernavn'");

$row = mysql_fetch_array($foresp);

if ($row[kode] == $indtastet_adgangskode) {
$resultat = "korrekt";
} else {
$resultat = "fejl";
}

if ($resultat == "korrekt") {
session_start();
$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
session_register("brugernavn");
session_register("kode");
}

}
Avatar billede mortenfn Nybegynder
03. marts 2002 - 14:06 #7
hvis dit script include fra et andet script skal det sættes ind i det.

men ellers

<?php
ob_end_flush();

if ($action == "logind2") {

include("include/db_ind.php");
$foresp = mysql_query("SELECT brugernavn, kode FROM brugere WHERE brugernavn = '$indtastet_brugernavn'");

$row = mysql_fetch_array($foresp);

if ($row[kode] == $indtastet_adgangskode) {
$resultat = "korrekt";
} else {
$resultat = "fejl";
}

if ($resultat == "korrekt") {
session_start();
$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
session_register("brugernavn");
session_register("kode");
}

}

ob_start();

din fejl kommer her include("include/db_ind.php"); du må have noget udskrift i denne fil
Avatar billede mortenfn Nybegynder
03. marts 2002 - 14:07 #8
NEJ NU sover jeg om igen
Avatar billede mortenfn Nybegynder
03. marts 2002 - 14:08 #9
<?php
ob_start();

if ($action == "logind2") {

include("include/db_ind.php");
$foresp = mysql_query("SELECT brugernavn, kode FROM brugere WHERE brugernavn = '$indtastet_brugernavn'");

$row = mysql_fetch_array($foresp);

if ($row[kode] == $indtastet_adgangskode) {
$resultat = "korrekt";
} else {
$resultat = "fejl";
}

if ($resultat == "korrekt") {
session_start();
$brugernavn = $HTTP_POST_VARS["row[brugernavn]"];
$kode = $HTTP_POST_VARS["row[kode]"];
session_register("brugernavn");
session_register("kode");
}

}
ob_end_flush();
Avatar billede dennism Nybegynder
03. marts 2002 - 14:17 #10
Hvad skal jeg så gøre hvis jeg vil slette en 'session', når brugeren logger ud?
Er der en kommando er heder noget ala: session_delete("brugernavn"); ??
Avatar billede Slettet bruger
03. marts 2002 - 14:36 #11
session_unregister("brugernavn");
session_unset("brugernavn");

så skulle den være væk...
Avatar billede dennism Nybegynder
03. marts 2002 - 14:40 #12
Skal jeg køre begge?
Avatar billede Slettet bruger
03. marts 2002 - 14:47 #13
jep...
Avatar billede dennism Nybegynder
03. marts 2002 - 15:35 #14
Findes der en kommando der kan slette en cookie?
Avatar billede mortenfn Nybegynder
03. marts 2002 - 17:19 #15
setcookie("navn","");
Avatar billede dennism Nybegynder
03. marts 2002 - 17:21 #16
-- mortenfn

Findes der en kommando der kan slette en cookie?
Avatar billede dennism Nybegynder
03. marts 2002 - 17:26 #17
Her kan i se hvordan min kode ser ud nu:
________________________
<?

if (($action_bruger == "logind2") || ($ses_log)) {

ob_start();

if ($autologind == "on") {
setcookie("action_bruger", "logind2", time()+1209600);
setcookie("indtastet_adgangskode", "$indtastet_adgangskode", time()+1209600);
setcookie("indtastet_brugernavn", "$indtastet_brugernavn", time()+1209600);
}

include("include/db_ind.php");
$foresp = mysql_query("SELECT brugernavn, kode, point, point_i_spil, navn, id FROM brugere WHERE brugernavn = '$indtastet_brugernavn'");

$bruger_row = mysql_fetch_array($foresp);

if (($bruger_row[kode] == $indtastet_adgangskode) && ($bruger_row[brugernavn] == $indtastet_brugernavn)) {
$bruger_status = "logget_ind";

$bruger_bruger = "$bruger_row[brugernavn]";
$bruger_kode = "$bruger_row[kode]";
$bruger_point = "$bruger_row[point]";
$bruger_point_i_spil = "$bruger_row[point_i_spil]";
$bruger_navn = "$bruger_row[navn]";
$bruger_id = "$bruger_row[id]";

session_start();
$brugernavn = $HTTP_POST_VARS["bruger_row[brugernavn]"];
$kode = $HTTP_POST_VARS["bruger_row[kode]"];
$ses_log = $HTTP_POST_VARS["ses_log"];
session_register("ses_log");
session_register("brugernavn");
session_register("kode");
} else {
$resultat = "fejl";
}

ob_end_flush();

}
________________________

Denne kode er i toppen af alle mine sider... Jeg kan sagtens logge ind, og den opretter også fint nogle 'session´s' og 'cookies'... Men når jeg så trykker på et link, som fx. nyheder.php, så er det kun, når cookien er oprettet, at den stadig er logget ind!
Hvad kan jeg gøre for at lave sådan at brugerens cookies automatisk slettes når man forlader siden (ikke bare index.php, men når man forlader domænet)? Eller er der evt. en anden måde at løse mit problem på?
Avatar billede mortenfn Nybegynder
05. marts 2002 - 20:16 #18
den her kører når en side forlades

der er et par "rigtige" muligheder men i php er de begrænset for php kører jo som bekendt på serveren

du kan bruge denne sammen med en side som indeholder een frame (som er hele siden) når frame-siden lukkes køres scriptet

<body onUnLoad="window.open('din_fil.php', name, 'width=5,height=5,toolbar=0,menubar=0');">
Avatar billede mortenfn Nybegynder
05. marts 2002 - 20:22 #19
det er sådan jeg mener - der opstår så andre problemer

<body onUnLoad="window.open('slet_cookies.php', name, 'width=5,height=5,toolbar=0,menubar=0');">

<frameset rows="*">
    <frame name="side" src="side_1.php">
    <noframes>
    </noframes>
</frameset>
Avatar billede dennism Nybegynder
06. marts 2002 - 17:12 #20
Men:
onUnLoad="window.open('slet_cookies.php', name, 'width=5,height=5,toolbar=0,menubar=0');"

Virker den kun i fremes?
Avatar billede dennism Nybegynder
06. marts 2002 - 17:39 #21
Hvordan sketter man en cookie?
Avatar billede dennism Nybegynder
06. marts 2002 - 17:39 #22
sketter = sletter...
Avatar billede dennism Nybegynder
08. marts 2002 - 07:56 #23
-- mortenfn

Der må da være en anden måde at gøre det på!?
Her på eksperten bruger de da ikke frames, og der bliver man da logget ud, når man forlader siden (hvis man ikke har aktiveret auto-login)... Men hvordan køre de fx. her på eksperten?
Avatar billede dennism Nybegynder
12. marts 2002 - 18:04 #24
Nå... Jeg fandt selv på noget andet... Lukker her!
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