IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   PHP (https://www.ircforumlari.net/php/)
-   -   PHP kodu yazarken sıkça sorulan sorular , rastlanan hatalar ve çözümleri ... (https://www.ircforumlari.net/php/189128-php-kodu-yazarken-sikca-sorulan-sorular-rastlanan-hatalar-ve-cozumleri.html)

KraLiSHE 20 Mart 2009 03:59

PHP kodu yazarken sıkça sorulan sorular , rastlanan hatalar ve çözümleri ...
 
Bu konuda , PHP öğrenirken sıkça sorulan soruları ve cevaplarını yazalım , böylece hemen hemen her 2 haftada bir sorulan klon sorulardan kurtulabiliriz belki(umarım :p) , hani birileride sabite alırsa tadından yenmez :).
  • Neden FORM bilgilerim gözükmüyor ? Örneğin , form'da name=ahmet şeklinde bir input kutusu hazırlayıp diğer sayfada $ahmet şeklinde almaya çalıştığımda hiç birşey ekrana basılmıyor ?
Form'dan gelen veriyi tescillemeyi unutmayın.[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 'un kapalı olduğu sunucularda -ki genelde güvenlik nedeniyle kapalıdır-.
Çözüm : Bu tür verileri aşağıdaki gibi alabilirsiniz.
PHP- Kodu:

$ahmet $_POST['ahmet']; // FORM post methodu ile veri yolluyorsa
// $ahmet = $_GET['ahmet']; // GET methodu ile yolluyorsa 

Bu tür sorunların önüne geçmek için kullanabileceğinz global diziler:
$_SERVER[]: sunucu degiskenleri , PHP_SELF ,REMOTE_ADDR gibi.
$_COOKIE[]: çerez değişkenlerinin saklandıgı dizi
$_SESSION[]: oturum değişkenlerinin saklandığı dizi
$_FILES[]: Upload değişkenlerinins saklandığı dizi
$_REQUEST[]: GET , POST , COOKIE değişkenlerini içine alan dizi
Supergloballer hakkında daha fazla ayrıntılı bilgiye [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ulaşabilirsiniz.
  • Cannot modify header information - headers already sent hatası alıyorum ? Nasıl düzeltirim ?
Muhtemelen sayfaya HTML çıktısı yapıldıktan sonra header() kullanmaya çalıştınız.Sayfanın başına [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...], sonuna [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ekleyin.
  • Enter tuşuna basıldığında otomatik olarak alt satıra geçilmesini istiyorum

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] fonksiyonunu kullanın.
  • Değişkeni ekrana basarken değeri çıkmıyor , $degiskenadi şeklinde çıkıyor.

Muhtemelen tek tırnak içinde ekrana basmak istediniz.Örneği inceleyin.
PHP- Kodu:

$degisken 'ceviz.net';
echo
"$degisken"// cikti ceviz.net
echo''.$degisken.''// cikti ceviz.net
echo $degisken// cikti ceviz.net
echo '$degisken'// cikti $degisken 

  • Adres satırından gelen veriyi integer veritipine çevirmek istiyorum ?

Eğer veri numerik degilse 0'a eşitlenir.
PHP- Kodu:

$id int ($_GET['id']);
// veya
$id intval($_GET['id']; 

  • Dizindeki dosyaların tümünü array'e atmak istiyorum ?

PHP5 kullanıyorsanız [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] kullanın , PHP4 için alternatifi aşağıda.
PHP- Kodu:

$dh opendir('/home/emre');
    while (
false !== ($filename readdir($dh))) {
    
$dizi[] = $filename;


  • echo'mu kullanmalıyım yoksa print'mi ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • Değişken'den gelen HTML karakterlerini silmek istiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] , [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] kullanın.strip_tags ile belirttiğiniz html etiketlerinin kullanılabilmesinide sağlayabilirsiniz.
  • E-mail değişkenime mantıksal bir e-mail girilmiş mi kontrol etmek istiyorum ?

PHP- Kodu:

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


  • Değişkeni belli bir karakterden sonra bölmek istiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] kullanın.
    • Input kutusu içinde gösterdiğim kaydın sadece ilk kelimesi gözüküyor ?

    PHP- Kodu:

    echo"<input type=text name=$degisken>";  # hatali kullanim
    echo"<input type=text name='$degisken"# dogru 

  • Belli bir karakterden sonra otomatik olarak <br /> yapılmasını istiyorum.Sayfa uzadıkça uzuyor yahu.

PHP- Kodu:

function yaziyi_bol($yazi$uzunluk) {
if(
$yazi && strlen($yazi)>$uzunluk) {
  
$yazi=preg_replace("/([^\n\r -]{".$uzunluk."})/i"," \\1\n<br />",$yazi);
  return 
$yazi;
}
else return 
$yazi;
}
//Örnek kullanım
echo yaziyi_bol($yazi,$uzunluk); 

  • Rasgele şifre üretmek istiyorum

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • str_replace'in buyuk kucuk harf ayrımı yapmasını istemiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • URL üzerinden veri yolluyorum ama diğer sadece ilk kelimesini alabiliyorum?

urlencode() kullanabilirsiniz ;
PHP- Kodu:

echo '<a href="mycgi?foo='urlencode($userinput), '">'

  • Fonksiyon içinde değişken kullanamıyorum !

2 yolu var , fonksiyona parametre olarak tanımlamak.
PHP- Kodu:

function foo($degisken1,degisken2,...) {
//...


veya global olarak tanımlamak
PHP- Kodu:

function bar($degisken) {
global 
$degisken1,$degisken2;
//..


  • MySQL sorgusu yapmak istediğimde Invalid Result Resource hatası alıyorum ? Ne anlama geliyor ?

Bu hata herhangi bir nedenden dolayı yaptığınız sorguda oluşan bir hatayı gösterir.Ayrıntılı hata mesajlari alabilmek için [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] kullanabilirsiniz.
PHP- Kodu:

mysql_query("SELECT foo FROM bar where id='$id'") or die(mysql_error()); 

gibi..
  • Veritabanina yazarken ' karakterleri \\\ haline geliyor.Niye bu kafar çok \ var ?

Eğer magic_quotes açıksa veriler sorguya sokulmadan önce otomatik olarak slash eklenir birde adslashes ile eklerseniz fazladan slash bolluğu yapmış olursunuz :).Şöyle bir kontrol yapabilirsiniz.
PHP- Kodu:

if (!get_magic_quotes_gpc()) { $degisken addslashes($degisken); } 

  • Dosya içeriğini array'e atmak istiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • Tasarımla kodlamayı ayırmak istiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • Bazı fonksiyonlardan dönen hataların gözardı edilmesini istiyorum?

Fonksiyonu kullanirken başına @ karakterini ekleyin.
PHP- Kodu:

@mysql_connect('localhost','root',''); 

gibi..
  • MySQL'den çektiğim verileri yanyana ve altalta gostermek istiyorum ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • Form doldurmadan PHP'den doğru POST verisi yollamak istiyorum ?

cURL veya socket kütüphaneleriye yapmak mümkün , ikisiylede ilgili döküman dökümanlar bölümünde mevcut , yada basitçe cURL ile POST verisi yollamak.
PHP- Kodu:

<?php
$ch 
curl_init();
curl_setopt($chCURLOPT_URL,"
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS,
            
"postvar1=value1&postvar2=value2&postvar3=value3");
curl_exec ($ch);
curl_close ($ch); 
?>

  • header() fonksiyonu belli bir saniye bekledikten sonra yönlendirsin?

[php]header("Refresh: 0; [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]]
  • Sayfam çok geç açılıyor , nasıl optimize edebilirim ?

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  • HTML icerikli mail yollamak istiyorum?

PHP- Kodu:

# turker
function
postala($gidecekMail,$gonderenAd,$gonderenMail,$konu,$mesaj) {
    
$headers "MIME-Version: 1.0\n";
    
$headers .= "Content-type: text/html; charset=iso-8859-9\n";
    
$headers .= "X-Mailer: PHP\n";
    
$headers .= "X-Sender: PHP\n";
    
$headers .= "From: $gonderenAd<$gonderenMail>\n";
    
$headers .= "Reply-To: $gonderenAd<$gonderenMail>\n";
    
$headers .= "Return-Path: $gonderenAd<$gonderenMail>\n";
    @
mail($gidecekMail,$konu,$mesaj,$headers);

# kullanim
postala('
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
'
,'turker','
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
'
,'Site Hatası','Ana sayfanın sağ alt köşesinde bir kıl var. Ne o?'); 



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 20:10.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net