• 03-09-2015, 10:55:18
    #1
    Merhaba.
    Aşağıdaki kodu yapana kadar canım çıktı ve çalıştı. 2 ay sonra aynı kod hiç dokunulmadan bir anda çalışmamaya başladı.

    Hata olarak

    Yüklenirken bir hata gerçekleşmiş.
    Projeniz için çok teşekkürler, isim soyisim. Sizinle iletişim kuracağız!
    3 saniye içerisinde ana sayfaya yönleneceksiniz.
    Ayrıca mail geliyor ama sadece dosyayı maile ek olarak yüklemiyor.

    Tüm verileri posttan düzgün bir şekilde alıyorum, dosya klasörünün yazma izni var (777) ama hala hatanın neyden kaynaklandığını bulamadım.
    Lütfen yardımcı olur musunuz?

    Teşekkür ederim.

    <?
    ob_start();
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <?php
    
    if(isset($_FILES['dosya'])){
       $hata = $_FILES['dosya']['error'];
       if($hata != 0) {
          echo 'Yüklenirken bir hata gerçekleşmiş.';
       } else {
          $boyut = $_FILES['dosya']['size'];
          if($boyut > (1024*1024*1024*1024*5)){
             echo 'Dosya 50MB den büyük olamaz.';
          } else {
    		$tip = $_FILES['dosya']['type'];
             $isim = $_FILES['dosya']['name'];
             $uzanti = explode('.', $isim);
             $uzanti = $uzanti[count($uzanti)-1];
    		$offoff = end(explode('.',$isim));
    		$allowed = array("dwg","jpg","jpeg","gif","png","xdf","pdf");
    		if (in_array($offoff, $allowed)) {
                $dosya = $_FILES['dosya']['tmp_name'];
                copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
             } else {
    		  echo 'Yanlızca PDF (Acrobat) dosyalarını gönderebilirsiniz. <br />Diğer uzantılı dosya göndermek için bilgi@proje.com.tr adresini kullanabilirsiniz.<br />5 saniye içerisinde proje gönder sayfamıza tekrar yönlendirileceksiniz.';
    			header('Refresh: 5; url=proje.php');
    			exit;
          }
       }
       }
    }
    
    ?>
    
    <?php
    //change settings here
    $your_email = "bilgi@proje.com.tr";
    $your_smtp = "mail.proje.com.tr";
    $your_smtp_user = "bilgi@proje.com.tr";
    $your_smtp_pass = "23235588";
    $your_website = "Proje";
    
    
    require("phpmailer/class.phpmailer.php");
    
    //function to check properly formed email address
    function isEmailValid($email)
    {
      // checks proper syntax
      if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email))
      {
        return false;
      } 
      
      return true;
      
    }
    
    
    //get contact form details
    $name = $_POST['isim'];
    $email = $_POST['eposta'];
    $comments = $_POST['mesaj'];
    
    
    //validate email address, if it is invalid, then returns error
    
    if (!isEmailValid($email)) {
    	die('Invalid email address');
    }
    
    //start phpmailer code 
    
    $ip = $_SERVER["REMOTE_ADDR"];
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    
    
    
    @$response="Tarih: " . date("d F, Y h:i:s A",time()+ 16 * 3600 - 600) ."\n" . "IP Adresi: $ip\nTarayıcı:$user_agent\nİsim Soyisim: $name\nMesajı: $comments\nDosyanın bulunduğu dizin: $adresim\n";
    //mail("info@mypapit.net","Contact form fakapster",$response, $headers);
    
    $mail = new PHPmailer();
    $mail->SetLanguage("en", "phpmailer/language");
    $mail->From = $your_email;
    $mail->FromName = $your_website;
    $mail->Host = $your_smtp;
    $mail->Mailer   = "smtp";
    $mail->Password = $your_smtp_pass;
    $mail->Username = $your_smtp_user;
    $mail->Subject = "$your_website Proje";
    $mail->SMTPAuth  =  "true";
    
    $mail->Body = $response;
    $mail->AddAddress($your_email,"$your_website Proje Gönder");
    $mail->AddReplyTo($email,$name);
    
    @$mail->AddAttachment($_FILES['dosya']['tmp_name'], $_FILES['dosya']['name']);
    
    @$mail->addAttachment('$adresim');
    
    
    if (!$mail->Send()) {
    echo "<p>There was an error in sending mail, please try again at a later time</p>";
    echo "<p>".$mail->ErrorInfo."</p>";
    } else {
    	echo "<p>Projeniz için çok teşekkürler, <em>$name</em>. Sizinle iletişim kuracağız!<br />3 saniye içerisinde ana sayfaya yönleneceksiniz.</p>";
    	header('Refresh: 3; url=index.php');
    }
    
    $mail->ClearAddresses();
    $mail->ClearAttachments();
    
    ?>
    
    <?
    ob_end_flush();
    ?>
  • 03-09-2015, 11:01:07
    #2
    Üyeliği durduruldu
    Hata Mesajını yazarmısın buraya
  • 03-09-2015, 11:12:40
    #3
    Merhaba.
    Onu hallettim. R10 da araştırdım ve başka bir upload koydum.

    Bu seferde dosya uzantısını tanımıyor. Delireceğim ya...

    Jpg tanıyor dwg tanımıyor.

    <?php 
        $gecerli = array("dwg","jpg","jpeg","gif","png","xdf","pdf"); 
        $explode = explode(".",@$_FILES["dosya"]["name"]); 
        $uzanti = end($explode); 
        if(in_array($uzanti,$gecerli)){ 
            if(@$_FILES["dosya"]["error"]>0){ 
            echo @$_FILES["dosya"]["error"];
    		echo 'Yanlızca Autocad, PDF ve resim dosyalarını gönderebilirsiniz. <br />Diğer uzantılı dosya göndermek için info@proje.com.tr adresini kullanabilirsiniz.<br />5 saniye içerisinde proje gönder sayfamıza tekrar yönlendirileceksiniz.';
    			header('Refresh: 5; url=http://www.proje.com.tr');
    			exit;
            }else{ 
                 @$_FILES["dosya"]["name"]."<br/>".@$_FILES["dosya"]["type"];
    	     $dosya = $_FILES['dosya']['tmp_name'];
    	     copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
            } 
        } 
         
    ?>

    Hata olarakta

    Yanlızca Autocad, PDF ve resim dosyalarını gönderebilirsiniz. <br />Diğer uzantılı dosya göndermek için info@proje.com.tr adresini kullanabilirsiniz.<br />5 saniye içerisinde proje gönder sayfamıza tekrar yönlendirileceksiniz.';

    Bunu yazıyor. DWG yi tanımıyor ama jpg tanıyor... Teşekkürler.

    Ben de denemeye devam edeceğim.
  • 03-09-2015, 11:24:41
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    gizemsiz adlı üyeden alıntı: mesajı görüntüle
    Merhaba.
    Onu hallettim. R10 da araştırdım ve başka bir upload koydum.

    Bu seferde dosya uzantısını tanımıyor. Delireceğim ya...

    Jpg tanıyor dwg tanımıyor.

    <?php 
        $gecerli = array("dwg","jpg","jpeg","gif","png","xdf","pdf"); 
        $explode = explode(".",@$_FILES["dosya"]["name"]); 
        $uzanti = end($explode); 
        if(in_array($uzanti,$gecerli)){ 
            if(@$_FILES["dosya"]["error"]>0){ 
            echo @$_FILES["dosya"]["error"];
    		echo 'Yanlızca Autocad, PDF ve resim dosyalarını gönderebilirsiniz. <br />Diğer uzantılı dosya göndermek için info@proje.com.tr adresini kullanabilirsiniz.<br />5 saniye içerisinde proje gönder sayfamıza tekrar yönlendirileceksiniz.';
    			header('Refresh: 5; url=http://www.proje.com.tr');
    			exit;
            }else{ 
                 @$_FILES["dosya"]["name"]."<br/>".@$_FILES["dosya"]["type"];
    	     $dosya = $_FILES['dosya']['tmp_name'];
    	     copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
            } 
        } 
         
    ?>

    Hata olarakta

    Yanlızca Autocad, PDF ve resim dosyalarını gönderebilirsiniz. <br />Diğer uzantılı dosya göndermek için info@proje.com.tr adresini kullanabilirsiniz.<br />5 saniye içerisinde proje gönder sayfamıza tekrar yönlendirileceksiniz.';

    Bunu yazıyor. DWG yi tanımıyor ama jpg tanıyor... Teşekkürler.

    Ben de denemeye devam edeceğim.

    Bu uzantı kontrolü case sensitive çalışır. Yani uzantı küçük harflerle dwg olmalıdır.
  • 03-09-2015, 11:28:55
    #5
    Üyeliği durduruldu
    $explode = explode(".",@$_FILES["dosya"]["name"]);
    bu satırı

    $explode = substr($_FILES["dosya"]["name"],strpos($_FILES["dosya"]["name"],'.')+1);;
    olarka denermisin
  • 03-09-2015, 11:41:39
    #6
    KadikoyAJANS adlı üyeden alıntı: mesajı görüntüle
    $explode = explode(".",@$_FILES["dosya"]["name"]);
    bu satırı

    $explode = substr($_FILES["dosya"]["name"],strpos($_FILES["dosya"]["name"],'.')+1);;
    olarka denermisin

    merhaba.
    denedim ve

    Warning: end() expects parameter 1 to be array, string given in proje.php on line 9

    hatası verdi.
    sonda 2 tane ; var. ben birini silip tekrar deneyeyim.

    cevabınız için çok teşekkür ederim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:35:56 -->-> Daha önceki mesaj 11:32:13 --

    yok hayır. 9. satırda hata var diyor.
    yani

    $uzanti = end($explode);

    burada...

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:37:15 -->-> Daha önceki mesaj 11:35:56 --

    pg13 adlı üyeden alıntı: mesajı görüntüle
    Bu uzantı kontrolü case sensitive çalışır. Yani uzantı küçük harflerle dwg olmalıdır.
    yok hepsinin uzantısı küçük.

    jpg kabul ediyor ama dwg kabul etmiyor..

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:41:39 -->-> Daha önceki mesaj 11:37:15 --

    Merhaba.
    Kodu aşağıdaki hale getirdim. Çünkü sizin verdiğiniz şekilde hep hata veriyordu. ; işaretini de kaldırdım ve yine olmadı.
    Teşekkür ederim.

    Çünkü şu an jpg yükleyebiliyorum en azından.
  • 03-09-2015, 11:58:25
    #7
    Üyeliği durduruldu
    o satırı sil zaten

    $uzanti = end($explode);
  • 03-09-2015, 13:38:33
    #8
    KadikoyAJANS adlı üyeden alıntı: mesajı görüntüle
    o satırı sil zaten

    $uzanti = end($explode);
    satırı sildim ve hata vermedi direk gönderdi
    ama dosyayı yüklemedi..
  • 03-09-2015, 13:39:21
    #9
    Merhaba,
    Aldığınız Yanlızca Autocad, PDF.... hatası if(@$_FILES["dosya"]["error"]>0){ sonucunda geliyor
    Hata dosya uzantısından olmayabilir. orada bir echo @$_FILES["dosya"]["error"]; gördüm. ne echo ediyor ?

    ayrıca dwg dosyanızın boyutu ile php ayarlarınızdaki max upload max post gibi parametreleri de kıyaslamanızı öneririm. dwg yanlış bilmiyorsam CAD tarzı bi programın dosyası. Büyük olabilir.

    İyi çalışmalar