2016-03-20 21 views
1

Kullanıcı, formdaki gönder düğmesine tıklandığında bir dosya gerektirmek için bunu kullanıyorum. Bu kod blog.php dosyasında bulunur. Bu dosyaya/include/klasörüne sahip olduğumda, kod mükemmel çalışır, ancak bu dosyanın root klasöründe olmasını isterim. Ben kök klasörüne eklediğinizde, bu hatayı alıyorum: Yorumunuza görePHP, root klasöründe çalışma gerektirmiyor

Warning: require(../includes/addbloguser.php): failed to open stream: No such file or directory in C:\xampp\htdocs\Pentaslash\blog.php on line 27

Fatal error: require(): Failed opening required '../includes/addbloguser.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\test\blog.php on line 27

<?php 
    if(isset($_POST["submit"])){ 

     require '../includes/addbloguser.php'; 
    } 
?> 
+0

Formu eylem url olurdu Bu durumda bu

require IN_DIR.'/path/to/file.php' 

gibi? – itzmukeshy7

+0

Muhtemelen '' 'dosyasını dosya yolundan çıkarmalısınız. Unutmayın: Her zaman mutlak dosyayollarını kullanın. –

+0

Bunu kaldırsam bile hata mesajını değiştirmez. Bunun neden olduğunu anlamıyorum, PDO kullanmam önemli mi? – Demeteor

cevap

0

Bu, ilgili dosya yolları kullanılarak başlatılan bir sorundur. Göreli dosya yolunuz, blog.php dosyaklasöründeyken çalışmış, çünkü ../ ile bir dizini (kök dizininize) gidip daha sonra includes içine geri dönüyorsunuz. Ancak dosyayı bir dizini (kök dizininize) taşıdığınız için, kök dizininizin dışında bir dizinin yukarısına ../ gidersiniz ve daha sonra includes klasörüne girmeyi deneyin, ancak yukarıdaki dizinde klasör bulunmuyor. kök dizininizin (iyi, eğer şansınız varsa, ancak dosya mevcut değil veya yanlış olanı).

Bunu önlemek için, her zaman mutlak dosyayollarını kullanmalısınız, böylecedosyanız aynı yerde kaldığı sürece blog.php'u her yere taşıyabilirsiniz.

Projenize mutlak dosya yolunu almanın kolay bir yolu, projenizin kök dizinindeki genel bir dosyada dirname(__FILE__)) değerini değerlendiren bir sabiti tanımlamaktır. Bu şekilde, her zaman dosyaları ile bir şeyler yapmak için sabit kullanabilir ve bir şeyi değiştirirseniz göreli dosya yollarını düzeltmek için dosyaları değiştirmeyi engelleyebilirsiniz.

E.g. global.php o zaman sadece bu

define('IN_DIR', dirname(__FILE__)); //__FILE__ is a magic constant and includes the absolute filepath to the current file -> global.php 

yazacak Ve şimdi blog.php dahil, dosya global.php (veya tersi) Eğer filepaths için kullanabileceğiniz sabit tanımlanan bahsedilen ve bakacağız, kök dizin içindeyken

require IN_DIR.'/includes/addbloguser.php' 
+0

ohh daha iyi çalıştı, teşekkürler sağol – Demeteor

0

, bu olmamalı:

require './addbloguser.php'; 

kullanmayı deneyin

require __DIR__ . '/addbloguser.php'; 

veya

require dirname(__FILE__) . '/addbloguser.php'; 

, böylece daha iyi hata iletileri alabilir ve nelerin eksik olduğunu görebilirsiniz.

İlgili konular