Forum

PHP Oturum zamanını...
 
Bildirimler
Hepsini Temizle

PHP Oturum zamanını uzatma

3 Yazılar
2 Üyeler
0 Reactions
1,929 Görüntüleme
(@Ahmetusta)
Gönderiler: 4
Active Member
Konu başlatıcı
 

Merhaba,

 

dizin.php sayfasında ajax ile zip.php dosyayı çalıştırarak belirlediğim klasörü zip yapıyorum ve lütfen bekleyin animasyonu çalışıyor zip yapma işlemi bittiğinde ajax a başarıyla zip yapıldı mesajı dönüyor BURADA SORUN YOK

Sorun şu: eğer zip yapılacak klasör 3-5-10GB boyutunda ise yani uzun sürecekse klasör zip yapılıyor ama ajax a zip bitti diye mesaj dönmüyor animasyon devamlı çalışıyor.

Bu sorun acaba uzun zaman sitede hareket olmadığı için oturum mu kapanıyor?

Eğer oturumla ilgili ise, zip.php dosyası zaten zip bitene kadar çalışıyor bunun içine nasıl bir kod eklesem ki zip.php çalıştığı müddetçe oturum açık kalsın?

 
Gönderildi : 12/11/2018 17:07

(@aliuysal)
Gönderiler: 292
Üye
 

Merhabalar;

Kodlarla ne yapılabilir görmeden birşey diyemiyorum fakat 
php.ini' de session.gc_maxlifetime = 1440 default değerdir, 24 dakika sonra oturum kapanır. Bunu uzatarak işinizi çözebilirsiniz diye düşünüyorum.

 

Dijital dönüşüm başlıyor...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 12/11/2018 19:16

(@Ahmetusta)
Gönderiler: 4
Active Member
Konu başlatıcı
 

Cevap için teşekkür ederim

Ben php bilmiyorum deneme yanılma ve bulduğun kodlarla kendimce birşeyler yapmaya çalışıyorum

Ben php.ini ile oynamak istemiyorum

 

Zip yapan kodlarım bu

Diğer sayfada ajax ile bu dosyayı çalıştırıyorum

Bu dosyanın başındaki ini_set kodlarıyla tarayıcı kapansa dahi işlem bitene kadar devam ediyor "bitti mesajı ortaya çıkıyor diye tahmin ediyorum"

Ajax olan sayfa ise hareket etmediği için oturum kapanıyor gelen mesajı gösteremiyor. Diye düşünüyorum

Eğer yorumum doğru ise şöyle birşey yapılabilirmi?

$("button").click(function(){

oturum zamanını uzat

animasyon_oynat_kodu  

$.get("zipyap.php", function(data){
        alert(data);

animasyonu_kapat_kodu
    });

});

Bu örnek ajax kodunda animasyonun çalıştıran kod yeri ve zipyap.php sayfadan mesaj geldiğin animasyonu durduran kod yerleri görünüyor

Yani animasyon başladığında oturum açık kalması için bir şey yapılabilir mi?

 

<?php
session_start();

@ini_set('display_errors', true);
@ini_set('memory_limit', '-1');
@ini_set('max_execution_time', 60*60*24);

require_once("foldername.php");
require_once("login.php");
require_once("./includes/connection.php");

date_default_timezone_set('Europe/Istanbul');

if($_POST['zipyap'] == 1 AND isset($_POST['klasoradi'])){

$starttime = microtime(true);
$simdizaman = date("Y-m-d-H-i-s",time());

$rootPath = realpath(DIZINDIR.$_POST['klasoradi']);

// Initialize archive object
$zip = new ZipArchive();

// Dosya adı oluştur
$filename = ZIPDIR.$simdizaman."-".$_POST['klasoradi'].".zip";

$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);

// Create recursive directory iterator
/** @var SplFileInfo[] $files **/

 
$files = new RecursiveIteratorIterator(
          new RecursiveDirectoryIterator($rootPath),
            RecursiveIteratorIterator::LEAVES_ONLY
);

// How many characters in the directory name
$foldernumber = strlen($_POST['klasoradi']);

foreach ($files as $name => $file)
{

    // Skip directories (they would be added automatically)
    if (!$file->isDir())
    {
        // Get real and relative path for current file
        $filePath = $file->getRealPath();
        $relativePath = substr($filePath, strlen($rootPath) - $foldernumber);

        // Add directory name to archive comment
        $zip->setArchiveComment($_POST['klasoradi']);
        // Add current file to archive        
        $zip->addFile($filePath, $relativePath);
        //echo "<pre>";
        //print_r($relativePath);
        //echo "<pre>";
    }
}

// Zip archive will be created only after closing object
$ret = $zip->close();

$endtime = microtime(true);

function formatPeriod($starttime, $endtime) {
$duration = $endtime - $starttime;
$hours = floor($duration / 60 / 60);
$minutes = floor(($duration / 60) - ($hours * 60));
$seconds = floor($duration - ($hours * 60 * 60) - ($minutes * 60));
$milliseconds = ($duration - floor($duration)) * 1000;
return sprintf('%02d:%02d:%02d:%05.0f', $hours,$minutes,$seconds,$milliseconds);
}

if (file_exists($filename) AND $ret) {
echo "<b>".strtoupper($_POST['klasoradi'])."</b> Klasörü Başarıyla ZIP Formatına Sıkıştırıldı<br />";
echo '<br />Sıkıştırma Süresi: '.formatPeriod($starttime, $endtime).'';
} else {
echo "<b style='color: red'>BİR HATADAN DOLAYI ZIP DOSYASI OLUŞTURULAMADI</b>";
}

} // if($_POST['zipyap'] == 1 AND isset($_POST['klasoradi'])){

?>

 
Gönderildi : 18/11/2018 20:51

Paylaş: