v2.5.2
Giriş yap

ExcelScript

proudhon001
238 defa görüntülendi ve 1 kişi tarafından değerlendirildi

arkadaşlar herkese iyi forumlar excel scripti yazdım fakat localhostta calısan kod hostinge yazdıgımda verileri sqle yazmıyor false değeri veriyor ama scriptte sorunyok verileriekrana yazdırabiliyorum

    <?php

?>
<!DOCTYPE html>
<html>
<head>
	<title>XLSx</title>
</head>
<body>
<form action="#" method="POST" enctype="multipart/form-data">
	<input type="file" name="excel">
	<input type="submit" name="submit">
</form>
<?php
if(isset($_FILES['excel']['name'])){
	$con=mysqli_connect("localhost","admin",""1234"","veriler");
	if ($con){
	    echo 'basarili';
	}
	include "xlsx.php";
	if($con){
		$excel=SimpleXLSX::parse($_FILES['excel']['tmp_name']);
		echo "<pre>";	
		// print_r($excel->rows(1));
		print_r($excel->dimension(2));
		print_r($excel->sheetNames());
        for ($sheet=0; $sheet < sizeof($excel->sheetNames()) ; $sheet++) { 
        $rowcol=$excel->dimension($sheet);
        $i=0;
        if($rowcol[0]!=1 &&$rowcol[1]!=1){
		foreach ($excel->rows($sheet) as $key => $row) {
			//print_r($row);
			$q="";
			foreach ($row as $key => $cell) {
				//print_r($cell);echo "<br>";
				if($i==0){
					$q.=$cell. " varchar(200),";
				}else{
					$q.="'".$cell. "',";
				}
			}
			if($i==0){
				$query1="TRUNCATE veriler";
				mysqli_query($con,$query1);
			}
			if($i==0){
				$query="CREATE table ".$excel->sheetName($sheet)." (".rtrim($q,",").");";
			}
			else{
				$query="INSERT INTO ".$excel->sheetName($sheet)." values (".rtrim($q,",").");";
			}
			echo $query;
			if(mysqli_query($con,$query))
			{
				echo "true";
			}
			else{
			    echo "false";
			}
			echo "<br>";
			$i++;
		}
	}
		}
	}
}

?>
</body>
</html>
ebykdrms
935 gün önce

Kodunuz localhost'ta çalışıp uzak sunucuda çalışmıyorsa aklıma gelen 3-4 ihtimal var:

  • Kodunuzda localhost'ta çalışmaya uygun yollar/değerler bulunuyordur. Mesela veritabanı şifresi, .htaccess dosyasında belirtilen yollar, include yolları...
  • Sunucuda oluşturduğunuz veritabanına bağlandığınız kullanıcı adına, veritabanına yazma yetkisi verilmemiş olabilir.
  • Excel dosyasının boyutu çok büyükse ve sunucuda belirlenmiş maksimum upload sınırını aşıyorsa hataya düşüyor olabilirsiniz.
  • Sunucudaki PHP ayarlarıyla sizin PHP ayarlarınız farklıdır. Sunucudaki PHP versiyonunu değiştirmeniz veya sunucudaki bazı PHP özelliklerini aktif etmeniz gerekiyor olabilir.

Paylaşımlı sunucular genelde PHP'nin hata gösterme özelliğini kapalı tutarlar. Eğer sunucya attığınızda boş beyaz sayfa görüyorsanız veya istediğiniz bir PHP değerinin olması gereken yerde sadece boşluk varsa muhtemelen orada bir hata vardır ama sunucu bunu göstermiyordur. Hatayı anlamak için bu ayarı açmanız gerekir.
Bir ihtimal de sunucuda hata oluştuğunda kök dizininizde otomatik olarak hataları belirten dosya oluşturuluyor olabilir. FTP'den error_logs.txt, error.log vb bir dosya oluşturulmuş mu diye bakıp oluşan hataları oradan inceleyebilirsiniz.

Hatayı bilmeden yorum yapmak zor.