Php Header Fonksiyonu Yönlendirme Yapmıyor
-
Ana dizinde index.php ve admin isminde bir klasör var.Admin klasörü içindede 1 adet index.php var.
Admin klasörü içindeki index.php dosyası şöyle :
<?php session_start(); if (!isset($_SESSION["admin"])) { header('Location: /index.php'); die(); } echo "admin saysı";Ana dizinde bulunan index.php dosyam ise şu şekilde;
<?php session_start(); $username = isset($_POST["username"]) ? $_POST["username"]: null; $password = isset($_POST["password"]) ? $_POST["password"]: null; if ($username == "tahribat" && $password == "123") { $_SESSION["admin"] = 80; header('Location : /admin/index.php'); die(); } ?> <form name="giris" action="index.php" method="post"> <table cellpadding="8" cellspacing="0" align="center"> <tr> <td width="100">Kullanıcı Adı</td> <td><input type="text" name="username"></td> </tr> <tr> <td width="100">Şifre</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2" align="right"> <input type="submit" value="Giriş"> </td> </tr> </table> </form>
İlk olarak adres satırına siteadi.com/admin yazarsam session["admin"] boş olduğu için beni ana klasördeki index.php ye atıyor burdaki header fonksiyonu çalışıyor tamam.Ancak kullanıcı adı ve şifreyi tahribat 123 şeklinde girersem. Session a değer ataması yapılıyor fakat header('Location : /admin/index.php'); burası çalışmıyor. die() fonksiyonu çalışıyor.Ama session["admin"] e 80 değeri atandığı için artık elle siteadi.com/admin yazarsam ekranda admin sayfası yazısını görüyorum.header('Location : /admin/index.php'); buranın içini admin/index.php , siteadi.com/admin/index.php türlü türlü denedim olmadı. Php 7.0 yüklü digitalocean sunucusu kullanıyorum.PhpStorm ile yazıyorum. Neden kaynaklıdır acaba problem ??
Hannibal_King tarafından 04/Nis/16 13:53 tarihinde düzenlenmiştir -
header komutundan önce herhangi bir output verdirtme (echo gibi) yoksa çalışmaz.
Location: -> burada iki nokta üst üste ile arasında boşluk bırakma kesinlikle.
Utf8 without Bom olarak kayıtlı olduğundan emin ol
her header dan sonra exit kullan
hatayı görmek için de error_reporting(E_ALL); diye bilirsin
aklıma gelenler bunlar, headerla ilgili
-
Location: -> burada iki nokta üst üste ile arasında boşluk bırakma kesinlikle.
Boşluk bırakmısım hocam.Çok saol.Halloldu şimdi zaten phpstorm bomsuz olarak kaydediyor sanırım. notepad++ da ayar yapmazsan bomlu kaydediyodu galiba.Tekrardan saol bilen biri hemen söyleyince hızlı hızlı ilerliyor insan :)
-
Hannibal_King bunu yazdı
Location: -> burada iki nokta üst üste ile arasında boşluk bırakma kesinlikle.
Boşluk bırakmısım hocam.Çok saol.Halloldu şimdi zaten phpstorm bomsuz olarak kaydediyor sanırım. notepad++ da ayar yapmazsan bomlu kaydediyodu galiba.Tekrardan saol bilen biri hemen söyleyince hızlı hızlı ilerliyor insan :)
rica ederim hocam, hiç kullanmadım phpstormu :)
-
hocam birde die fonksiyonu ile exit in ne farkı vardı?
-
Hannibal_King bunu yazdı
hocam birde die fonksiyonu ile exit in ne farkı vardı?
benim bildiğim bi farkı yok hocam.
-
Hannibal_King bunu yazdı
hocam birde die fonksiyonu ile exit in ne farkı vardı?
Sadece PHP'nin gıcıklıklarından bir tanesi. Farkı yok. Ama exit() ana fonksiyon. die() eş anlamlısı sadece. Belki versiyonlar arası fark olabilir. Öyle de şaka yapar PHP.
-
PcK0 bunu yazdıHannibal_King bunu yazdı
hocam birde die fonksiyonu ile exit in ne farkı vardı?
Sadece PHP'nin gıcıklıklarından bir tanesi. Farkı yok. Ama exit() ana fonksiyon. die() eş anlamlısı sadece. Belki versiyonlar arası fark olabilir. Öyle de şaka yapar PHP.
Benim bildiğim exit fonksiyonu durdurup çıkış yapar
Die tüm sonraki fonksiyonları öldürür
Uzun zamandır pratiğim yok ancak teorik olarak bir fonksiyon içinde exit yazınca ardındaki fonksiyonun çalışması lazım die da hiçbişey çalışmaz sonraki herşey sonlanır
İki fonksiyonu ard arda çalıştırarak deneyebilirse birisi bildiğimi test etmiş oluruz şuan telefondayım
Olmadı akşam sonucu yazarım
-
by_Tet bunu yazdıPcK0 bunu yazdıHannibal_King bunu yazdı
hocam birde die fonksiyonu ile exit in ne farkı vardı?
Sadece PHP'nin gıcıklıklarından bir tanesi. Farkı yok. Ama exit() ana fonksiyon. die() eş anlamlısı sadece. Belki versiyonlar arası fark olabilir. Öyle de şaka yapar PHP.
Benim bildiğim exit fonksiyonu durdurup çıkış yapar
Die tüm sonraki fonksiyonları öldürür
Uzun zamandır pratiğim yok ancak teorik olarak bir fonksiyon içinde exit yazınca ardındaki fonksiyonun çalışması lazım die da hiçbişey çalışmaz sonraki herşey sonlanır
İki fonksiyonu ard arda çalıştırarak deneyebilirse birisi bildiğimi test etmiş oluruz şuan telefondayım
Olmadı akşam sonucu yazarım
Fark yok hocam :
http://www.php.net/manual/en/function.die.php
die
(PHP 4, PHP 5, PHP 7)
die — Equivalent to exit
ek : http://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php
ozgunlu tarafından 04/Nis/16 15:49 tarihinde düzenlenmiştir -
ozgunlu bunu yazdıby_Tet bunu yazdıPcK0 bunu yazdıHannibal_King bunu yazdı
hocam birde die fonksiyonu ile exit in ne farkı vardı?
Sadece PHP'nin gıcıklıklarından bir tanesi. Farkı yok. Ama exit() ana fonksiyon. die() eş anlamlısı sadece. Belki versiyonlar arası fark olabilir. Öyle de şaka yapar PHP.
Benim bildiğim exit fonksiyonu durdurup çıkış yapar
Die tüm sonraki fonksiyonları öldürür
Uzun zamandır pratiğim yok ancak teorik olarak bir fonksiyon içinde exit yazınca ardındaki fonksiyonun çalışması lazım die da hiçbişey çalışmaz sonraki herşey sonlanır
İki fonksiyonu ard arda çalıştırarak deneyebilirse birisi bildiğimi test etmiş oluruz şuan telefondayım
Olmadı akşam sonucu yazarım
Fark yok hocam :
http://www.php.net/manual/en/function.die.php
die
(PHP 4, PHP 5, PHP 7)
die — Equivalent to exit
ek : http://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php
Çok sağol hocam dediğimi de denedim olmuyor yanlış bilgi olmuş benimki :)
-
Edit : hallolmuş.....
Nvidia tarafından 04/Nis/16 20:43 tarihinde düzenlenmiştir
