download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

система за новини с вмъкване на картинки в тях

<1 2 >

Автор
Съобщение
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-ите.

редактиран от phrozencrew на 08.08.11 23:21
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>';
  }
}

Нещо елементарно от сорта.

ПС: Оправих едни наклонени черти, че все забравям при постване на код да ескейпвам.

редактиран от phrozencrew на 11.08.11 15:06
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.txt
index3.php.txt
Основните грешки бяха в html-кода, и при записването на новината трябваше да поставиш кода за добавяне на картинката там, където ти е и проверката дали има ъплуднат файл.
Кога все още изглежда не особено добре, но дерзай и не се отказвай да разбираш!
nik2009
Вто, 16.08.11, 20:29

RE: система за новини с вмъкване на картинки в тях

phrozencrew много ти благодаря за помощта, това беше най-важното за мен. Сега всичко работи идеално. Полека се надявам да понауча макар и донякъде PHP. Благодаря ти още веднъж.

<1 2 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.