|
| ikke rigtig login, men kan ikke finde fejl~ Fra : sune moldt |
Dato : 13-06-05 19:25 |
|
jeg har lavet et login system som på hjemmesideskolen.dk, i php
med MySQL database som også virker, men når jeg har indtastet et
brugernavn og kodeord, skiver den"
Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at
/web/www/frac/users/web4my/forside.php:2) in
/web/www/frac/users/web4my/forside.php on line 11
Ukorrekt login
Du skal være logget ind for at se disse sider. Log in" nogen der
kan hjælpe..
web4my.frac.dk/ny.php
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Martin Ploug (13-06-2005)
| Kommentar Fra : Martin Ploug |
Dato : 13-06-05 19:55 |
|
> Warning: session_start(): Cannot send session cache limiter -
> headers already sent (output started at
> /web/www/frac/users/web4my/forside.php:2) in
> /web/www/frac/users/web4my/forside.php on line 11
Jeg har lige siddet med det samme problem, og jeg mener det
har noget at gøre med at du skal have den del af din php kode,
som handler om sessions op øverst før din < html>< head> <body>..osv.
Den php del skal vist nok starte på aller øverste linie.
se evt her http://webmaster.hephey.dk/guide/40/
Håber du kan bruge det til noget.
Med venlig hilsen
Martin
| |
Zilla (13-06-2005)
| Kommentar Fra : Zilla |
Dato : 13-06-05 20:11 |
|
Martin Ploug wrote:
> Den php del skal vist nok starte på aller øverste linie.
Der må ikke være sendt noget til browseren når man kører session_start().
ikke engang et mellemrum, så følgende ville give det samme problem,
fordi der er et mellemrum før <?php
<?php
session_start()
etc. etc.
som der står i fejlmeddelelsen så sendes der et output til browseren på
linie 2:
"(output started at /web/www/frac/users/web4my/forside.php:2)"
Zilla
| |
Martin Ploug (13-06-2005)
| Kommentar Fra : Martin Ploug |
Dato : 13-06-05 20:21 |
|
> Der må ikke være sendt noget til browseren når man kører session_start().
> ikke engang et mellemrum, så følgende ville give det samme problem,
> fordi der er et mellemrum før <?php
> <?php
>session_start()
> etc. etc.
> som der står i fejlmeddelelsen så sendes der et output til browseren på
> linie 2:
Til Zilla
Ok, så lærte jeg lige lidt ekstra.
Er det som regel ved brug af sessioner, at man kan få den fejlmeddelelser,
eller
er der andre php funktioner/scripts, hvor den fejlmeddelelse ofte kommer?
Ja, undskyld jeg lige indskyder dette spørgsmål, det er jo ikke mig der har
startet
indlæget
Håber det er ok.
- Martin
| |
Jacob Atzen (13-06-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 13-06-05 21:25 |
|
On 2005-06-13, Martin Ploug <mploug@mail.tele.dk> wrote:
> Er det som regel ved brug af sessioner, at man kan få den
> fejlmeddelelser, eller er der andre php funktioner/scripts, hvor den
> fejlmeddelelse ofte kommer?
Alt, hvor der bruges header().
--
Med venlig hilsen
- Jacob Atzen
| |
Peter Brodersen (13-06-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-06-05 21:27 |
|
On 13 Jun 2005 20:25:24 GMT, Jacob Atzen <jacob@aub.dk> wrote:
>Alt, hvor der bruges header().
... hvilket i praksis også omfatter setcookie() og session_start()
--
- Peter Brodersen
| |
sune moldt (13-06-2005)
| Kommentar Fra : sune moldt |
Dato : 13-06-05 22:44 |
|
Peter Brodersen wrote in dk.edb.internet.webdesign.serverside.php:
> On 13 Jun 2005 20:25:24 GMT, Jacob Atzen <jacob@aub.dk> wrote:
>
> >Alt, hvor der bruges header().
>
> ... hvilket i praksis også omfatter setcookie() og session_start()
>
> --
> - Peter Brodersen
det skulle være rettet nu.. vil i prøve at se, for nu kommer der
frem med den er logget forkert ind.. Hvad kan der være galt??
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Peter Brodersen (13-06-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-06-05 23:01 |
|
On 13 Jun 2005 21:43:48 GMT, sune moldt <sunemoldt@hotmail.com> wrote:
> det skulle være rettet nu.. vil i prøve at se, for nu kommer der
>frem med den er logget forkert ind.. Hvad kan der være galt??
Det er ikke til at sige, idet vi ikke kender din kode.
Hvis du vil se, hvad session'en indeholder, kan du prøve med følgende
PHP-kode:
print "<pre>";
print_r($_SESSION);
print "</pre>";
Så kan du se, om de rigtige variable er blevet sat.
--
- Peter Brodersen
| |
sune moldt (13-06-2005)
| Kommentar Fra : sune moldt |
Dato : 13-06-05 22:37 |
|
Martin Ploug wrote in dk.edb.internet.webdesign.serverside.php:
> > Der må ikke være sendt noget til browseren når man kører session_start().
> > ikke engang et mellemrum, så følgende ville give det samme problem,
> > fordi der er et mellemrum før <?php
>
> > <?php
> >session_start()
> > etc. etc.
>
> > som der står i fejlmeddelelsen så sendes der et output til browseren på
> > linie 2:
>
> Til Zilla
>
> Ok, så lærte jeg lige lidt ekstra.
> Er det som regel ved brug af sessioner, at man kan få den fejlmeddelelser,
> eller
> er der andre php funktioner/scripts, hvor den fejlmeddelelse ofte kommer?
>
> Ja, undskyld jeg lige indskyder dette spørgsmål, det er jo ikke mig der har
> startet
> indlæget
> Håber det er ok.
>
> - Martin
>
> Det er helt okay Martin.. :) jeg kan ikk finde ud af phph, så vil gerne have
hjælp... Hvad skulle jeg gøre Zilla?? Undskyld men fik det ikke med..
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Zilla (14-06-2005)
| Kommentar Fra : Zilla |
Dato : 14-06-05 13:08 |
|
sune moldt wrote:
> hjælp... Hvad skulle jeg gøre Zilla?? Undskyld men fik det ikke med..
I den fejlmeddelelse du skrev, står der at der bliver sendt et eller
andet output til browseren på linie 2 i dit script. Eftersom jeg ikke
kender dit script så kan jeg ikke sige præcist hvad der er i vejen, men
fejlen kan f.eks. skyldes at du echo'er eller printer noget. Så
session_start() skal flyttes op ovenover linie 2.
Når jeg selv bruger sessions, så starter jeg dem altid på linie 2 i mit
script for at undgå fejl:
<?php
session_start();
//Herefter kan du sende alt det du vil til browseren.
echo "Output til browser";
//etc. etc.
?>
Man kan altså godt definere variabler og køre funktioner osv. inden man
starter en session så længe der ikke sendes noget til browseren.
Det kan sommetider være nyttigt først at starte en session hvis nogle
betingelser er opfyldt. Så sætter man den bare ind i en if-sætning:
<?php
$user = $_REQUEST[user];
$pass = $_REQUEST[pass];
if($user != "et eller andet brugernavn" || $pass != "et eller andet
password") {
echo "Forkert brugernavn eller password";
} else {
session_start();
echo "Du er logget ind";
}
?>
I ovenstående skrives der kun noget til browseren hvis brugernavn eller
password er forkert og starter en session hvis begge er rigtige. Her
bliver der altså heller ikke sendt noget til browseren før session'en
startes.
Håber forklaringen hjalp. Se evt. også her: http://www.php.net/session_start
Zilla
| |
sune moldt (14-06-2005)
| Kommentar Fra : sune moldt |
Dato : 14-06-05 18:22 |
|
Zilla wrote in dk.edb.internet.webdesign.serverside.php:
> sune moldt wrote:
> > hjælp... Hvad skulle jeg gøre Zilla?? Undskyld men fik det ikke med..
>
> I den fejlmeddelelse du skrev, står der at der bliver sendt et eller
> andet output til browseren på linie 2 i dit script. Eftersom jeg ikke
> kender dit script så kan jeg ikke sige præcist hvad der er i vejen, men
> fejlen kan f.eks. skyldes at du echo'er eller printer noget. Så
> session_start() skal flyttes op ovenover linie 2.
> Når jeg selv bruger sessions, så starter jeg dem altid på linie 2 i mit
> script for at undgå fejl:
>
> <?php
> session_start();
> //Herefter kan du sende alt det du vil til browseren.
> echo "Output til browser";
> //etc. etc.
> ?>
>
> Man kan altså godt definere variabler og køre funktioner osv. inden man
> starter en session så længe der ikke sendes noget til browseren.
> Det kan sommetider være nyttigt først at starte en session hvis nogle
> betingelser er opfyldt. Så sætter man den bare ind i en if-sætning:
>
> <?php
> $user = $_REQUEST[user];
> $pass = $_REQUEST[pass];
> if($user != "et eller andet brugernavn" $pass != "et eller andet
> password") {
> echo "Forkert brugernavn eller password";
> } else {
> session_start();
> echo "Du er logget ind";
> }
> ?>
>
> I ovenstående skrives der kun noget til browseren hvis brugernavn eller
> password er forkert og starter en session hvis begge er rigtige. Her
> bliver der altså heller ikke sendt noget til browseren før session'en
> startes.
>
> Håber forklaringen hjalp. Se evt. også her: http://www.php.net/session_start
>
> Zilla
Min side ser sådanne ud:
<? $strTitle="forside";?>
<? include("header.inc"); ?>
<body>
<div class="indhold">
<?php
session_start();
if(isset($_SESSION['logget_ind'])){
echo " <h1> $strTitle </h1>
<p>Dette er indhold på en beskyttet side</p> ";
}
else
{
echo "<h1>Ukorrekt login</h1>
<p>Du skal være logget ind for at se disse sider. <a class=\"tlink\"
href=\"default.php\">Log in</a></p>";
}
?>
</div>
<? include("menu2.inc"); ?>
</body>
</html>
------------------------
Hvad er der galt?? Når man indtaster brugernavn og kodeord kommer man ind på
( www.web4my.frac.dk/ny.php
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Peter Brodersen (15-06-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 15-06-05 15:05 |
|
On 14 Jun 2005 17:22:14 GMT, sune moldt <sunemoldt@hotmail.com> wrote:
><div class="indhold">
>
><?php
>session_start();
Som nævnt flere steder i tråden, så må du ikke have outputtet noget på
din side før din session_start(). Er du i tvivl, så flyt den linje
helt øverst i dit script.
--
- Peter Brodersen
| |
Erik Ginnerskov (15-06-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 15-06-05 23:31 |
|
sune moldt wrote:
> Min side ser sådanne ud:
>
> [klip en masse kode]
Det skal være sådan:
<?php
session_start();
?>
<? $strTitle="forside";?>
<? include("header.inc"); ?>
<body>
<div class="indhold">
<?php
if(isset($_SESSION['logget_ind'])){
echo " <h1> $strTitle </h1>
....
....
Altså, som flere har påpeget og som det også er vist på min side: Session
*skal* startes, før der sendes noget til browseren.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/
| |
sune moldt (16-06-2005)
| Kommentar Fra : sune moldt |
Dato : 16-06-05 16:06 |
|
Erik Ginnerskov wrote in dk.edb.internet.webdesign.serverside.php:
> sune moldt wrote:
>
> > Min side ser sådanne ud:
> >
> > [klip en masse kode]
>
> Det skal være sådan:
>
> <?php
> session_start();
> ?>
> <? $strTitle="forside";?>
>
> <? include("header.inc"); ?>
>
> <body>
>
> <div class="indhold">
>
> <?php
> if(isset($_SESSION['logget_ind'])){
> echo " <h1> $strTitle </h1>
> ....
> ....
>
> Altså, som flere har påpeget og som det også er vist på min side: Session
> *skal* startes, før der sendes noget til browseren.
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk - http://ginnerskov.dk
> http://html-faq.dk/
>
> Prøv at kikke nu.. web4my.fracdk/ny.php - hvad skal jeg gøre, hvis jeg har
en side der hedder: galleriet.html som også skal beskyttes af et brugernavn
og kodeord..
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Christoffer (16-06-2005)
| Kommentar Fra : Christoffer |
Dato : 16-06-05 18:03 |
|
"sune moldt" <sunemoldt@hotmail.com> skrev i en meddelelse
news:42b1956e$0$18643$14726298@news.sunsite.dk...
> Erik Ginnerskov wrote in dk.edb.internet.webdesign.serverside.php:
>> sune moldt wrote:
>>
>> > Min side ser sådanne ud:
>> >
>> > [klip en masse kode]
>>
>> Det skal være sådan:
>>
>> <?php
>> session_start();
>> ?>
>> <? $strTitle="forside";?>
>>
>> <? include("header.inc"); ?>
>>
>> <body>
>>
>> <div class="indhold">
>>
>> <?php
>> if(isset($_SESSION['logget_ind'])){
>> echo " <h1> $strTitle </h1>
>> ....
>> ....
>>
>> Altså, som flere har påpeget og som det også er vist på min side: Session
>> *skal* startes, før der sendes noget til browseren.
>>
>> --
>> Med venlig hilsen
>> Erik Ginnerskov
>> http://hjemmesideskolen.dk - http://ginnerskov.dk
>> http://html-faq.dk/
>>
>> Prøv at kikke nu.. web4my.fracdk/ny.php - hvad skal jeg gøre, hvis jeg
>> har
> en side der hedder: galleriet.html som også skal beskyttes af et
> brugernavn
> og kodeord..
Hvis det bare skal tjekkes om brugeren er logget ind så skriv
<?php
session_start();
?>
<html>
<head>....</head>>
<body>
<?php
if(isset($_SESSION['logget_ind'])){
Print "Informationen for de brugere som er logget ind";
}
Else {
Print "Information til de brugere som endnu ikke er logget ind";
}
?>
</body>
</html>
--
Christoffer
| |
sune moldt (16-06-2005)
| Kommentar Fra : sune moldt |
Dato : 16-06-05 18:29 |
|
Christoffer wrote in dk.edb.internet.webdesign.serverside.php:
> "sune moldt" <sunemoldt@hotmail.com> skrev i en meddelelse
> news:42b1956e$0$18643$14726298@news.sunsite.dk...
> > Erik Ginnerskov wrote in dk.edb.internet.webdesign.serverside.php:
> >> sune moldt wrote:
> >>
> >> > Min side ser sådanne ud:
> >> >
> >> > [klip en masse kode]
> >>
> >> Det skal være sådan:
> >>
> >> <?php
> >> session_start();
> >> ?>
> >> <? $strTitle="forside";?>
> >>
> >> <? include("header.inc"); ?>
> >>
> >> <body>
> >>
> >> <div class="indhold">
> >>
> >> <?php
> >> if(isset($_SESSION['logget_ind'])){
> >> echo " <h1> $strTitle </h1>
> >> ....
> >> ....
> >>
> >> Altså, som flere har påpeget og som det også er vist på min side: Session
> >> *skal* startes, før der sendes noget til browseren.
> >>
> >> --
> >> Med venlig hilsen
> >> Erik Ginnerskov
> >> http://hjemmesideskolen.dk - http://ginnerskov.dk
> >> http://html-faq.dk/
> >>
> >> Prøv at kikke nu.. web4my.fracdk/ny.php - hvad skal jeg gøre, hvis jeg
> >> har
> > en side der hedder: galleriet.html som også skal beskyttes af et
> > brugernavn
> > og kodeord..
> Hvis det bare skal tjekkes om brugeren er logget ind så skriv
> <?php
> session_start();
> ?>
> <html>
> <head>....</head>>
> <body>
> <?php
> if(isset($_SESSION['logget_ind'])){
> Print "Informationen for de brugere som er logget ind";
> }
>
> Else {
> Print "Information til de brugere som endnu ikke er logget ind";
> }
> ?>
> </body>
> </html>
>
> --
> Christoffer
>
>
>
> skal være sådan, hvis man ikk er logget in, så kan man ikke se siden (evt
viderstilles til en anden side)
>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Erik Ginnerskov (16-06-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 16-06-05 22:16 |
| | |
Christoffer (17-06-2005)
| Kommentar Fra : Christoffer |
Dato : 17-06-05 12:58 |
|
> skal være sådan, hvis man ikk er logget in, så kan man ikke se siden (evt
> viderstilles til en anden side)
I Else retter du print til:
Print "<META HTTP-EQUIV='Refresh' Content='4;
Url= '>http://www.ditdomæne.dk/index.php'> <font color='darkred'>Du har ikke
adgang til siden, og viderestilles til index.php</font>";
--
Christoffer
| |
Erik Ginnerskov (17-06-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 17-06-05 14:10 |
| | |
Christoffer (17-06-2005)
| Kommentar Fra : Christoffer |
Dato : 17-06-05 14:43 |
|
>> Print "<META HTTP-EQUIV='Refresh' Content='4;
>> Url= '>http://www.ditdomæne.dk/index.php'> <font color='darkred'>Du har
>> ikke adgang til siden, og viderestilles til index.php</font>";
>
> Vil vist ikke virke. En meta-refresh skal stå i sidens head, ikke nede i
> body.
Rigtig, havde lånt det fra min egen side, og der er if sætning bygget
anderledes op. Undskylder fejlen.
--
Christoffer
| |
|
|