• 19-07-2019, 20:58:47
    #1
    Arkadaşlar merhaba, veritabanındaki verileri güncellemeye çalışırken aşağıdaki hatayı alıyorum.
    Warning: Header may not contain more than a single header, new line detected in C:xampphtdocscexincsubmit.php on line 180
    submit.php dosya içeriğini aşağıya ekliyorum. Hata nerede yardım edebilir misiniz?
    <?php
    
    include 'connect.php';
    
    if (isset($_POST['insert_process'])) {
        
        $save=$db->prepare("INSERT into providers set
    
            provider_name=:provider_name,
            provider_dept1_name=:provider_dept1_name,
            provider_dept1_email=:provider_dept1_email,
            provider_dept1_phone=:provider_dept1_phone,
            provider_dept1_emergency=:provider_dept1_emergency,
            provider_dept1_note=:provider_dept1_note,
            provider_dept1_workinghours=:provider_dept1_workinghours,
            provider_dept2_name=:provider_dept2_name,
            provider_dept2_email=:provider_dept2_email,
            provider_dept2_phone=:provider_dept2_phone,
            provider_dept2_emergency=:provider_dept2_emergency,
            provider_dept2_note=:provider_dept2_note,
            provider_dept2_workinghours=:provider_dept2_workinghours,
            provider_dept3_name=:provider_dept3_name,
            provider_dept3_email=:provider_dept3_email,
            provider_dept3_phone=:provider_dept3_phone,
            provider_dept3_emergency=:provider_dept3_emergency,
            provider_dept3_note=:provider_dept3_note,
            provider_dept3_workinghours=:provider_dept3_workinghours,
            provider_url=:provider_url,
            provider_login1_user1=:provider_login1_user1,
            provider_login1_user2=:provider_login1_user2,
            provider_login1_pass=:provider_login1_pass,
            provider_login1_note=:provider_login1_note,
            provider_login2_user1=:provider_login2_user1,
            provider_login2_user2=:provider_login2_user2,
            provider_login2_pass=:provider_login2_pass,
            provider_login2_note=:provider_login2_note,
            provider_login3_user1=:provider_login3_user1,
            provider_login3_user2=:provider_login3_user2,
            provider_login3_pass=:provider_login3_pass,
            provider_login3_note=:provider_login3_note
            ");
    
        $insert=$save->execute(array(
    
            'provider_name' => $_POST['provider_name'],
            'provider_dept1_name' => $_POST['provider_dept1_name'],
            'provider_dept1_email' => $_POST['provider_dept1_email'],
            'provider_dept1_phone' => $_POST['provider_dept1_phone'],
            'provider_dept1_emergency' => $_POST['provider_dept1_emergency'],
            'provider_dept1_note' => $_POST['provider_dept1_note'],
            'provider_dept1_workinghours' => $_POST['provider_dept1_workinghours'],
            'provider_dept2_name' => $_POST['provider_dept2_name'],
            'provider_dept2_email' => $_POST['provider_dept2_email'],
            'provider_dept2_phone' => $_POST['provider_dept2_phone'],
            'provider_dept2_emergency' => $_POST['provider_dept2_emergency'],
            'provider_dept2_note' => $_POST['provider_dept2_note'],
            'provider_dept2_workinghours' => $_POST['provider_dept2_workinghours'],
            'provider_dept3_name' => $_POST['provider_dept3_name'],
            'provider_dept3_email' => $_POST['provider_dept3_email'],
            'provider_dept3_phone' => $_POST['provider_dept3_phone'],
            'provider_dept3_emergency' => $_POST['provider_dept3_emergency'],
            'provider_dept3_note' => $_POST['provider_dept3_note'],
            'provider_dept3_workinghours' => $_POST['provider_dept3_workinghours'],
            'provider_url' => $_POST['provider_url'],
            'provider_login1_user1' => $_POST['provider_login1_user1'],
            'provider_login1_user2' => $_POST['provider_login1_user2'],
            'provider_login1_pass' => $_POST['provider_login1_pass'],
            'provider_login1_note' => $_POST['provider_login1_note'],
            'provider_login2_user1' => $_POST['provider_login2_user1'],
            'provider_login2_user2' => $_POST['provider_login2_user2'],
            'provider_login2_pass' => $_POST['provider_login2_pass'],
            'provider_login2_note' => $_POST['provider_login2_note'],
            'provider_login3_user1' => $_POST['provider_login3_user1'],
            'provider_login3_user2' => $_POST['provider_login3_user2'],
            'provider_login3_pass' => $_POST['provider_login3_pass'],
            'provider_login3_note' => $_POST['provider_login3_note']
        ));
    
        if ($insert) {
            
            header("Location:../admin_add_provider.php?result=success");
            //echo "Kayıt başarılı";
            exit;
    
        } else {
    
            header("Location:../admin_add_provider.php?result=failed");
            //echo "Kayıt başarısız";
            exit;
        }
    
    
    }
    
    if (isset($_POST['update_process'])) {
        
        $provider_id=$_POST['provider_id'];
    
        $save=$db->prepare("UPDATE providers set
    
            provider_name=:provider_name,
            provider_dept1_name=:provider_dept1_name,
            provider_dept1_email=:provider_dept1_email,
            provider_dept1_phone=:provider_dept1_phone,
            provider_dept1_emergency=:provider_dept1_emergency,
            provider_dept1_note=:provider_dept1_note,
            provider_dept1_workinghours=:provider_dept1_workinghours,
            provider_dept2_name=:provider_dept2_name,
            provider_dept2_email=:provider_dept2_email,
            provider_dept2_phone=:provider_dept2_phone,
            provider_dept2_emergency=:provider_dept2_emergency,
            provider_dept2_note=:provider_dept2_note,
            provider_dept2_workinghours=:provider_dept2_workinghours,
            provider_dept3_name=:provider_dept3_name,
            provider_dept3_email=:provider_dept3_email,
            provider_dept3_phone=:provider_dept3_phone,
            provider_dept3_emergency=:provider_dept3_emergency,
            provider_dept3_note=:provider_dept3_note,
            provider_dept3_workinghours=:provider_dept3_workinghours,
            provider_url=:provider_url,
            provider_login1_user1=:provider_login1_user1,
            provider_login1_user2=:provider_login1_user2,
            provider_login1_pass=:provider_login1_pass,
            provider_login1_note=:provider_login1_note,
            provider_login2_user1=:provider_login2_user1,
            provider_login2_user2=:provider_login2_user2,
            provider_login2_pass=:provider_login2_pass,
            provider_login2_note=:provider_login2_note,
            provider_login3_user1=:provider_login3_user1,
            provider_login3_user2=:provider_login3_user2,
            provider_login3_pass=:provider_login3_pass,
            provider_login3_note=:provider_login3_note
            WHERE provider_id={$_POST['provider_id']}
            ");
    
        $insert=$save->execute(array(
    
            'provider_name' => $_POST['provider_name'],
            'provider_dept1_name' => $_POST['provider_dept1_name'],
            'provider_dept1_email' => $_POST['provider_dept1_email'],
            'provider_dept1_phone' => $_POST['provider_dept1_phone'],
            'provider_dept1_emergency' => $_POST['provider_dept1_emergency'],
            'provider_dept1_note' => $_POST['provider_dept1_note'],
            'provider_dept1_workinghours' => $_POST['provider_dept1_workinghours'],
            'provider_dept2_name' => $_POST['provider_dept2_name'],
            'provider_dept2_email' => $_POST['provider_dept2_email'],
            'provider_dept2_phone' => $_POST['provider_dept2_phone'],
            'provider_dept2_emergency' => $_POST['provider_dept2_emergency'],
            'provider_dept2_note' => $_POST['provider_dept2_note'],
            'provider_dept2_workinghours' => $_POST['provider_dept2_workinghours'],
            'provider_dept3_name' => $_POST['provider_dept3_name'],
            'provider_dept3_email' => $_POST['provider_dept3_email'],
            'provider_dept3_phone' => $_POST['provider_dept3_phone'],
            'provider_dept3_emergency' => $_POST['provider_dept3_emergency'],
            'provider_dept3_note' => $_POST['provider_dept3_note'],
            'provider_dept3_workinghours' => $_POST['provider_dept3_workinghours'],
            'provider_url' => $_POST['provider_url'],
            'provider_login1_user1' => $_POST['provider_login1_user1'],
            'provider_login1_user2' => $_POST['provider_login1_user2'],
            'provider_login1_pass' => $_POST['provider_login1_pass'],
            'provider_login1_note' => $_POST['provider_login1_note'],
            'provider_login2_user1' => $_POST['provider_login2_user1'],
            'provider_login2_user2' => $_POST['provider_login2_user2'],
            'provider_login2_pass' => $_POST['provider_login2_pass'],
            'provider_login2_note' => $_POST['provider_login2_note'],
            'provider_login3_user1' => $_POST['provider_login3_user1'],
            'provider_login3_user2' => $_POST['provider_login3_user2'],
            'provider_login3_pass' => $_POST['provider_login3_pass'],
            'provider_login3_note' => $_POST['provider_login3_note']
        ));
    
        if ($insert) {
            
            header("Location:../admin_edit_provider.php?id=$provider_id&result=success");
            //echo "Kayıt başarılı";
            exit;
    
        } else {
    
            header("Location:../admin_edit_provider.php?id=$provider_id&result=failed");
            //echo "Kayıt başarısız";
            exit;
        }
    
    }
    
    ?>
  • 19-07-2019, 21:19:48
    #2
    Benim bildiğim bu hatanın tek bir çözümü var. Header fonksiyonlarını sayfada aşağı atlamadan tekrar yazın. Ayrıca hedef gösterdiğiniz sayfayı başka bir şekilde girmeyi deneyin. Hatta Location: verdikten sonra denemek için bir boşluk bırakıp öyle deneyin. Olur mu olur Editörler bazen saçmalayabiliyor. Son olarak -> https://www.php.net/manual/tr/function.header.php <- şu sayfaya bir göz atın.

    Hatanın Türkçesi: Başlık, tek bir başlıktan fazlasını içeremez. 180. satırda yeni bir satır tespit edildi.
  • 19-07-2019, 21:25:50
    #3
    TRSaka adlı üyeden alıntı: mesajı görüntüle
    Benim bildiğim bu hatanın tek bir çözümü var. Header fonksiyonlarını sayfada aşağı atlamadan tekrar yazın. Ayrıca hedef gösterdiğiniz sayfayı başka bir şekilde girmeyi deneyin. Hatta Location: verdikten sonra denemek için bir boşluk bırakıp öyle deneyin. Olur mu olur Editörler bazen saçmalayabiliyor. Son olarak -> https://www.php.net/manual/tr/function.header.php <- şu sayfaya bir göz atın.
    Hocam aynen dediklerinizi uyguladım. Hatta location sonrasında zaten boşluk vardı silerek denedim yine olmadı. Kafayı yedirtir. Update işlemini submit_update.php oluşturarak mesela ikinci dosya mı versem? Sadece insert var ilken dosyada bunaldım yoktu. Update ekleyince oldu.
  • 19-07-2019, 21:29:58
    #4
    Serdar449 adlı üyeden alıntı: mesajı görüntüle
    Hocam aynen dediklerinizi uyguladım. Hatta location sonrasında zaten boşluk vardı silerek denedim yine olmadı. Kafayı yedirtir. Update işlemini submit_update.php oluşturarak mesela ikinci dosya mı versem? Sadece insert var ilken dosyada bunaldım yoktu. Update ekleyince oldu.
    Ben onuda yazacaktım fakat fark etmez diye düşündüm çünkü bende aynısını yaptığım yer ve zamanlar oldu Bu sayfada get parametresi göndermeden header fonksiyonunu kullanıp tekrar deneyebilir misin?

    Ek: Hocam hata bastırma metotlarını kullanarak php kodunun çıktısını alıp atabilir misin? Belki tek satır kuralını bozan parametrelerin ta kendisi olabilir.
    Ek 2: Durum böyleyse urlencode uygulamalısın -> https://www.php.net/urlencode
    Ek 3: Yakalayacağın sayfada decode etmeyi unutma -> https://www.php.net/manual/tr/function.urldecode.php
  • 19-07-2019, 22:11:15
    #5
    birinci çözüm sayfa başına ob_start(); ekle
    yada
    notpad++ ile ut8 bomsuz olarak kaydet sayfası düzelecektir.
  • 20-07-2019, 00:18:37
    #6
    $provider_id=$_POST['provider_id'];

    Bu satırdan gelen provider_id değeri içerisinde \n işareti içeriyor olabilir. başına (int) ekleyerek deneyin.

    $provider_id = (int) $_POST['provider_id'];
  • 20-07-2019, 11:38:17
    #7
    header fonksiyonu kendisinden önce çıktı verilmeden çalıştırılmalıdır. Eğer kendisinden önce herhangi bir echo, print, var_dump gibi çıktı dönen fonksiyonlar olmamalı. HTML kodları da olmamalı onlar da bir çıktı. Genellikle <?php tagını açmadan önce ufak bir boşluk veya bir satır olması bu sorunu tetikleyebilir. include ettiğiniz dosyaları da aynı şekilde kontrol edin. Bu durum olmadığı sürece böyle bir hata almayacaksınız. Tavsiyem connect.php'deki kodları kontrol et ve herhangi bir output verip vermediğini incele.
  • 21-07-2019, 19:35:40
    #8
    TRSaka adlı üyeden alıntı: mesajı görüntüle
    Ben onuda yazacaktım fakat fark etmez diye düşündüm çünkü bende aynısını yaptığım yer ve zamanlar oldu Bu sayfada get parametresi göndermeden header fonksiyonunu kullanıp tekrar deneyebilir misin?

    Ek: Hocam hata bastırma metotlarını kullanarak php kodunun çıktısını alıp atabilir misin? Belki tek satır kuralını bozan parametrelerin ta kendisi olabilir.
    Ek 2: Durum böyleyse urlencode uygulamalısın -> https://www.php.net/urlencode
    Ek 3: Yakalayacağın sayfada decode etmeyi unutma -> https://www.php.net/manual/tr/function.urldecode.php
    aketasarim adlı üyeden alıntı: mesajı görüntüle
    birinci çözüm sayfa başına ob_start(); ekle
    yada
    notpad++ ile ut8 bomsuz olarak kaydet sayfası düzelecektir.
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    $provider_id=$_POST['provider_id'];

    Bu satırdan gelen provider_id değeri içerisinde n işareti içeriyor olabilir. başına (int) ekleyerek deneyin.

    $provider_id = (int) $_POST['provider_id'];
    magicphp adlı üyeden alıntı: mesajı görüntüle
    header fonksiyonu kendisinden önce çıktı verilmeden çalıştırılmalıdır. Eğer kendisinden önce herhangi bir echo, print, var_dump gibi çıktı dönen fonksiyonlar olmamalı. HTML kodları da olmamalı onlar da bir çıktı. Genellikle <?php tagını açmadan önce ufak bir boşluk veya bir satır olması bu sorunu tetikleyebilir. include ettiğiniz dosyaları da aynı şekilde kontrol edin. Bu durum olmadığı sürece böyle bir hata almayacaksınız. Tavsiyem connect.php'deki kodları kontrol et ve herhangi bir output verip vermediğini incele.
    Ne yazık ki önerilerinizi denedim ancak çare olmadı. Dosyaları aşağıya bırakıyorum. Gerçekten çözemedim kaç gündür. PHP konusunda kendimi geliştirmeye çalışıyorum. Emrah Yüksel'in Udemy üzerindeki PHP kursunu izleyerek bir uygulama yapmaya çalışıyorum ancak burada tıkandım.

    admin_edit_provider.php
    https://www.codepile.net/pile/nk5VbW0N

    submit.php
    https://www.codepile.net/pile/1kOXVg2g

    connect.php
    https://www.codepile.net/pile/r0y4ZAkp
  • 21-07-2019, 20:39:08
    #9
    Allahın cezası kod... Bu akşam bakacağım.