|
|
|
| Люди, помогите. Дело такое - есть рабочий скрипт загрузки файлов на сервак - простая форма и её обработчик. Но вставляя скрипт в сценарий побольше и с попыткой записать путь к файлу в базу данных заканчивается полным крахом:
<form action="<?php echo $action ?>" method="post" enctype="multipart/form-data">
<table border="0" cellcpacing="1" cellpadding="3" align="center">
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Текст 1</font></strong>
</td>
<td><input type="text" name="anch" value="<?php echo $anch ?>">
</td>
</tr>
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Рисунок 1</font></strong>
</td>
<td> <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="anch_pict" value="<?php echo $anch_pict ?>">
</td>
</tr>
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Текст 2</font></strong>
</td>
<td><input type="text" name="work_title" value="<?php echo $work_title ?>">
</td>
</tr>
<tr bgcolor="#8080FF" valign="top">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Текст 3</font></strong>
</td>
<td><textarea cols="50" rows="4" name="work_text"><?php echo $work_text ?></textarea>
</td>
</tr>
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Рисунок 2</font></strong>
</td>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="work_pict" value="<?php echo $work_pict ?>">
</td>
</tr>
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">Рисунок 3</font></strong>
</td>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="work_pict_big" value="<?php echo $work_pict_big ?>">
</td>
</tr>
<tr bgcolor="#8080FF">
<td><strong><font style="color:#FFFFFF; font-family:Tahoma; font-size:12px">URL</font> </strong>
</td>
<td><input type="text" name="work_url" value="<?php echo $work_url ?>">
</td>
</tr>
<tr bgcolor="#8080FF">
<td colspan="2" align="center"><input type="submit" value="<?php echo $button ?>">
<input type="hidden" name="id_work" value="<?php echo $_GET['id_work'] ?>">
</tr>
</table>
</form>
|
это код формы, обработчик которой, должен заносить путь к файлу в базу данных.
а вот скрипт обработчика этой формы:
<?php
include "config.php";
include "fns.php";
if(empty($_POST['anch'])) links($_POST['id_work'], "Введите текст 1");
if(empty($_POST['work_title'])) links($_POST['id_work'], "Введите текст 2");
if(empty($_POST['work_text'])) links($_POST['id_work'], "Введите текст 3");
if(empty($_POST['work_url'])) links($_POST['id_work'], "Введите урл URL");
if(isset($_POST['anch_pict']) && $_POST['anch_pict'] != "-"){
$userfile_a = $_FILES['anch_pict']['tmp_name'];
$userfile_name_a = $_FILES['anch_pict']['name'];
$upfile_a = 'files/'.$userfile_name_a;
if (is_uploaded_file($userfile_a))
{
if (!move_uploaded_file($userfile_a, $upfile_a))
{
echo 'Error';
exit;
}
}
}
else{
$upfile_a = "";
}
if(isset($_POST['work_pict']) && $_POST['work_pict'] != "-"){
$userfile_b = $_FILES['work_pict']['tmp_name'];
$userfile_name_b = $_FILES['work_pict']['name'];
$upfile_b = 'files/'.$userfile_name_b;
if (is_uploaded_file($userfile_b))
{
if (!move_uploaded_file($userfile_b, $upfile_b))
{
echo 'Error';
exit;
}
}
}
else{
$upfile_b = "";
}
if(isset($_POST['work_pict_big']) && $_POST['work_pict_big'] != "-"){
$userfile_c = $_FILES['work_pict_big']['tmp_name'];
$userfile_name_c = $_FILES['work_pict_big']['name'];
$upfile_c = 'files/'.$userfile_name_c;
if (is_uploaded_file($userfile_c))
{
if (!move_uploaded_file($userfile_c, $upfile_c))
{
echo 'Error';
exit;
}
}
}
else{
$upfile_c = "";
}
$_POST['anch'] = str_replace ("'", "'", $_POST['anch']);
$_POST['work_title'] = str_replace ("'", "'", $_POST['work_title']);
$_POST['work_text'] = str_replace ("'", "'", $_POST['work_text']);
$_POST['work_url'] = str_replace ("'", "'", $_POST['work_url']);
$query = "INSERT INTO db_table VALUES (NULL,
'$anch',#Текст 1
'$upfile_a',#Рисунок 1
'$work_title',#Текст 2
'$work_text',#Текст 3
'$upfile_b',#Рисунок 2
'$upfile_c',#Рисунок3
'$work_url')";//URL
if(!mysql_query($query))
puterror("Ошибка");
else
{
echo "<html><head><meta http-equiv='Refresh' content='0; url=admin.php'></head></html>";
}
?>
|
Помогите разобраться. | |
|
|
|
|
|
|
|
для: Lelik
(15.12.2005 в 11:46)
| | Полный крах в чём выражается? Сопровождается ли он какими-нибудь надписями и эффектами? | |
|
|
|
|
|
|
|
для: cheops
(15.12.2005 в 13:20)
| | Как обычно - искры из монитора и свет гаснет во всем квартале (в кино видел:) | |
|
|
|
|
|
|
|
для: cheops
(15.12.2005 в 13:20)
| | срабатывает часть кода
...
if(!mysql_query($query))
puterror("Ошибка");
...
|
>Полный крах в чём выражается? Сопровождается ли он какими-нибудь надписями и эффектами?
Это проявляется в том, что я уже достаточно долго пытаюся, что-бы данный ,или подобный к этому скрипту, скрипт РАБОТАЛ, а то по-поводу загрузок файлов на сервак, я уже начинаю разочаровываться в своих силах :( | |
|
|
|
|
|
|
|
для: Lelik
(17.12.2005 в 02:49)
| | А вы выведите запрос на экран: как я понимаю, комментарии в нем у вас не экранируются, так как находятся внутри кавычек. | |
|
|
|
|
|
|
|
для: Loki
(17.12.2005 в 12:34)
| | Если вы про это?:
$query = "INSERT INTO db_table VALUES (NULL,
'$anch',#Текст 1
'$upfile_a',#Рисунок 1
'$work_title',#Текст 2
'$work_text',#Текст 3
'$upfile_b',#Рисунок 2
'$upfile_c',#Рисунок3
'$work_url')";//URL
|
то, комментарии я написал только в этом сообщении на форуме
А может скрипт не исполняется, потому что я на локалхосте его тестирую, хотя аналогичные скрипты софттайма на локалхосте работают... | |
|
|
|
|
|
|
|
для: Lelik
(17.12.2005 в 13:20)
| | Скрипт какие надиписи выводит? В чём выражается его "не работа"? | |
|
|
|
|
|
|
|
для: cheops
(17.12.2005 в 13:23)
| | ну не хочет он выполнять то, что ДОЛЖЕН.
без загрузки рисунков, а с прописыванием полного пути к ним на сайте(вместо полей загрузки файлов обычные текстовые поля в форме) - работает.
>Скрипт какие надиписи выводит?
...
if(!mysql_query($query))
puterror("Ошибка");
...
|
и на экране написано "Ошибка" | |
|
|
|
|
|
|
|
для: Lelik
(17.12.2005 в 13:30)
| | Дак тебя же люди надписи просят написать (то что MySQL тебе пишет)...Там вся соль.....Там и ключ. | |
|
|
|
|
|
|
|
для: Lelik
(17.12.2005 в 13:30)
| | Исправьте строку
<?php
puterror("Ошибка");
?>
|
на
<?php
puterror("Ошибка ".mysql_error());
?>
|
Что дополнительно выводится? | |
|
|
|
|
|
|
|
для: cheops
(17.12.2005 в 22:01)
| | Table 'lelikdb.db_table' doesn't exist | |
|
|
|
|
|
|
|
для: Lelik
(18.12.2005 в 01:24)
| | дак она пишет что у тебя таблицы в базе данных нет такой
$query = "INSERT INTO db_table VALUES (NULL,
'$anch',#Текст 1
|
db_table не сеществует. | |
|
|
|
|
|
|
|
для: hatsker
(18.12.2005 в 10:23)
| | Путь к БД прописал правильно, теперь он рисунки не загружает | |
|
|
|
|
|
|
|
для: Lelik
(18.12.2005 в 11:44)
| | А что пишет? | |
|
|
|
|
|
|
|
для: cheops
(18.12.2005 в 13:37)
| | скрипт исполняется так: в БД записуются все тексты которые я ввожу и рисунки как пустые
а почему они не загружаются это меня и интересует | |
|
|
|
|
|
|
|
для: Lelik
(18.12.2005 в 16:33)
| | Проверь права на папку | |
|
|
|
|
|
|
|
для: Lelik
(18.12.2005 в 16:33)
| | Название картинок попадают в базу данных. Или нет...Я сегодня такой скрипт делал. Заметил странную особенность. В первый раз когда из папки загружаеш картинку, скрипт файл не перекидывает, но название файла есть...Если у тебя такая проблема, то я сделал то после каждой записи файла, открывалась картинка из места куда она была записанна... | |
|
|
|
|
|
|
|
для: hatsker
(20.12.2005 в 10:49)
| | Нет, путь к файлу в БД не записывается.
А насчет прав доступа к папке, то этот скрипт делаю на локалхосте | |
|
|
|