PDA

Orijinalini görmek için tıklayınız : Php Hataları Ve Çözüm Yolları Nelerdir?



kazanova21641
17.Eylül.2014, 23:13
Soru : Benim bir e-mail değişkenim var buraya girilen e-mail'in isim@siteadı.com formatında olduğunu nasıl kontrol ederim ?


Kod:
if (!eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$", $email))
die ("E-Mail Adresiniz Geçersiz");


Soru : Kod yazıyorum fakat bazen hatalar veriyor ama ben bu hataları ekrana yazdırmasını istemiyorum?


Kod:
@mysql_connect('localhost','kullanıcı_adı','şifre' );
Soru : Ben sitemi hem ingilizce hem de türkçe yaptım. Gelen ziyaretçinin diline göre, sitenin otomatik olarak, o dil ile açılmasını nasıl sağlarım?


Kod:
$lisan = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
if ( $lisan == "tr") {
header("Location:index_tr.php");
} else {
header("Location:index_en.php");
}


Soru : Değişkeni index.php?deger=4 şeklinde göndermeme rağmen index php de bu değeri okutamıyorum.


Her metod için farklı okutma yöntemi vardır. Eğer veriyi index.php?deger=4 şeklinde göndermişseniz veriyi aşağıdaki gibi alabilirsiniz.


Kod:
$degisken = $_GET['deger'];
Eğer veriyi POST metodu ile göndermişseniz ( POST metodu genelde buton ile kullanılır ) veriyi aşağıdaki gibi alabilirsiniz.


Kod:
$degisken = $_POST['deger'];
Soru : Bazı sitelerde www.siteadı.com/index.php?p=sayfa şeklinde değil de www.siteadı.com/?p=sayfa şeklinde değişken kullanıldığını gördüm bunu nasıl yapabilirim ?


Bunun için yapmanız gereken birşey yok. ?p=sayfa şeklinde olan kullanımda sayfa adı belirtilmemiştir çünkü bu durumda değişken index.php dosyasına gönderilecektir. Bunun sebebi ise serverda varsayılan sayfa adının index.php olmasıdır. Eğer index.php dışında sayfa.php veya iletisim.php gibi sayfalara değer gönderecekseniz bunu belirtmeniz gerekir (Örn :www.siteadı.com/iletisim.php?p=deger) . Çünkü belirtmezseniz değişken varsayılan sayfa olan index.php ye gönderilecektir.


Soru : Bir formum var ve ben bu formla beraber güvenlik kodu kullanmak istiyorum bunu nasıl yaparım?


Kod:
< ?
session_start();
$imagekod = '';


for ($i = 0; $i < 6; $i++)
{
$imagekod .= chr(mt_rand(100,120));
$imagekod = strtoupper($imagekod);
}


$_SESSION["guvenlikkodu"] = $imagekod;
$height = 20;
$width = 80;
$im = ImageCreate($width, $height);
$white = ImageColorAllocate ($im, 255, 255, 255);
$black = ImageColorAllocate ($im, 255,0,0);
ImageFill($im, 0, 0, $black);
ImageString($im, 300, 15, 3, $imagekod, $white);
Header ("Content-type: image/gif");
ImageGif($im);
ImageDestroy($im);
?>
Veriyi çıkartma


Kod:
< ?php
session_start();
?>
< form method="POST" action="veri.php" id=form1 name=form1>
Güvenlik Kodu : <img src="guvenlik_kodu.php">
< input type="text" size="6" name="guvenlikkodu" value="">
< /form>




Veri.php


Kod:
< ?php
$orjinalguvenlikkodu = $_SESSION["guvenlikkodu"];


if($orjinalguvenlikkodu!=BuyukHarf(@$_POST["guvenlikkodu"]))
{
session_unset();
HataSayfasiniGoster();
exit();
}
?>


kolay gelsin (özellikle iletişim formu kullananlar sunucunuzda flood ddos koruması yok ise güvenliyi hostingciniz yerine siz alabilirsiniz bu şekilde..)


Soru: PHP ile MySQL'e bir türlü bağlanamadım ne gibi çözümler olabilir?


Bunun iki sebebi olabilir.


1. İmla hataları: ";" işaretinin uygun yerlerde konulup konulmadığına dikkat edin. Ve bütün kelimeleri inceleyin. Ki Zaten ; İşareti DOğru yerde Değilse Parse Error Hatası Alırsınız


2. MySQL bilgilerinin yanlışlığı: phpMyAdmin e girdiğinizde üst köşede bütün bilgiler yazar bazı sitelerde localhost değil ayrı bir sunucudur ki son zamanlarda bu moda oldu örneğin www.talhakeskin.com.tr ise adres sunucu adresi 1.Attention Required! | CloudFlare (https://www.webmastersitesi.com) olabiliyor


Soru : Serverdaki PHP, MySQL,Apache'nin sürümlerinin kaç olduğunu, server detaylarını nasıl öğrenirim?


Not defterini açın ve içine


Kod:
< ?php
phpinfo();
?>
yazın ve farklı kaydet deyip info.php olarak kaydedin. Daha sonra da sitenize upload edip , www.siteadı.com/info.php şeklinde adresinizi girin. Tüm server detayları ekrana gelecektir.




app serverde yada wamp da localhostta çalısıyorsanız bu sayfayı zaten kurarken kendisi koyuyor
Soru : Harici bir siteyi kendi siteme nasıl include ederim?


Kod:
< ?php
readfile("https://www.siteadı.com");
?>
Soru : Ekrana şöyle bir uyarı çıkıyor , site sorunsuz çalışıyor ama nedense bu uyarıyı da veriyor. Bu uyarı ne demektir ve nasıl önlenir?
Çıkan Uyarı :
Alıntı:
Notice: Undefined index: toplam in index.php on line 5


Notice : Bu hata kodunuzda bir bug olduğunu gösterir. Fakat bu hata çoğu zaman bir değişkene değer atamadan çağırdığımız zaman çıkabiliyor ( Bu çıkan hatada toplam değişkenine değer verilmemiş) . Bu yüzden hangi durumda çıktığına dikkat edin. Bu hatadan kurtulmak için


değişkenlerinizin basına @ işareti ekleyin


örnek vermek gerekirse


index.php?&sayfa=iletisim


sayfasını acmak istiyoruz linke tıklatıp


$sayfa=$_GET["sayfa"];


dedik


ama siteyi açtık hata aldık adresimiz index.php dir yani sayfa değeri o anda boştur hata verir


ama
$sayfa=@$_GET["sayfa"];


yaparsak hata almayız










Soru : Sizce EasyPHP gibi bir hazır kurulum programı ile yetinmelimiyim yoksa, Apache, MySQL ve PHP nin en son sürümleri ile kendim mi kurayım?


Eğer amaç kodlama yapmak ise EasyPHP gibi hazır kurulum programları bu iş için yeterlidir. Boşuna manuel kurulum ile uğraşıp da vakit kaybetmenize gerek yok. Manuel kurulum sunucu yönetimi yapan kişilerin bilmesi gerekn bilgiler kısmına girer.


Soru : Php yi Apache üzerine CGI olarak mı yoksa modül olarak mı kurmak daha iyidir?


PHP, müstakil yorumlayıcı (CGI) olarak kurulduğunda, Web sunucusu, her ihtiyaç halinde PHP yorumlayıcısının bir örneğini çalıştırır. Bu, bir süre sonra Web sunucusunun bulunduğu işletim sisteminin yükünün artmasına ve işleyişinde yavaşlamaya yol açabilir.
Oysa PHP, sunucunun bir modülü olarak kurulduğunda, bu sakınca ortaya çıkmaz. (Bu özelliği ile PHP, klasik CGI/Perl'ün çalışma tarzından ayrılır, ASP'nin ve ColdFusion'ın çalışma tarzına yaklaşır.)
Bununla birlikte kötü niyetle veya beceriksizce yazılmış PHP programları modül olarak kurulmuş PHP'yi çökertirlerse, Web sunucusunu da çökertmiş olurlar; oysa müstakil PHP yorumlayıcı çökerse, Web sunucusuna bir şey olmaz.


Soru : Siteme gelen ziyaretçinin IP adresini sitemde nasıl gösterebilirim ?


Kod:
< ?php
echo $_SERVER['REMOTE_ADDR'];
?>

internetten derlenmiştir.