Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
19
Cevap
979
Tıklama
0
Öne Çıkarma
Php'de foreach hatası
W
8 yıl
Yüzbaşı
Konu Sahibi

Merhaba arkadaşlar,

php'de foreach hatası alıyorum hata şöyle :

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\xxx\okulud.php on line 480

480 satır şöyle :

foreach($_FILES["okuludf"]["name"] as $key=>$tmp_name){


Kod şöyle :

<input type="file" name="okuludf[]" id="resimeklec2" class="resimeklec2" multiple="multiple">

<?php

// bue elseif den önce başka bir if var.

elseif (isset($_POST['submit2'])) {



$boyut = implode(",", $_FILES["okuludf"]["size"]);

if ($boyut > 0) {

print_r("Name : " . $_FILES["okuludf"]["name"] . "End name");

foreach($_FILES["okuludf"]["name"] as $key=>$tmp_name){

$gecicidosya = $_FILES["okuludf"]["tmp_name"][$key];
@$_SESSION['yol'] = $_FILES["okuludf"]["name"][$key];
@$_SESSION['yol2'] = $_FILES["okuludf"]["name"][$key];

print_r($_SESSION['yol'] + " and " + $_SESSION['yol2']);

move_uploaded_file($gecicidosya, $_SESSION['yol']) or die("4");

array_push($resimarray, $_SESSION['yol']);
array_push($resimarray, $_SESSION['yol2']);

}

}else{

}

$_SESSION['okulueua'] = $okuluduay;
$_SESSION['okulueua2'] = $okuludua2y;
$_SESSION['okulueuf'] = $okuludufy;
$_SESSION['okuluekf'] = $okuludkfy;
$_SESSION['okuluea'] = $okuluday;
$_SESSION['resimarray'] = $resimarray;

}

?>


Bu sorunu nasıl çözebilirim?

Yardımınıza ihtiyacım var.





< Bu mesaj bu kişi tarafından değiştirildi webandyazilimprofesor -- 24 Kasım 2017; 21:25:47 >

D
8 yıl
Yarbay

$total = count($_FILES['okuludf']['name']);

// Loop through each file
for($i=0; $i<$total; $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['okuludf']['tmp_name'][$i];

//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploadFiles/" . $_FILES['okuludf']['name'][$i];

//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {

//Handle other code here

}
}
}


Bu mesaja 2 cevap geldi.
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

$total = count($_FILES['okuludf']['name']);

// Loop through each file
for($i=0; $i<$total; $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['okuludf']['tmp_name'][$i];

//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploadFiles/" . $_FILES['okuludf']['name'][$i];

//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {

//Handle other code here

}
}
}

Yorum satırları birde Türkçe olsaydı anlamak konusunda daha iyi olurdu kodu denemek konusunda ise şu anlık deneyemiyorum denediğimde sonucu yazarım. Teşekkür ederim.



< Bu ileti mobil sürüm kullanılarak atıldı >

W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

$total = count($_FILES['okuludf']['name']);

// Loop through each file
for($i=0; $i<$total; $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['okuludf']['tmp_name'][$i];

//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploadFiles/" . $_FILES['okuludf']['name'][$i];

//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {

//Handle other code here

}
}
}

Kodu şöyle düzenledim :

$total = count($_FILES['okuludf']['name']);  

for($i=0; $i<$total; $i++) {

$tmpFilePath = $_FILES['okuludf']['tmp_name'][$i];

if ($tmpFilePath != ""){

$newFilePath = $_FILES['okuludf']['name'][$i];

if(move_uploaded_file($tmpFilePath, $newFilePath)) {

$gecicidosya = $_FILES["okuludf"]["tmp_name"][$key];
$_SESSION['yol2'] = $_FILES["okuludf"]["name"][$key];

print_r($_SESSION['yol'] . " and " . $_SESSION['yol2']);

array_push($resimarray, $_SESSION['yol']);
array_push($resimarray, $_SESSION['yol2']);

}

}

}

$_SESSION['okulueua'] = $okuluduay;
$_SESSION['okulueua2'] = $okuludua2y;
$_SESSION['okulueuf'] = $okuludufy;
$_SESSION['okuluekf'] = $okuludkfy;
$_SESSION['okuluea'] = $okuluday;
$_SESSION['resimarray'] = $resimarray;


Ama şöyle hatalar alıyorum :

Notice: Undefined variable: key in C:\xampp\htdocs\egoldshop2\okulud.php on line 480

Notice: Undefined index: in C:\xampp\htdocs\egoldshop2\okulud.php on line 480

Notice: Undefined variable: key in C:\xampp\htdocs\egoldshop2\okulud.php on line 481

Notice: Undefined index: in C:\xampp\htdocs\egoldshop2\okulud.php on line 481

Bu sorunu nasıl çözebilirim?

Yardımınıza ihtiyacım var.



D
8 yıl
Yarbay

W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

$key i $i ile değiştir.

Değiştirdim ama session yol2 i yazdırınca yani adını yazdırınca E yazıyor.

Bu sorunu nasıl çözebilirim?

Yardımınıza ihtiyacım var.



N
8 yıl
Yarbay

$_FILES["okuludf"]["name"] karşılığı dizi olması lazım. Bu önemli. Onun haricinde mobil olduğum için inceleyemedim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

$_FILES["okuludf"]["name"] karşılığı dizi olması lazım. Bu önemli. Onun haricinde mobil olduğum için inceleyemedim.

Dizi derken birden fazla mı fotoraf yüklemem lazım ben input file de name okuludf[] diye kaydetmiştim birden fazla resim seçebilmek için.


Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

echo is_array($_FILES["okuludf"]["name"]);



çıktısı true olarak mı yoksa false olarak mı görünüyor?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

echo is_array($_FILES["okuludf"]["name"]);



çıktısı true olarak mı yoksa false olarak mı görünüyor?





Sonuç 1 yani true


Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

O zaman $_FILES["okuludf"]["name"] değeri boş da olabilir.

print_r($_FILES["okuludf"]["name"]) sonucu bir şeyler çıkıyor mu?



< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

O zaman $_FILES["okuludf"]["name"] değeri boş da olabilir.

print_r($_FILES["okuludf"]["name"]) sonucu bir şeyler çıkıyor mu?

Yazıyor



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

Tam olarak ne yazıyor?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

Tam olarak ne yazıyor?

Ekran Görüntüsü (561).png


Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

Dizi olarak 1 görünüyordu ama bu görünen dizi değil, değişken. Tam ne olduğunu anlamak için mümkünse kodun tümüne falan ulaşmak iyi olacak özelden falan. Yoksa ilerleme olmuyor.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

Dizi olarak 1 görünüyordu ama bu görünen dizi değil, değişken. Tam ne olduğunu anlamak için mümkünse kodun tümüne falan ulaşmak iyi olacak özelden falan. Yoksa ilerleme olmuyor.

Tüm kod bu.


Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

Form sayfasının kodu eksik.



< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: nihattr

Form sayfasının kodu eksik.

Merhaba,

şimdi şöyle :

foreach( $_FILES["okuludf"]["tmp_name"] as $key=>$tmp_name){ 

$gecicidosya = $_FILES["okuludf"]["tmp_name"][$key];
echo @$_SESSION['yol2'] = $_FILES["okuludf"]["name"][$key];

//move_uploaded_file($gecicidosya, $_SESSION['yol2']) or die("4");

array_push($resimarray, $_SESSION['yol2']);

}


Adını yazdırınca C yazıyor.

$_FILES["okuludf"]; yazdırınca sonuç şöyle :

Array ( [name] => C [type] => Array ( [0] => image/png ) [tmp_name] => Array ( [0] => C:\xampp\tmp\phpC85A.tmp ) [error] => Array ( [0] => 0 ) [size] => Array ( [0] => 105659 ) )

Form ise şöyle :

<form action="okulud.php" method="post" enctype="multipart/form-data"> 

<input type="file" name="okuludf[]" id="resimeklec2" class="resimeklec2" multiple="multiple">

</form>


Bu sorunu nasıl çözebilirim?

Yardımınıza ihtiyacım var.


Bu mesaja 1 cevap geldi.
N
8 yıl
Yarbay

Şu şekilde baktım. Sorun yok görünüyor. Hata yoksa yapılacak işlem ne?

if (isset($_POST['submit2'])) {
echo "<pre>";
print_r($_FILES["okuludf"]);
echo "</pre>";

$boyut = implode(",", $_FILES["okuludf"]["size"]);

if ($boyut > 0) {

foreach($_FILES["okuludf"]["name"] as $key=>$tmp_name){


$gecicidosya = $_FILES["okuludf"]["tmp_name"][$key];
@$_SESSION['yol'] = $_FILES["okuludf"]["name"][$key];
@$_SESSION['yol2'] = $_FILES["okuludf"]["name"][$key];

echo "Geçici dosya: ".$gecicidosya."<br />";
echo "yol: ".$_SESSION['yol']."<br />";
echo "yol2: ".$_SESSION['yol2']."<br />";

move_uploaded_file($gecicidosya, $_SESSION['yol']) or die("4");

array_push($resimarray, $_SESSION['yol']);
array_push($resimarray, $_SESSION['yol2']);

}

}else{

}

$_SESSION['okulueua'] = $okuluduay;
$_SESSION['okulueua2'] = $okuludua2y;
$_SESSION['okulueuf'] = $okuludufy;
$_SESSION['okuluekf'] = $okuludkfy;
$_SESSION['okuluea'] = $okuluday;
$_SESSION['resimarray'] = $resimarray;

}



< Bu ileti tablet sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @webandyazilimprofesor
W
8 yıl
Yüzbaşı
Konu Sahibi

Sorun çözüldü.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.