в базу она загружается. проблема в отображении именно на сайте.
вот скриншот
http://rghost.ru/5326639
и, кстати, дата почему-то обнуляется.
вот страница добавления статьи:
<body>
<table width="690" border="1" align="center" bgcolor="#FFFFFF" class="main_border">
<? include("blocks/header.php"); ?>
<tr>
<td valign="top"><table width="690" border="1">
<tr>
<? include("blocks/lefttd.php"); ?>
<td valign="top">
<?php
if (!empty($_POST['fupload'])) //проверяем, отправил ли пользователь изображение
{
$fupload=$_POST['fupload']; $fupload = trim($fupload);
if ($fupload =='' or empty($fupload)) {
unset($fupload);// если переменная $fupload пуста, то удаляем ее
}
}
if (!isset($fupload) or empty($fupload) or $fupload =='')
{
$pic = "articles/no_pic.jpg";
}
else
{
$path_to_90_directory = 'Z:/home/localhost/www/phpsite/articles/';
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ;
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename);
}
$w = 79;
$w_src = imagesx($im);
$h_src = imagesy($im);
$dest = imagecreatetruecolor($w,$w);
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
$date=time();
imagejpeg($dest, $path_to_90_directory.$date.".jpg");
$pic = $path_to_90_directory.$date.".jpg";
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);
}
else
{
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
}
if (isset($title) and isset($meta_d) and isset($meta_k) and isset($date) and isset($description) and isset($text) and isset($author) and isset($pic))
{
$result = mysql_query ("INSERT INTO articles (title,meta_d,meta_k,date,description,text,author,pic) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author','$pic')");
if ($result == 'true') {echo "<p>Ваша статья успешно добавлена.</p>";}
else {echo "<p>Ваша статья не добавлена.</p>";}
}
else
{
echo "<p>Статья не может быть внесена в базу, т.к. вы ввели не всю информацию.</p>";
}
?>
</td>
</tr>
</table></td>
</tr>
<? include("blocks/footer.php"); ?>
</table>
</body>
Спустя 1 минута, 29 секунд (25.04.2011 - 19:34) dobryaaasha написал(а):
на скриншоте первая статья добавлена через базу данных, остальные - через админский блок
Спустя 4 минуты, 3 секунды (25.04.2011 - 19:38) mxwuser написал(а):
Неверно задана ссылка на изображение в админском блоке. Посмотри исходный код странички, и найди различия в статьях добавленныех с БД и с Админки
Спустя 48 минут, 58 секунд (25.04.2011 - 20:27) dobryaaasha написал(а):
в исходном коде у изображения, которое выложилось путь
src='articles/130411/shigin_branchuk.jpg'
а у которого не выложилось
src='Z:/home/localhost/www/phpsite/articles/1303747243.jpg'
src='articles/130411/shigin_branchuk.jpg'
а у которого не выложилось
src='Z:/home/localhost/www/phpsite/articles/1303747243.jpg'
Спустя 3 минуты, 20 секунд (25.04.2011 - 20:31) dobryaaasha написал(а):
кстати, я когда в базе удалила часть Z:/home/localhost/www/phpsite/
оставила только articles/1303747243.jpg, картинка отобразилась
но это только если в базе так сделать
это плохо
оставила только articles/1303747243.jpg, картинка отобразилась
но это только если в базе так сделать
это плохо
Спустя 20 минут, 32 секунды (25.04.2011 - 20:51) Игорь_Vasinsky написал(а):
есть понятия относительного пути и абсолютного, в админском блоке произведите изменения.
Спустя 8 минут, 40 секунд (25.04.2011 - 21:00) dobryaaasha написал(а):
я так понимаю, в строке $path_to_90_directory = 'Z:/home/localhost/www/phpsite/articles/'; надо заменить абсолютный адрес на относительный?
Спустя 39 минут, 52 секунды (25.04.2011 - 21:40) Игорь_Vasinsky написал(а):
это должно делаться автоматом, при загрузке катинки и именно в таком виде писаться в БД, а следовательно нужно внести изменения в функции загрузке.
или если вы это делаете ручками - то да, прописывать адрес куда картинка будет копироваться уже на хост.
или если вы это делаете ручками - то да, прописывать адрес куда картинка будет копироваться уже на хост.
Спустя 1 минута, 8 секунд (25.04.2011 - 21:41) Игорь_Vasinsky написал(а):
а.. вижу:
смените адрес
$path_to_90_directory = 'Z:/home/localhost/www/phpsite/articles/';
смените адрес
Спустя 6 минут, 15 секунд (25.04.2011 - 21:47) dobryaaasha написал(а):
так..сменить..еще б понять на какой адрес сменить
сейчас буду размышлять
сейчас буду размышлять
Спустя 6 минут, 16 секунд (25.04.2011 - 21:53) Krevedko написал(а):
без
Z:/home/localhost/www
уж точно
вообще
Z:/home/localhost/www/phpsite/articles/
странный путь
скорее сайт лежит по пути
Z:/home/localhost/phpsite/www/
тогда надо поставить /articles
Z:/home/localhost/www
уж точно
вообще
Z:/home/localhost/www/phpsite/articles/
странный путь
скорее сайт лежит по пути
Z:/home/localhost/phpsite/www/
тогда надо поставить /articles
Спустя 2 минуты, 33 секунды (25.04.2011 - 21:56) Игорь_Vasinsky написал(а):
Цитата |
так..сменить..еще б понять на какой адрес сменить сейчас буду размышлять |
Ну просто же... посмотри адрес работающей превью...
Спустя 3 минуты, 15 секунд (25.04.2011 - 21:59) mxwuser написал(а):
Работает:
Не работает:
Соответственно, при добавлении в БД, нужно сделать из ссылки которая не работает, ссылку которая работает. Так как ты знаешь абсолютный адрес(количество символов), можешь обрезать сторку записываемую функцией 'substr'
Вроде, как-то так.
src='articles/130411/shigin_branchuk.jpg'
Не работает:
src='Z:/home/localhost/www/phpsite/articles/1303747243.jpg'
Соответственно, при добавлении в БД, нужно сделать из ссылки которая не работает, ссылку которая работает. Так как ты знаешь абсолютный адрес(количество символов), можешь обрезать сторку записываемую функцией 'substr'
$string = 'Z:/home/localhost/www/phpsite/articles/1303747243.jpg';
$src = substr($string, 30);
Вроде, как-то так.
Спустя 8 минут, 46 секунд (25.04.2011 - 22:08) dobryaaasha написал(а):
Krevedko, /articles ставила уже. картинка опять же не появляется
Игорь_Vasinsky, может, и просто это, но я пока туго ориентируюсь в этих делах
mxwuser, ух, это прям очень интересный способ
Игорь_Vasinsky, может, и просто это, но я пока туго ориентируюсь в этих делах
mxwuser, ух, это прям очень интересный способ
Спустя 4 минуты, 30 секунд (25.04.2011 - 22:13) mxwuser написал(а):
$pic = substr($path_to_90_directory, 30).$date.".jpg"; - попробуй так сделать, и скажи что записывается в бд в столбец 'pic'
Спустя 20 минут, 43 секунды (25.04.2011 - 22:33) dobryaaasha написал(а):
я че-то запуталась, а в какой части страницы добавить эту строку?
Спустя 15 минут, 35 секунд (25.04.2011 - 22:49) mxwuser написал(а):
Вместо этого
$pic = $path_to_90_directory.$date.".jpg";
Спустя 15 минут, 4 секунды (25.04.2011 - 23:04) dobryaaasha написал(а):
спасиииибо еще раз!
наконец-то картинки стали отображаться
наконец-то картинки стали отображаться
Спустя 7 минут, 17 секунд (25.04.2011 - 23:11) Krevedko написал(а):
мда...как говорится способ через жопу )) впрочем сойдет
Спустя 5 минут, 4 секунды (25.04.2011 - 23:16) mxwuser написал(а):
Krevedko
Там весь сайт написан на ДуВайлах и Принт_ф'ах. Так что не все так плохо (=
Там весь сайт написан на ДуВайлах и Принт_ф'ах. Так что не все так плохо (=
Спустя 16 минут, 2 секунды (25.04.2011 - 23:32) Krevedko написал(а):
ну я о чем и говорю. работает и ладно )
но никто себе такой код на нормальный сайт никогда не поставит )
но никто себе такой код на нормальный сайт никогда не поставит )
Спустя 1 минута, 19 секунд (25.04.2011 - 23:34) mxwuser написал(а):
Расскажи тогда, что-ли, как правильнее сделать будет, в следущий раз учтем (=
Спустя 11 минут, 2 секунды (25.04.2011 - 23:45) Krevedko написал(а):
я уже написал как. использовать нормальный путь...
всегда использовал что-то вроде
'/public/pics/'.image.jpg и проблем не возникало. если хочется поглубже поизвращаться, всегда можно заюзать $_SERVER['HTTP_HOST'] и $_SERVER['DOCUMENT_ROOT'], записать в константы и ставить перед адресом.
всегда использовал что-то вроде
'/public/pics/'.image.jpg и проблем не возникало. если хочется поглубже поизвращаться, всегда можно заюзать $_SERVER['HTTP_HOST'] и $_SERVER['DOCUMENT_ROOT'], записать в константы и ставить перед адресом.
Спустя 16 часов, 6 минут, 28 секунд (26.04.2011 - 15:51) dobryaaasha написал(а):
Krevedko, я задание делаю институтское. Так что до нормального сайта мне еще далеко. Да и времени пока нет. А так, хоть бы заработал действительно.
mxwuser, я когда сменила строчку $pic = $path_to_90_directory.$date.".jpg"; на то, что ты прислал, у меня дата перестала при добавлении статьи появляться. все грузится хорошо и красиво кроме даты. она получается 0000-00-00
mxwuser, я когда сменила строчку $pic = $path_to_90_directory.$date.".jpg"; на то, что ты прислал, у меня дата перестала при добавлении статьи появляться. все грузится хорошо и красиво кроме даты. она получается 0000-00-00
Спустя 6 минут, 9 секунд (26.04.2011 - 15:57) Krevedko написал(а):
ну дык тем более в институте за такое кол поставят моментом )
почему нельзя нормальную ссылку написать ?
почему нельзя нормальную ссылку написать ?
Спустя 29 минут, 59 секунд (26.04.2011 - 16:27) dobryaaasha написал(а):
в институте принимает парниша лабы. главное, чтоб все работало.
а ссылку я пыталась ставить типа такой /public/pics/'.image.jpg
не работает
а ссылку я пыталась ставить типа такой /public/pics/'.image.jpg
не работает
Спустя 2 минуты, 17 секунд (26.04.2011 - 16:30) dobryaaasha написал(а):
мне же нужно указать папку, в которую будут загружаться картинки
а ты пишешь '/public/pics/'.image.jpg.
мне значит надо писать только '/public/pics/'?
а ты пишешь '/public/pics/'.image.jpg.
мне значит надо писать только '/public/pics/'?
Спустя 9 минут, 54 секунды (26.04.2011 - 16:39) Krevedko написал(а):
мне нужно знать две вещи.
1) где лежат у тебя картинки и как они называются
2) куда сейчас ведет путь (который неправильный) на картинку. смотрится так - правой кнопкой на место, где должна быть картинка, но щас там пустое поле и свойства. Например ссылка на твой аватар- http://phpforum.ru/uploads/av-27564.jpg
Тут просто не все телепаты еще )
Вообще если я правильно понял, то
$path_to_90_directory = '/articles/';
$pic = $path_to_90_directory . $date . '.jpg';
если $date-это название картинки, а картинки лежат в папке articles
1) где лежат у тебя картинки и как они называются
2) куда сейчас ведет путь (который неправильный) на картинку. смотрится так - правой кнопкой на место, где должна быть картинка, но щас там пустое поле и свойства. Например ссылка на твой аватар- http://phpforum.ru/uploads/av-27564.jpg
Тут просто не все телепаты еще )
Вообще если я правильно понял, то
$path_to_90_directory = '/articles/';
$pic = $path_to_90_directory . $date . '.jpg';
если $date-это название картинки, а картинки лежат в папке articles
Спустя 20 минут, 53 секунды (26.04.2011 - 17:00) dobryaaasha написал(а):
1) так какая разница, как они называются? админ же любую картинку может добавить
2) http://localhost/phpsite/articles/1303825293.jpg - адрес работающей картинки
на неработающей, когда щелкаю свойства изображения, ничего не происходит
2) http://localhost/phpsite/articles/1303825293.jpg - адрес работающей картинки
на неработающей, когда щелкаю свойства изображения, ничего не происходит
Спустя 6 минут, 38 секунд (26.04.2011 - 17:07) Krevedko написал(а):
выше код должен прокатить по идее
Спустя 7 минут, 35 секунд (26.04.2011 - 17:15) dobryaaasha написал(а):
не катит
ошибку пишет, что нет такой директории в http://localhost/phpsite/add_articles/
у меня статьи хранятся в articles, а добавляются в add_articles
ошибку пишет, что нет такой директории в http://localhost/phpsite/add_articles/
у меня статьи хранятся в articles, а добавляются в add_articles
Спустя 2 минуты, 5 секунд (26.04.2011 - 17:17) Krevedko написал(а):
$pic = '/articles/' . $date . '.jpg';
Спустя 47 минут, 41 секунда (26.04.2011 - 18:04) liw написал(а):
dobryaaasha
Ты так и будешь постоянно делать методом тыка?
Попробуй понять вообще как это работает.
Например:
если сейчас у тебя в браузере в URL написано:
locahost/phpsite/index.php
и этот самый index.php лежит тут Z:/blabla/phpsite/index.php
вот значит текущая папка у тебя сейчас Z:/blabla/phpsite
а картинки у тебя лежат например в папке Z:/blabla/phpsite/articles/
так вот тебе нужно тогда прописать путь от папки Z:/blabla/phpsite до папки с картинками - то есть до Z:/blabla/phpsite/articles/
то есть путь будет таким: ./articles/
. - точка - в пути обозначает текущую папку
.. - двоеточие - переход на уровень вверх (назад/влево)
т.е. если мне нужно из файла C:/data/html.html
сделать ссылку на картинку C:/image.jpg
то в html.html я буду писать так <img src="../image.jpg">
что значит из текущей папки перейти на уровень вверх и вот там уже лежит картинка
Спрашивай что непонятно, в том что я понаписал. И постарайся решить свою задачу самостоятельно.
Ты так и будешь постоянно делать методом тыка?
Попробуй понять вообще как это работает.
Например:
если сейчас у тебя в браузере в URL написано:
locahost/phpsite/index.php
и этот самый index.php лежит тут Z:/blabla/phpsite/index.php
вот значит текущая папка у тебя сейчас Z:/blabla/phpsite
а картинки у тебя лежат например в папке Z:/blabla/phpsite/articles/
так вот тебе нужно тогда прописать путь от папки Z:/blabla/phpsite до папки с картинками - то есть до Z:/blabla/phpsite/articles/
то есть путь будет таким: ./articles/
. - точка - в пути обозначает текущую папку
.. - двоеточие - переход на уровень вверх (назад/влево)
т.е. если мне нужно из файла C:/data/html.html
сделать ссылку на картинку C:/image.jpg
то в html.html я буду писать так <img src="../image.jpg">
что значит из текущей папки перейти на уровень вверх и вот там уже лежит картинка
Спрашивай что непонятно, в том что я понаписал. И постарайся решить свою задачу самостоятельно.
Спустя 8 минут, 29 секунд (26.04.2011 - 18:13) dobryaaasha написал(а):
liw
это все мне понятно уже сейчас.
спасибо!
мне теперь не понятно, почему дата стала отображаться 0000-00-00
отчего это может быть?
просмотрела весь код и не понимаю, почему не передается значение даты
это все мне понятно уже сейчас.
спасибо!
мне теперь не понятно, почему дата стала отображаться 0000-00-00
отчего это может быть?
просмотрела весь код и не понимаю, почему не передается значение даты
Спустя 5 минут, 55 секунд (26.04.2011 - 18:19) Krevedko написал(а):
откуда значение даты берется ?
Спустя 6 минут, 27 секунд (26.04.2011 - 18:25) dobryaaasha написал(а):
я так понимаю, отсюда
if (isset($title) and isset($meta_d) and isset($meta_k) and isset($date) and isset($description) and isset($text) and isset($author) and isset($pic))
{
$result = mysql_query ("INSERT INTO articles (title,meta_d,meta_k,date,description,text,author,pic) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author','$pic')");
if ($result == 'true') {echo "<p>Ваша статья успешно добавлена.</p>";}
else {echo "<p>Ваша статья не добавлена.</p>";}
}
if (isset($title) and isset($meta_d) and isset($meta_k) and isset($date) and isset($description) and isset($text) and isset($author) and isset($pic))
{
$result = mysql_query ("INSERT INTO articles (title,meta_d,meta_k,date,description,text,author,pic) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author','$pic')");
if ($result == 'true') {echo "<p>Ваша статья успешно добавлена.</p>";}
else {echo "<p>Ваша статья не добавлена.</p>";}
}
Спустя 4 минуты, 15 секунд (26.04.2011 - 18:29) liw написал(а):
Нет тут дата вставляется в базу, - и то ещё неизвестно что там в переменной $date (пардон вполне известно, - посмотрел код первого поста).
А где именно вывод данных из базы? И вообще в базе в столбце date - дата присутствует?
А где именно вывод данных из базы? И вообще в базе в столбце date - дата присутствует?
Спустя 2 минуты, 12 секунд (26.04.2011 - 18:32) Krevedko написал(а):
если дата берется из базы, то тут два варианта. Либо в базе криво. Либо когда берем из базы, то где-то теряется. Скорее первое...
Спустя 3 минуты, 56 секунд (26.04.2011 - 18:36) dobryaaasha написал(а):
в базе по умолчанию 0000-00-00
а что там поставить, чтобы в статью добавлялась правильная дата?
кстати, в форме добавления новой статьи у меня
<p class="style4">
<label>Введите дату добавления статьи<br />
<input name="date" type="text" id="date" value="2011-04-09" />
</label>
</p>
т.е. когда я как админ ввожу статью, у меня в дате уже стоит 2011-04-09
а после добавления появляется 0000-00-00
а что там поставить, чтобы в статью добавлялась правильная дата?
кстати, в форме добавления новой статьи у меня
<p class="style4">
<label>Введите дату добавления статьи<br />
<input name="date" type="text" id="date" value="2011-04-09" />
</label>
</p>
т.е. когда я как админ ввожу статью, у меня в дате уже стоит 2011-04-09
а после добавления появляется 0000-00-00
Спустя 2 минуты, 1 секунда (26.04.2011 - 18:38) walerus написал(а):
Цитата |
если дата берется из базы, то тут два варианта. Либо в базе криво. Либо когда берем из базы, то где-то теряется. Скорее первое... |
Как сказал выше Liw - "дата вставляется в базу", следовательно куда то пропадает данные переменной $data, либо обнуляется, либо не в том формате мб передаете дату?...
Я бы посмотрел все переменные которые передаются в базу, перед отправкой, стало бы все предельно ясно...
Ну вот, тут дата как оказалось, берется из переменной передаваемой формой, и тут же в коде перед отправкой в базу стоит - $date=time();, и наверно скорее всего в этом и заключается ошибка.
Спустя 3 минуты, 31 секунда (26.04.2011 - 18:41) walerus написал(а):
Как вариант, можно попробовать закоментить эту строку... $date=time();
Нет не прав, там эта переменная используется в имени файла, тогда нужно получить/создать переменную в которой будет храниться дата, которую ввел юзер и использовать именно ее а не другую.
Нет не прав, там эта переменная используется в имени файла, тогда нужно получить/создать переменную в которой будет храниться дата, которую ввел юзер и использовать именно ее а не другую.
Спустя 17 минут, 38 секунд (26.04.2011 - 18:59) dobryaaasha написал(а):
да, время берется из $date=time();
эта функция, я так понимаю, вычисляет время в настоящий момент.
значит ошибка в противоречии $date=time(); и value="2011-04-09"?
я извиняюсь, за тупыевопросы в очередной раз, но как посмотреть все переменные которые передаются в базу, перед отправкой?
эта функция, я так понимаю, вычисляет время в настоящий момент.
значит ошибка в противоречии $date=time(); и value="2011-04-09"?
я извиняюсь, за тупыевопросы в очередной раз, но как посмотреть все переменные которые передаются в базу, перед отправкой?
Спустя 55 секунд (26.04.2011 - 19:00) dobryaaasha написал(а):
пробую закомментировать $date=time();
Спустя 1 минута, 55 секунд (26.04.2011 - 19:02) dobryaaasha написал(а):
а блин нельзя же закомментировать..
Спустя 16 минут, 13 секунд (26.04.2011 - 19:18) dobryaaasha написал(а):
в общем, я закомментировала $date=time();
теперь дату сама устанавлмваю в форме.
конечно, имена картинок теперь наверно будут совпадать, потому что $date=time(); использовалось, чтоб имена у картинок всегда были разные(всегда = точному времени), но уж лучше так
теперь дату сама устанавлмваю в форме.
конечно, имена картинок теперь наверно будут совпадать, потому что $date=time(); использовалось, чтоб имена у картинок всегда были разные(всегда = точному времени), но уж лучше так
Спустя 7 минут, 8 секунд (26.04.2011 - 19:25) Krevedko написал(а):
Цитата |
конечно, имена картинок теперь наверно будут совпадать, потому что $date=time(); использовалось, чтоб имена у картинок всегда были разные(всегда = точному времени), но уж лучше так |
сомневаюсь, что так лучше. откуда теперь скрипт будет брать названия новых картинок ?
Спустя 24 минуты, 10 секунд (26.04.2011 - 19:49) dobryaaasha написал(а):
я исправила
сделала $a=time()
$pic = $path_to_90_directory.$a.".jpg";
все хорошо теперь работает
спасибо всем!
сделала $a=time()
$pic = $path_to_90_directory.$a.".jpg";
все хорошо теперь работает
спасибо всем!