• 06-01-2013, 02:25:12
    #1
    Merhaba arkadaşlar,

    Daha önce kullandığım sunucularda yaşamadığım bir sorun yaşıyorum. Bildiğim kadarıyla PHP'de bir dosyadan bir dosyayı tetiklemek için herhangi ayrı bir fonksiyon bulunmuyor. Bu nedenle ben de tetikleme için bir HTTP bağlantısı açıp, sonlandırıyorum. Diğer sunucularda bu işlem kusursuz olarak çalışıyor. Ancak şu an çalıştığım sunucuda çalışmıyor. Dediğim gibi, tetiklemeyi sağlayan dosyanın, gelecek cevabı beklememesi gerekiyor ancak aktif sunucumda bu olmuyor. Aynı kodu diğer sunucularımdan çalıştırdığımda hiçbir problemle karşılaşmıyorum. Aşağıya kullandığım fonksiyonumu ekliyorum. Sizce sorun ne olabilir?

    function istekGonder($url) {
    $parse = parse_url($url);
    $fp = fsockopen($parse['host'], 80, $errno, $errstr, 30);
    if(!isset($parse['query'])){
    $out = 'GET '.$parse['path'].' HTTP/1.1' . "\r\n";
    }else{
    $out = 'GET '.$parse['path'].'?'.$parse['query'].' HTTP/1.1' . "\r\n";
    }
    $out .= 'Host: ' . $parse['host'] . "\r\n";
    $out .= 'Connection: Close' . "\r\n\r\n";
    fwrite($fp, $out);
    fclose($fp);
    }

    istekGonder("http://www.domainim.com/dosya.php?veri=veri'); şeklinde de çağırıyorum fonksiyonu.

    Sunucu yöneticisi konu hakkında fikri olmadığını söyledi. Sizce ne yapabilirim? Ayrıca, bahsettiğim şekildeki tetikleme işlemi için başka bir öneriniz var mı?
  • 06-01-2013, 02:59:56
    #2
    fsockopen her sunucuda açık olmayabiliyor, php de safe_mode kapatırsanız sorununuz çözülür bence.
  • 06-01-2013, 03:11:19
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Deimosx adlı üyeden alıntı: mesajı görüntüle
    fsockopen her sunucuda açık olmayabiliyor, php de safe_mode kapatırsanız sorununuz çözülür bence.
    bende Deimosx hocam gibi düşünüyorum. php.ini oluşturarak safe_mode kapatırsanız, sorun düzelebilir. Geçenlerde bu tarz bir sorun yaşadım, bu şekilde aşmıştım bende.
  • 06-01-2013, 05:36:07
    #4
    safe mode zaten kapalı arkadaşlar
  • 06-01-2013, 13:16:26
    #5
    Üyeliği durduruldu
    php versiyonu diğer sunuculardan farklı olabilir mi?

    ek çözüm olarak jquery ile bu sorunu aşabilirsiniz diye düşünyorum kodlama değişsede jquery ve xml tam bu iş için
  • 06-01-2013, 19:29:10
    #6
    mukanfixor adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    Daha önce kullandığım sunucularda yaşamadığım bir sorun yaşıyorum. Bildiğim kadarıyla PHP'de bir dosyadan bir dosyayı tetiklemek için herhangi ayrı bir fonksiyon bulunmuyor. Bu nedenle ben de tetikleme için bir HTTP bağlantısı açıp, sonlandırıyorum. Diğer sunucularda bu işlem kusursuz olarak çalışıyor. Ancak şu an çalıştığım sunucuda çalışmıyor. Dediğim gibi, tetiklemeyi sağlayan dosyanın, gelecek cevabı beklememesi gerekiyor ancak aktif sunucumda bu olmuyor. Aynı kodu diğer sunucularımdan çalıştırdığımda hiçbir problemle karşılaşmıyorum. Aşağıya kullandığım fonksiyonumu ekliyorum. Sizce sorun ne olabilir?

    function istekGonder($url) {
    $parse = parse_url($url);
    $fp = fsockopen($parse['host'], 80, $errno, $errstr, 30);
    if(!isset($parse['query'])){
    $out = 'GET '.$parse['path'].' HTTP/1.1' . "\r\n";
    }else{
    $out = 'GET '.$parse['path'].'?'.$parse['query'].' HTTP/1.1' . "\r\n";
    }
    $out .= 'Host: ' . $parse['host'] . "\r\n";
    $out .= 'Connection: Close' . "\r\n\r\n";
    fwrite($fp, $out);
    fclose($fp);
    }

    istekGonder("http://www.domainim.com/dosya.php?veri=veri'); şeklinde de çağırıyorum fonksiyonu.

    Sunucu yöneticisi konu hakkında fikri olmadığını söyledi. Sizce ne yapabilirim? Ayrıca, bahsettiğim şekildeki tetikleme işlemi için başka bir öneriniz var mı?
    file_get _contents ve curl aynı şekilde çalışır, içeriği çağırmak tetiklemek olmuyor mu? Ayrıca sunucuyla alakalı bir sorun var kullanmanızı istemediği için bilmiyorum diyor olabilir.
  • 06-01-2013, 20:33:22
    #7
    ignore_user_abort ve curl fonksiyonlarını incelemenizi öneririm.