Panowie robię poprzez formularz przesył plików oraz zwykły input który jest walidowany, niestety pojawił się problem, który polega na tym, że jeśli wysyłam bez "uaktywnienia" walidacji wszystko działa ok, natomiast jeśli "auaktywni" się walidacja gdzieś gubi zmienną:
kod html:
<form method="post" name="dodaj" enctype="multipart/form-data"> Avatar:
<input type="text" name="avatar" value="">Wgraj plik:
<input type="file" name="plik[]"><input type="submit" name="dodaj" value="Zapisz">
kod php:
$avatar = $_POST['avatar'];
$mojplik = isset($_FILES['plik'])?
$_FILES['plik'] : array();
$blad = "Brak nazwy avatar.";
}else{
try{
$errors = true;
if(isset($mojplik['name'])){ mkdir(''.server
().'/avatar/'.$ids.'', 0777
); foreach ($mojplik['name'] as $val=>$fileName){
$FileTmpOne = $mojplik['tmp_name'][0];
$FileNameOne = $mojplik['name'][0];
$FileSizeOne = $mojplik['size'][0] / 1000;
$format = explode('.', $FileNameOne); $obrazek1 = md5($FileTmpOne.$FileSizeOne.$ids);
if($FileSizeOne <= 5000){
if($format[1] == 'jpg'){
}else{
$msg = 'Dozwolony tylko jpg.';
$errors = false;
}
}else{
$msg = 'Dozwolony tylko do 5 mb';
$errors = false;
}
}
$FileTmpTwo = $mojplik['tmp_name'][1];
$FileNameTwo = $mojplik['name'][1];
$FileSizeTwo = $mojplik['size'][1] / 1000;
$format = explode('.', $FileNameTwo); $obrazek2 = md5($FileTmpTwo.$FileSizeTwo.$ids);
if($errors == true){
$pdo = new db_connect();
$sql = $pdo->prepare("INSERT INTO `users` (
`ids`, `obrazek1`, `obrazek2`)
VALUES (
:item, :obrazek1)");
$sql->bindValue(':ids', $ids, PDO::PARAM_INT);
$sql->bindValue(':obrazek1', $obrazek1, PDO::PARAM_STR);
$sql->bindValue(':obrazek2', $obrazek2, PDO::PARAM_STR);
$sql->execute();
$msg = 'super dodano.';
}else{
$msg = 'błąd';
}
}catch(PDOException $e){
$msg = 'błąd dodania.';
}
}
}
Robiąc print_r($obrazek1) - widzę, że zmienna $obrazek1 w przypadku wykrycia walidacji i ponownym wysłaniu formularza gdzieś się traci.
Ktoś pomoże ?
Aha operacje na pliku robię na tablicy , gdyż dojdzie jeszcze możliwość wgrania innego formatu.
Ten post edytował casperii 10.06.2018, 17:35:08