система за новини с вмъкване на картинки в тях
Автор |
|
svilen73Пон, 08.08.11, 21:06 |
Точно това е . Само името на базата данни да съвпада с направената от теб база. редактиран от svilen73 на 08.08.11 21:07 | | nik2009Пон, 08.08.11, 23:08 | RE: система за новини с вмъкване на картинки в тях
” Точно това е . Само името на базата данни да съвпада с направената от теб база. „
Да, получи се. До тук добре, но трябва да се показват новините "облечени " в моите страници. Връзките със CSS-а ли трябва да оправям? Ще правя опити, но искам да знам на прав път ли съм. | | svilen73Пон, 08.08.11, 23:14 |
Ето работеща системата незнам какво точно искаш да кажеш с това да са облечени в твоите страници. редактиран от svilen73 на 09.08.11 00:08 | | phrozencrewПон, 08.08.11, 23:15 | RE: RE: система за новини с вмъкване на картинки в тях
” Името и паролата в такъв случай във самата стъпка 3 мога да си го измисля на момента, така го разбирам. „
НЕ! Не съм работил с този CMS, но съм работил с поне една каруца други CMS-и и мога да ти кажа, че обикновено трябва да имаш създадени предварително потребител (user) на базата данни, както и име на база-данни. Много често безплатните или евтините хостинги ти създават автоматично една основна база данни и други бази данни са префикси. Например ако потребителят ти е bachati, тогава ще можеш да създаваш нови база данни с тоя префикс, в случая за пример bachati_fusion. Ако обаче си работиш само на твойто PC, тогава можеш да си посочиш предварително създадена база данни с произволно име. ПС: Не се отказвай да си правиш нещата сам и да изучаваш PHP. Това е един наистина приятен и лек за писане език с богати възможности, така, че е много вероятно след няколко месеца с добри тренировки да си напишеш сам много по-печена новинарска система. Опита ще ти липсва, но ако правиш задължителните логове и архивиране няма да се притесняваш от кракери. И много скроро ще разбереш как да се бориш срещу атаките, защото веднага ще те набарат, след популяризирането на сайта. Да разчиташ на себе си е много по-добре от колко да работиш с непознат и труден за четене код на CMS-ите. | | nik2009Вто, 09.08.11, 23:30 | RE: RE: RE: система за новини с вмъкване на картинки в тях
Така е, да. Опитвах много и накрая си създадох парола в самата база данни и чак тогава ми тръгнаха стъпките и влезнах в системата. Ще си уча PHP по малко когато имам време, четох и книги, но в тях са ми дадени лесни начални примери, които са ми ясни, а пък аз все се захващам за трудни работи :). Тази система ще я ползвам, и ако има нещо ще питам. За обличане в моите страници имах предвид да изглеждат новините както изглежда сайта ми /в един дизайн/, примерно моите страници на сайта не са на цялата ширина на страницата, а отляво и дясно има полета, искам новините да са част от моите страници т.е. със същия дизайн. Но всичко става с опити. Между другото не съм оставил и предишния код и го променям все още. направих за сега да ми се качват снимките в папка и става, но проблема е, че всички качени снимки в папката, сега ми се показват на всяка от новините. Ще го мъдря по малко. Ако има нещо ще питам. редактиран от nik2009 на 09.08.11 23:32 | | phrozencrewСря, 10.08.11, 00:27 |
Ще кача тук един мой скрипт за ъплоад на картинки, в който съм събирал от тук от там и съм редактирал. Ползвам го все още понякога. Качвам го само да се подсетя по-късно какво съм имал в предвид. Защото темата е интересна и е добре да се развие. upload_picture.rarЗначи за да направиш псевдо-релативна база данни трябва да използваш уникален ключ, който да свърже новината с галерията. Това е елементарно. Просто създаваш нов текстови файл за галерията, като например първото поле ще ти е ID на новината с която е свързана всяка картинка. И после, за да изкараш картинките само за определена новина ще проверяваш за съвпадение на този ключ. | | nik2009Сря, 10.08.11, 22:16 | RE: система за новини с вмъкване на картинки в тях
” Ще кача тук един мой скрипт за ъплоад на картинки, в който съм събирал от тук от там и съм редактирал. Ползвам го все още понякога. Качвам го само да се подсетя по-късно какво съм имал в предвид. Защото темата е интересна и е добре да се развие. upload_picture.rarЗначи за да направиш псевдо-релативна база данни трябва да използваш уникален ключ, който да свърже новината с галерията. Това е елементарно. Просто създаваш нов текстови файл за галерията, като например първото поле ще ти е ID на новината с която е свързана всяка картинка. И после, за да изкараш картинките само за определена новина ще проверяваш за съвпадение на този ключ. „
Може ли ако не представлява трудност да ми кажете нещо малко за вмъкването на този ID към новината. Във формата аз вмъквам ето това - <tr style="display:none;"><td>Номер на новина</td><td><input type="number" name="nomer" type="autonumber" size="35"></td></tr></style> но не знам дали точно така се пише. А във кода за новия текстов файл пиша ето това $n_id="$nomer"; for ( $i = 0 ; $i < count ( $n_id ) ; $i ++ ) $broi = $n_id [ $i ] ; $img="image.txt"; $idnews=fopen($img, 'a') or die("Не мога да отворя файла"); $zapis = "$broi|@|$txtName"; fwrite($idnews,$zapis); fclose($idnews); и не ми се записва никакъв номер на новината в текстовия файл, какви ли не опити правих и имам нужда от помощ. Името на новината се записва, но номера не ми се записва. редактиран от nik2009 на 10.08.11 22:19 | | phrozencrewЧет, 11.08.11, 09:58 |
Мне. Нямах това в предвид. Ще трябва да преработиш скрипта, така че да записваш и ID за всяка новина. В момента кода ти за записване в базата данни (текстовия файл) е този: $data = "$data|@|$txtName|@|$txtZagl|@|$txtInfo|@|$ip\n";
fwrite($handle, $data); |
За да създадеш уникално ID за всяка новина, можеш да използваш простичка рандъм функция. Примерно тази: function id(){$ID=md5(rand() * time()); return $ID;}
$id=id(); |
След това трябва да промениш реда за запис на новината: $data = "$id|@|$data|@|$txtName|@|$txtZagl|@|$txtInfo|@|$ip\n"; |
Естествено ще трябва да промениш и редовете, които четат от базата данни: list ($id, $data, $txtName, $txtZagl, $txtInfo, $ip) = preg_split ("/\|@\|/", $novini); Паралелно с това вече ще можеш да си създадеш и базата данни за картинките, която ще съдържа следните полета: id-на_новината, име_на_картинката, име_на_файла Ако планираш да разширяваш системата и да добавяш допълнителна информация за картинките, ще трябва да се добави и уникален ключ и за всяка картинка. Но мисля, че за учебна цел, това към момента няма да е нужно. Връзката между новина и картинките свързани с нея я правиш така примерно: // Зареждаш като масив файла с базата данни за картинките
$gallery = file('gallery.txt');
foreach($gallery as $l){
// тук съвпадението което ще търсиш е id-то на конкретната новина
$match = '/'.$id.'/';
if (preg_match($match,$l)){
list($gal_id, $pic_name, $pic_file) = preg_split("/\|@\|/", $l);
echo '<a href="gallery/'.$pic_file.'"><img src="gallery/thumbs/'.$pic_file.'"></a>';
}
} |
Нещо елементарно от сорта. ПС: Оправих едни наклонени черти, че все забравям при постване на код да ескейпвам. | | nik2009Нед, 14.08.11, 09:35 | RE: система за новини с вмъкване на картинки в тях
Много ти благодаря phrozencrew, много ми помогна, сега работи. Смених имената на някои променливи само и всичко е наред. И понеже е вече готова системата искам да попитам /знам, че имате много работа/, но се мъчих с един IF за да проверявам ако няма картинка от потребителя да не се показва в новината символа на картинка. просто да не се показва нищо в случай че няма картинка. Може ли да ми подскажете как да напиша тази проверка. Правих опити но за сега не се получава. Слагам един скрипт - нещо от рода на това if ( $pic_file =="") { $message = "Няма снимка"; return $message; } но не ми работи, така ли горе-долу трябва да изглежда? редактиран от nik2009 на 14.08.11 10:45 редактиран от nik2009 на 14.08.11 12:18 | | nik2009Вто, 16.08.11, 14:46 | RE: RE: система за новини с вмъкване на картинки в тях
Тук качвам картинка да видите какво излиза когато не се качи снимка във новината -
В първата новина има снимка и добре изглежда, а отодлу в другите две новини няма снимка и изглежда грозно, даже ако кликна на символа за картинка ми излиза директорията, което не е хубаво /втората картинка/-
Помогнете в този код какво да се напише , та когато няма снимка да не излиза там нищо на това място. /защото може понякога да няма снимка в новина/. Много опити направих с IF и Else но не успях, там на мястото на картинката този символ винаги си се показва. Помагайте, че само това ми остана да се оправи. редактиран от nik2009 на 16.08.11 14:58 | | phrozencrewВто, 16.08.11, 17:05 |
Много малка част от кода си дал, но мисля, че с едно continue на правилното място, всичко ще е Ок. Примерно: if($pic_file =="") continue; Това ще продължи със следващия елемент от цикъл, но пак ти казвам, че не знам какъв точно ти е кода и само налучквам. Ако беше използвал моето предложение от по-горе с проверка на картинките по ID (if (preg_match($match,$l))), тогава, ако няма картинка с това ID, няма да се показва нищо. | | nik2009Вто, 16.08.11, 17:53 | RE: система за новини с вмъкване на картинки в тях
Използвам твоя код, който ми даде по-горе. Извежда ми това , което съм снимал. Сега пак ще опитам със това , което ми казваш да видя дали ще стане нещо. А твоя код който проверява за ID на новината е този - // Зареждаш като масив файла с базата данни за картинките $gallery = file('gallery.txt'); foreach($gallery as $l){ // тук съвпадението което ще търсиш е id-то на конкретната новина $match = '/'.$id.'/'; if (preg_match($match,$l)){ list($gal_id, $pic_name, $pic_file) = preg_split("/\|@\|/", $l); echo '<a href="gallery/'.$pic_file.'"><img src="gallery/thumbs/'.$pic_file.'"></a>'; } } Този код ми е в страницата, в която ще извеждам новините и картинките. form1.php.txt - това е страницата с главния код и формата. А кода за разчитане на новините и извеждането им е този - <?php
include "func.php";
$lines = file('news.txt');
$lines = array_reverse($lines);
$item_per_page = 9;
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
$reji_ot_elem = ($item_per_page*$page)-$item_per_page;
$sm = array_slice($lines, $reji_ot_elem, $item_per_page);
foreach ($sm as $novini){
list ($id, $data, $txtName, $txtZagl, $txtInfo, $ip) = preg_split ("/|@|/", $novini);
$txtName = wordlength($txtName, 20);
$txtZagl = wordlength($txtZagl, 40);
$pic_file = wordlength($pic_file, 40);
$txtInfo = wordlength($txtInfo, 5000);
echo '<div class="novina"><h3>'.$txtZagl.'</h3>'."n";
echo '<div class="user">Пуснато от: <b>'.$txtName.'</b> на <b>'.$data.'</b></div>'."n";
// Зареждаш като масив файла с базата данни за картинките
$gallery = file('gallery.txt');
foreach($gallery as $l){
// тук съвпадението което ще търсиш е id-то на конкретната новина
$match = '/'.$id.'/';
if (preg_match($match,$l)){
list($id, $pic_name, $file_name ) = preg_split("/|@|/", $l);
echo '<a href="upload/'.$file_name.'"><img src="upload/'.$file_name.'"widht="150" height="50"></a>';
}
}
echo '<p>'.$txtInfo.'</p>'.'<hr>'."n".
'</div><!-- Затваряме class="novina" -->';
}
// --------- СТРАНИЦИРАНЕ ----------
echo "<br /><br />";
for($x=1; $x<=ceil(count($lines)/$item_per_page);$x++){
if ($x==$page) {
echo "$x ";
continue;
}
echo ("<a href=\"index3.php?page=$x\">$x</a> ");
}
// --------- ДО ТУК СТРАНИЦИРАНЕ ----------
?> |
редактиран от nik2009 на 16.08.11 17:54 редактиран от nik2009 на 16.08.11 17:56 редактиран от nik2009 на 16.08.11 18:21 редактиран от nik2009 на 16.08.11 18:31 | | phrozencrewВто, 16.08.11, 19:39 |
Имаше грешки, които много лекинко пипнах. Ето ти 2-та файла: form1.php.txtindex3.php.txtОсновните грешки бяха в html-кода, и при записването на новината трябваше да поставиш кода за добавяне на картинката там, където ти е и проверката дали има ъплуднат файл. Кога все още изглежда не особено добре, но дерзай и не се отказвай да разбираш! | | nik2009Вто, 16.08.11, 20:29 | RE: система за новини с вмъкване на картинки в тях
phrozencrew много ти благодаря за помощта, това беше най-важното за мен. Сега всичко работи идеално. Полека се надявам да понауча макар и донякъде PHP. Благодаря ти още веднъж. | | Коментар |