изкарване на името на файла

Rk8752

Registered
ако може някой да ми опраи малко тоз код по точно искам да се оправи това че в hidden полето най-доло да показва номера на картинката ако имам в папката картинка 4.jpg да изкарва в полето да кажем 5.gif

ето кода:
Код:
<?php 
	if ($_POST['submit']) {
		$author = $username;
		$author = addslashes($username);
		$author = htmlspecialchars($username);
		$description = $_POST['description'];
		$description = addslashes($description);
		$description = htmlspecialchars($description);
		$attachement_loos = $_POST['attachement_loos'];
		$attachement_loos = addslashes($attachement_loos);
		$attachement_loos = htmlspecialchars($attachement_loos);
	if ($author == NULL || $description == NULL || $attachement_loos == NULL) {
		echo "<table width='80%' class='error1' align='center'>
		<tr>
		<td class='error' align='left' rowspan='4' width='5%'>
		<img src='images/error_button.png' border='0' width='33' height='33'>
		</td>
		<td align='left' width='100%'><font color='red'><b>Моля попълнете всички полета!</b></font></td>
		<td class='error' align='right' rowspan='4' width='5%'>
		</td>
		</tr>
		</table>";
		}
		else {
		$sql = "INSERT INTO files (`author`, `description`, `attachement_loos`) VALUES ('$username', '$description', '$attachement_loos')";
		mysql_query($sql) or die (mysql_error());
		echo "<meta http-equiv='refresh' content='1;url=index.php?p=folder' />";
		}
		
		function upload_back() { 
		global $globals; 

		$uploaddir = 'files/'; 
		$dir = opendir($uploaddir); 
		$files = array(); 

	if(!empty($_POST['attachement_loos'])) { $globals['attachement'] = $_POST['attachement_loos']; } 

	if(isset($_FILES['attachement']) && !empty($_FILES['attachement']['name'])) { 
	  
    if(!eregi('image/', $_FILES['attachement']['type'])) { 

		echo 'Типът на този файл не е разрешен!'; 

		} 
		else { 

        while($file = readdir($dir)) { array_push($files,"$file"); } closedir($dir); 

        $_FILES['attachement']['name'] = ceil(count($files)+'1').''.strrchr($_FILES['attachement']['name'], '.'); 
        $uploadfile = $uploaddir . basename($_FILES['attachement']['name']); 

        $previousToDestroy = empty($globals['attachement']) && !empty($_FILES['attachement']['name']) ? '' : $uploaddir . $files[ceil(count($files)-'1')]; 


    if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) { 

		echo '<pre> 
		Възникна проблем
		</pre>'; 

		} 
		else { 

		}  

        $globals['attachement'] = $_FILES['attachement']['name']; 
    if(!empty($previousToDestroy)) { 
		unlink($previousToDestroy); 
		} 

		} 

		} 
		} 

		upload_back(); 
		
		}
		else {
		
		echo '<center><form action="" method="post" enctype="multipart/form-data"> 

		<input type="file" class="input" name="attachement"></input><br /><br /> 
		<b>Описание:</b> <br /><textarea type="text" class="input" name="description" cols="25" rows="3"></textarea> 
		<input type="hidden" class="input" name="attachement_loos" value=""></input> 
		<br /><br />
		<input type="submit" name="submit" value="Добави" class="btn"></input> 

		</form></center>';
		}
?>
 
Тоест искаш да взима последната качена снимка (името на снимката) 4.jpg и в

Код:
<input type="hidden" class="input" name="attachement_loos" value=""></input>

Да бъде;
<input type="hidden" class="input" name="attachement_loos" value="5.jpg"></input> :roll:

Или съм те разбрал погрешно?
 
Аз си мисля, че ще трябва да стане така.. В таблицата си добавяш едно поле "nomer" в този номер ще се записва номера на снимката.. след това извеждаш резултата и добавяш +1 и ако имаме 4 в таблицата при добавянето на +1 ще стане 5. След това само извади долу във value крайния резултат.. Не съм сигурен, че мисля правилно и затова ще видя и другите , които ще коментират в темата, за да видя точно какво ще трябва да стане :?:
 
Или направо
<?php
if ($_POST['submit']) {
$author = $username;
$author = addslashes($username);
$author = htmlspecialchars($username);
$description = $_POST['description'];
$description = addslashes($description);
$description = htmlspecialchars($description);
$attachement_loos = $_POST['attachement_loos'];
$attachement_loos = addslashes($attachement_loos);
$attachement_loos = htmlspecialchars($attachement_loos);
if ($author == NULL || $description == NULL || $attachement_loos == NULL) {
echo "<table width='80%' class='error1' align='center'>
<tr>
<td class='error' align='left' rowspan='4' width='5%'>
<img src='images/error_button.png' border='0' width='33' height='33'>
</td>
<td align='left' width='100%'><font color='red'><b>Моля попълнете всички полета!</b></font></td>
<td class='error' align='right' rowspan='4' width='5%'>
</td>
</tr>
</table>";
}
else {
$sql = "INSERT INTO files (`author`, `description`, `attachement_loos`) VALUES ('$username', '$description', '$attachement_loos')";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='1;url=index.php?p=folder' />";
}

function upload_back() {
global $globals;

$uploaddir = 'files/';
$dir = opendir($uploaddir);
$files = array();

if(!empty($_POST['attachement_loos'])) { $globals['attachement'] = $_POST['attachement_loos']; }

if(isset($_FILES['attachement']) && !empty($_FILES['attachement']['name'])) {

if(!eregi('image/', $_FILES['attachement']['type'])) {

echo 'Типът на този файл не е разрешен!';

}
else {

while($file = readdir($dir)) { array_push($files,"$file"); } closedir($dir);

$_FILES['attachement']['name'] = ceil(count($files)+'1').''.strrchr($_FILES['attachement']['name'], '.');
$uploadfile = $uploaddir . basename($_FILES['attachement']['name']);

$previousToDestroy = empty($globals['attachement']) && !empty($_FILES['attachement']['name']) ? '' : $uploaddir . $files[ceil(count($files)-'1')];


if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) {

echo '<pre>
Възникна проблем
</pre>';

}
else {

}

$globals['attachement'] = $_FILES['attachement']['name'];
if(!empty($previousToDestroy)) {
unlink($previousToDestroy);
}

}

}
}

upload_back();

}
else {
$last = mysql_result(mysql_query("SELECT `attachement_loos` FROM `files` ORDER BY `attachement_loos` DESC LIMIT 1"),0,0);
echo '<center><form action="" method="post" enctype="multipart/form-data">

<input type="file" class="input" name="attachement"></input><br /><br />
<b>Описание:</b> <br /><textarea type="text" class="input" name="description" cols="25" rows="3"></textarea>
<input type="hidden" class="input" name="attachement_loos" value="$last"></input>
<br /><br />
<input type="submit" name="submit" value="Добави" class="btn"></input>

</form></center>';
}
?>
 
ще пробвам само ще изнеса $_FILES['name'] без ['type'] за да записва номера и после му правя едно $file = $_FILES['name'] + 1 и трябва да стане ?
 
Replace каза:
Или направо
<?php
if ($_POST['submit']) {
$author = $username;
$author = addslashes($username);
$author = htmlspecialchars($username);
$description = $_POST['description'];
$description = addslashes($description);
$description = htmlspecialchars($description);
$attachement_loos = $_POST['attachement_loos'];
$attachement_loos = addslashes($attachement_loos);
$attachement_loos = htmlspecialchars($attachement_loos);
if ($author == NULL || $description == NULL || $attachement_loos == NULL) {
echo "<table width='80%' class='error1' align='center'>
<tr>
<td class='error' align='left' rowspan='4' width='5%'>
<img src='images/error_button.png' border='0' width='33' height='33'>
</td>
<td align='left' width='100%'><font color='red'><b>Моля попълнете всички полета!</b></font></td>
<td class='error' align='right' rowspan='4' width='5%'>
</td>
</tr>
</table>";
}
else {
$sql = "INSERT INTO files (`author`, `description`, `attachement_loos`) VALUES ('$username', '$description', '$attachement_loos')";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='1;url=index.php?p=folder' />";
}

function upload_back() {
global $globals;

$uploaddir = 'files/';
$dir = opendir($uploaddir);
$files = array();

if(!empty($_POST['attachement_loos'])) { $globals['attachement'] = $_POST['attachement_loos']; }

if(isset($_FILES['attachement']) && !empty($_FILES['attachement']['name'])) {

if(!eregi('image/', $_FILES['attachement']['type'])) {

echo 'Типът на този файл не е разрешен!';

}
else {

while($file = readdir($dir)) { array_push($files,"$file"); } closedir($dir);

$_FILES['attachement']['name'] = ceil(count($files)+'1').''.strrchr($_FILES['attachement']['name'], '.');
$uploadfile = $uploaddir . basename($_FILES['attachement']['name']);

$previousToDestroy = empty($globals['attachement']) && !empty($_FILES['attachement']['name']) ? '' : $uploaddir . $files[ceil(count($files)-'1')];


if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) {

echo '<pre>
Възникна проблем
</pre>';

}
else {

}

$globals['attachement'] = $_FILES['attachement']['name'];
if(!empty($previousToDestroy)) {
unlink($previousToDestroy);
}

}

}
}

upload_back();

}
else {
$last = mysql_result(mysql_query("SELECT `attachement_loos` FROM `files` ORDER BY `attachement_loos` DESC LIMIT 1"),0,0);
echo '<center><form action="" method="post" enctype="multipart/form-data">

<input type="file" class="input" name="attachement"></input><br /><br />
<b>Описание:</b> <br /><textarea type="text" class="input" name="description" cols="25" rows="3"></textarea>
<input type="hidden" class="input" name="attachement_loos" value="$last"></input>
<br /><br />
<input type="submit" name="submit" value="Добави" class="btn"></input>

</form></center>';
}
?>

по този начин излиза пак последното 4.jpg
 
nom3r1 каза:
Тоест искаш да взима последната качена снимка (името на снимката) 4.jpg и в

Код:
<input type="hidden" class="input" name="attachement_loos" value=""></input>

Да бъде;
<input type="hidden" class="input" name="attachement_loos" value="5.jpg"></input> :roll:

Или съм те разбрал погрешно?
Е значи аз пак не съм разбрал :idea:
Как ще вземаш следващата снимка ,като не я знаеш коя е ?
А ако с примерите дадени по-горе искаш да кажеш ,че картинктие са поредни номера + .jpg - ок , но ако и това не е - свършвам с идеите :idea:
 
ще ти дам пример с web-tourist.net като влезеш в лична папка и виж как се качват там +1 и тей ако се делете -1 и после като се качи ново +1 :)
 
Добре , да предположим ,че съм ти схванал идеята.
<?php
if ($_POST['submit']) {
$author = $username;
$author = addslashes($username);
$author = htmlspecialchars($username);
$description = $_POST['description'];
$description = addslashes($description);
$description = htmlspecialchars($description);
$attachement_loos = $_POST['attachement_loos'];
$attachement_loos = addslashes($attachement_loos);
$attachement_loos = htmlspecialchars($attachement_loos);
if ($author == NULL || $description == NULL || $attachement_loos == NULL) {
echo "<table width='80%' class='error1' align='center'>
<tr>
<td class='error' align='left' rowspan='4' width='5%'>
<img src='images/error_button.png' border='0' width='33' height='33'>
</td>
<td align='left' width='100%'><font color='red'><b>Моля попълнете всички полета!</b></font></td>
<td class='error' align='right' rowspan='4' width='5%'>
</td>
</tr>
</table>";
}
else {
$sql = "INSERT INTO files (`author`, `description`, `attachement_loos`) VALUES ('$username', '$description', '$attachement_loos')";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='1;url=index.php?p=folder' />";
}

function upload_back() {
global $globals;

$uploaddir = 'files/';
$dir = opendir($uploaddir);
$files = array();

if(!empty($_POST['attachement_loos'])) { $globals['attachement'] = $_POST['attachement_loos']; }

if(isset($_FILES['attachement']) && !empty($_FILES['attachement']['name'])) {

if(!eregi('image/', $_FILES['attachement']['type'])) {

echo 'Типът на този файл не е разрешен!';

}
else {

while($file = readdir($dir)) { array_push($files,"$file"); } closedir($dir);

$_FILES['attachement']['name'] = ceil(count($files)+'1').''.strrchr($_FILES['attachement']['name'], '.');
$uploadfile = $uploaddir . basename($_FILES['attachement']['name']);

$previousToDestroy = empty($globals['attachement']) && !empty($_FILES['attachement']['name']) ? '' : $uploaddir . $files[ceil(count($files)-'1')];


if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) {

echo '<pre>
Възникна проблем
</pre>';

}
else {

}

$globals['attachement'] = $_FILES['attachement']['name'];
if(!empty($previousToDestroy)) {
unlink($previousToDestroy);
}

}

}
}

upload_back();

}
else {
$last = explode(".",mysql_result(mysql_query(" SELECT c FROM files ORDER BY c DESC LIMIT 1"),0,0));
echo '<center><form action="" method="post" enctype="multipart/form-data">

<input type="file" class="input" name="attachement"></input><br /><br />
<b>Описание:</b> <br /><textarea type="text" class="input" name="description" cols="25" rows="3"></textarea>
<input type="hidden" class="input" name="attachement_loos" value="$last[0]"></input>
<br /><br />
<input type="submit" name="submit" value="Добави" class="btn"></input>

</form></center>';
}
?>
 
Код:
Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\tutorials\folder.php on line 116

оправих го сега излиза 1

много тъпо стана с 1 дума искам да кажа че там кадето излиза 4.jpg искам да излиза името на файла щото го качвам в дб и искам после да проверява ако сесията потребител е равна на автора да показва всички качени файлове
 
Явно не мога да ти разбера идеята ,затова последно стрелям.
Може да ти излиза 1 ,(по принцип де) тогава , когато последният ти качен файл е с име 0..нещо .Поне като написах кода ,това ми беше идеята.
 

Back
Горе