PHP ve MySQL soru

4 Cevap php

merhaba herkes biraz problem yaşıyorum ... soru i bir formdan bilgi almak ve ben bir uyarı verdi yaptığımda veri (yorum, yükleme resim ve e-posta) olduğu veritabanına kaydetmek istiyorum edilir

Kod

// move file from temp location on server to your uploads folder
  move_uploaded_file($F1["tmp_name"], "Uploads/$F1[name]");
  print "Stored in: Uploads/$F1[name]";


// save location of upload to text file uploads.txt for later use

$datafile = fopen("uploads.txt","a");
flock($datafile,1);
fwrite($datafile, "Uploads/$F1[name]\n");
flock($datafile,3);
fclose($datafile);




// divide size by 1024 to get it in KB
/*  if ($F1["size"] / 1024 > 50) {
    print "Your gif file is too large! Less that 50KB please!";
    exit(0);
  }*/

 if (!(IsSet($_FILE["fname"]))) {




  $query="insert into guestbook (comments, email, img,display) values
  ('$_POST[comments]','$_POST[email]','some address  ', '0')";}

else

$query="insert into guestbook (comments, email, img, display) values
  ('$_POST[comments]','$_POST[email]','some addres', '$_POST[0]')";

i got uyarı

Uyarı: move_uploaded_file (Yüklenen / holder.jpg): 48 hattı üzerinde (adres) Böyle bir dosya ya da dizin: failed to open stream

Warning: move_uploaded_file(): Unable to move '/tmp/php4OAZMC' to 'Uploads/holder.jpg' in (some address) on line 48 Stored in: Uploads/holder.jpg

i nasıl düzeltebilirim?

şimdiden teşekkürler

4 Cevap

Ben o dosya için, komut konumuna bağıl, yani kaydedilecek için mutlak bir yol ihtiyacı var

/home/meme/www/example.com/Uploads/

Ayrıca, Yükle dizin için izinlerini kontrol edin. , Küçük harf gelecek tutmak dizin ve dosya içinde pastırma tasarruf edeceğiz, başka bir küçük ipucu o zaman kod bir dosya veya dizin arıyor zaman dosya sistemi harf duyarlı olduğu için yok bazen gelecekte alt Isırılmayın olmaz!

Yüklenen / klasör zaten var mı? Eğer değilse, önce onu yaratmak çalışıyoruz. Bu hata neden olabilir.

Move_uploaded_file () çalışmış veya değilse de, onun iyi bir fikir kontrol etmek. Bu eğer o amele true döndürür, ve false değilse.

Ayrıca, daha önce de belirttiğim gibi, hem de mutlak bir yol kullanmayı deneyin.

Reference

Test amaçlı, en sevdiğiniz FTP istemcisi kullanarak 777 Yüklenen klasörü chmod - Ayrıca Yüklenen klasörünün izinleri doğru ayarlanır sahip olmasını sağlamalıdır.

Eğer uygulamaya upload koymak için hazır olduğunuzda size (sadece herkes kendisine yazabilir sağlamak) düzgün klasörü güvenli ve dosya türleri için yerinde filtreler koymak emin olun emin olun.

  1. Var geçmek için yolunu sağlamak için kontrol edin ve web sunucusu süreç ona yazma hakkı vardır.
  2. Sizin ekleme sorgusu sadece bir SQL enjeksiyon için bekleyen kocaman bir güvenlik açığıdır. Sen kesmek yakalanma olasılığını azaltmak için aşağıdakileri kullanabilirsiniz:

    $comments = mysql_real_escape_string($_POST['comments']); $email = mysql_real_escape_string($_POST['email']); $query="insert into guestbook (comments, email, img, display) values ('{$comments}','{$email}','some address ', '0')";