Hogyan javítsam ki ezt a hibát?
Van egy fájl az oldalamon felhasz.php ezt csak felhasználók láthatják, tehát akik regisztrálnak, ezért beraktam az alábbi kódot:
<?php if($_SESSION["user_username"] ==""){
//hiba: nincs bejelentkezve
header('Location: index.php');
}
?>
Ez jó, megnéztem és ha csak simán rá akarok menni a felhasz.php-ra akkor visszadob az index.php-ra. De ha belépek (regisztrálva) akkor ezt írja ki:
Warning: Cannot modify header information - headers already sent by (output started at /index.php:6) in /felhasz.php on line 3
if (!$_SESSION["user_username"]) {
// hiba
header('');
return;
}
Esetleg?
Wááá,
"output started at /index.php:6"
Indexnél hamarabb küldesz valamit.
Üres karakterek is számítanak,amik nem látszanak nézd meg úgy a kódot, illetve utf-8 boom nélkülre legyen átkódolva.
Én kiszedném a // komment részt
?> után se legyen szóköz
<?php if($_SESSION["user_username"] =="" || !isset($_SESSION['user_username'])){
//hiba: nincs bejelentkezve
header('Location: index.php');
}
?>
A hibaüzenet szerint az index.php 6. sorában valamit a kimenetre küldesz, ez pedig automatikusan header infót is küld, ezért lesz hibás minden header utasítás amit ez után próbálsz végrehajtatni.
Talán nézd meg az index.php 6. sorát (vagy a 7.-et, hátha átcsúszik valami), mert ott lesz valami print/echo/var_dump/export...
Ha betöltöd notepad++ -be a kódot
1,beállítások->stílusok ... válaszd bespin stílust
2,nézet->segédjelek megjelenítése->sorközök és tabulátorok
kis .-okat rak a szőközök helyére, de fehér háttérnél nehéz észrevenni,ezért kellet az 1,pont.
Ha a <?php előtt vagy ?>után látsz ilyesmit,az tuti rossz.
Olyan változót, ami nem létezik nem illik használni.
Előtte nézd meg a létezését.
Így szokás:
if(!isset( $_SESSION["user_username"] )){
header("Location: login.php");
die();
}
Továbbá a header függvény kiadása után állítsd meg a programot, mert bár az átirányítás megtörténik, a program további része lefut! HEader előtt viszont semmilyen HTML kimenet nem javasolt, echo, esetleg utf-8 BOM karakterek, az a "headers already sent" figyelmeztetéssel járhat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!