miss-g Seniormester
12. marts 2018 - 23:07 Der er 14 kommentarer og
1 løsning

Warning: Cannot modify header information

Så har jeg brug for hjælp igen.

Min hjemmeside kommer med fejl:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/syord.dk/public_html/adm/index.php:2) in /var/www/syord.dk/webassist/mysqli/authentication.php on line 206

I filen authentication.php linje 206 står:
header("location: " . $this->addQuerystring($url));

Og her hele kodedelen:
    public function redirect($url) {
      if ($url) {
        header("location: " . $this->addQuerystring($url));
        die();
      }
    }
------------------------------
What to do??
arne_v Ekspert
12. marts 2018 - 23:20 #1
Fejlen betyder at du forsoeger at redirecte til en anden side efter at du er startet paa at outputte nuvaerende side. Det kan man ikke.
miss-g Seniormester
12. marts 2018 - 23:30 #2
Ok, jeg tester om min user authorization virker. Det er korrekt at jeg bare indtaster en adresse og springer log ind siden over. Den burde vel hoppe hen til log ind siden, som jeg har bedt den om?
miss-g Seniormester
12. marts 2018 - 23:34 #3
Denne bliver indlæst først:
<?php require_once('../../webassist/mysqli/authentication.php'); ?>

Og dette bagefter:

<?php
if ("" == "") {
  $RestrictAccess = new WA_MySQLi_Auth();
  $RestrictAccess->Action = "restrict";
  $RestrictAccess->Name = "admin";
  $RestricAccessRedirect = "logind.php";
  if (function_exists("rel2abs")) $RestricAccessRedirect = $RestricAccessRedirect?rel2abs($RestricAccessRedirect,dirname(__FILE__)):"";
  $RestrictAccess->FailRedirect = $RestricAccessRedirect;
  $RestrictAccess->execute();
}
?>
miss-g Seniormester
12. marts 2018 - 23:45 #4
Jeg kan lige tilføje, at det virker efter hensigten på testserveren (Wamp/PHP 7), men altså ikke på webhotellet, som også kører PHP 7. ??
acore Ekspert
13. marts 2018 - 09:00 #5
Det kan skyldes, at der ved en fejl har sneget sig en blanbk linie ind i din kode inden

<php?

Derved outputtes en blank linie og du kan ikke redirecte.
miss-g Seniormester
13. marts 2018 - 13:47 #6
Tak acore. Der er ingen blank linje.

Kan det være noget med uft-8 / phpMysql eller ?  Det er jo underligt, at det virker på localhost, men ikke på webhotellet?
acore Ekspert
13. marts 2018 - 13:55 #7
Er filerne gemt i ANSI? Er de i UTF-8 kan den såkaldte BOM give problemer.
arne_v Ekspert
13. marts 2018 - 15:26 #8
For at koden er korrekt saa maa der ikke outputtes saa meget som en enkelt byte inden header.

I praksis kan der godt caches noget output, hvilket kan tillade en lille smule output inden header.

Den cache maengde kan godt vare forskellig mellem din hjemme Windows PHP og dit web hotel Linux PHP.

Jeg mener at det er php.ini output_buffering som styrer det.
miss-g Seniormester
13. marts 2018 - 16:18 #9
Jeg kan nok ikke rette noget cache på webhotellet....

Jeg tænker, at jeg kan leve med "fejlen" - den er åbenbart ikke lige til at løse. Det vigtige er, at folk udefra ikke kan tilgå siden - om den spærrer på en ene eller anden måde, går nok.
acore Ekspert
13. marts 2018 - 17:49 #10
Den fejl kan findes! Om du så orker det, er en anden snak.

Du skal lede efter blanke linier, mellemrum, eller lignende, som står før <php?

Hvad står der i adm/index.php? Det synes at være i den problemnet starter.
miss-g Seniormester
13. marts 2018 - 18:35 #11
Min index.php ser sådan ud i toppen

<?php require_once('../../Connections/conn.php'); ?>
<!---------------------------------------------------------------------------------------------->
<?php require_once('../../webassist/mysqli/authentication.php'); //adgangskontrol 1 ?>
<?php include ("../../private_html/adgang.php") //adgangskontrol 2 ;?>
<!---------------------------------------------------------------------------------------------->
<?php include ("includes/inc_header.php");?>
<!---------------------------------------------------------------------------------------------->
<?php require_once('../../webassist/mysqli/rsobj.php'); ?>
<?php
$rs_ord = new WA_MySQLi_RS("rs_ord",$conn,0);
$rs_ord->setQuery("SELECT * FROM ordliste");
$rs_ord->execute();
?>
miss-g Seniormester
13. marts 2018 - 19:40 #12
Gad vide om jeg ikke skal starte forfra. Filen authentication.php, som tilsyneladende indeholder fejl, bliver autogenereret af en extension i Dreamweaver. Hvis jeg sletter den og prøver forfra....
miss-g Seniormester
13. marts 2018 - 20:00 #13
LØST
Så er det opklaret:

Hvis jeg sætter en kommentarlinje <!------------------------------------> før
<?php require_once('../../webassist/mysqli/authentication.php'); // adgang 1?>
så kommer fejlen. Den er nu fjernet, og det virker efter hensigten.

Tak for input allesammen :-)
acore Ekspert
13. marts 2018 - 20:01 #14
Fejlen opstår i authentication.php, men kun fordi der er "output" inden.

Og det virker jo lokalt.

Så næppe en løsning.

Du kunne overveje, at rette index filen fra #11, så der kun er én <php? og én ?>.

Men de er absolut et vildskud - foreslået på baggrund af, at der i fejlen skrives, at der er output i linie 2 - som er

<!---------------------------------------------------------------------------------------------->

og som burde være harmløs
acore Ekspert
13. marts 2018 - 20:03 #15
Tror tanken er, at du skal markere "LØST" til den eller de poster, der har hjulpet dig med at løse dit problem. Så hvis du mener, at du selv har løst problemet, har du gjort det rigtigt.
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

Opret Preview

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





Premium
Mere end 1.000 CPR-numre på danske universitetsstuderende lå offentligt tilgængeligt i mere end tre år
En fejlplacering af to filer har betydet at CPR-numre på mere end 1.000 studerende har ligget offentligt tilgængeligt på nettet i mere end tre år.
Computerworld
Gratis wifi på vej i 15 danske byer: Disse danske byer bliver del af europæisk wifi-initiativ
Femten danske byer er blevet udvalgt til at deltage i et EU-initiativ, der betyder, at borger og turister i byerne i løbet af de kommende år vil få adgang til gratis wifi.
CIO
Tag med på Computerworlds store lederkonference og mød de danske top-CIO'er, som bygger de nye it-afdelinger
Anvendelsen af digital teknologi og organiseringen af it-afdelinger er under radikal transformation. På konferencen Digitaliseringsledelse 2.0 kan du møde de CIO'er fra Bankdata, Adform og Rockwool, som står i spidsen for teknologi-adoptionen.
Job & Karriere
Efter blodrødt regnskab: Nu fyrer Atea 20 medarbejdere i Danmark
Atea fyrer nu 20 medarbejdere. Det sker som en direkte konsekvens af, at den danske forretning er under pres, oplyser selskabets direktør.
White paper
Ny rapport – Vi har målt jobglæden i 20 udvalgte it-virksomheder
IT-specialister er blandt de mest eftertragtede faggrupper på det danske arbejdsmarked, og der er hård konkurrence om kandidater til ledige stillinger. Den første samlede jobglædeundersøgelse på it-jobmarkedet tyder imidlertid på, at it-specialister i vidt omfang mangler viden om, hvad virksomheder i branchen kan tilbyde dem som medarbejdere. Undersøgelsen er gennemført primo oktober 2018 og giver et unikt indblik i, hvilke faktorer it-specialister på det danske arbejdsmarked lægger vægt på i deres valg af arbejdsplads.