- Проблем със система за новини
WT форуми -> PHP MySQL ASP.NET -> Проблем със система за новини
Създайте нова тема Напишете отговор 
Автор Съобщение
Vladislaw
Нов
Нов

Регистриран на: 10/11/2011 6:01 pm

Support: 6
Bonus: 12
Мнения: 114
Мнение 28/08/2018 7:29 pm     Проблем със система за новини Отговорете с цитат


Здравейте, имам проблем със следната система:
http://web-tourist.net/login/login/view.php?st=2277

Всичко работи, но когато тръгна да редактирам новина и рефрешва страницата (без да я редактира). Правя го така:

<?php
//настройки за база данни
$dbhost = "db host";
$dbuser = "db user";
$dbpass = "db pass";
$dbname = "db name";
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname, $conn)or die(mysql_error());

if ($_POST['telefon'] && $_POST['cena'])
mysql_query("REPLACE INTO mobiles VALUES(".intval ($_GET['tid']).",'".$_POST['model']."','".$_POST['cena']."')");

$select = mysql_query("SELECT * FROM mobiles WHERE id=".intval($_GET['tid']))or die(mysql_error());
if (mysql_num_rows($select)) $red = mysql_fetch_array($select);

mysql_close();
?>
<form action="<?php echo($_SERVER['PHP_SELF']."?tid=".$_GET['tid']);?>" method="post">
Име на новина: <input type="text" name="model" value="<?php echo($red['model']);?>" />
<br />
Цялата новина: <input type="text" name="cena" value="<?php echo($red['cena']);?>" />
<br />
<input type="submit" name="submit" value="Редактирай" />
</form>


А, когато си е news, name си работи, но когато го направя на model, cena не работи. Има ги таблиците в базата.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 28/08/2018 8:01 pm      Отговорете с цитат


Моля те, не ползвай тази "система" Sad

Може да пробваш така. Процедурно е и във форума ще помагаме.

Структурата е:
ROOT/
   - inc/
      - wp_like_functions.php
   - templates/
      - inc/
         - news.php
      - form.php
   - connect.php
   - create_or_udpate.php
   - index.php
   - news.php


connect.php:
PHP code:
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'news');

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}


create_or_update.php
PHP code:

<?php
include 'connect.php';
include 'inc/wp_like_functions.php';
if (isset($_POST['submit'])) {
$name = validate_input($_POST['name']);
$news = validate_input($_POST['news']);
if (isset($_GET['id'])) {
//Update existing news
$stmt = mysqli_prepare($link, "UPDATE news SET name = ?, news = ? WHERE id = ?");
mysqli_stmt_bind_param($stmt, 'ssi', $name, $news, $_GET['id']);
mysqli_stmt_execute($stmt);
header('Location: news.php?id=' . $_GET['id']);
}
//Create new news
$stmt = mysqli_prepare($link, "INSERT INTO news (name, news) VALUES(?, ?)");
mysqli_stmt_bind_param($stmt, 'ss', $name, $news);
mysqli_stmt_execute($stmt);

header('Location: news.php?id=' . mysqli_insert_id($link));

} else {
$url = 'create_or_update.php';
$news = null;
if (isset($_GET['id'])) {
$url = 'create_or_update.php?id=' . $_GET['id'];
//@TODO: Secure GET values & check whether the resources exists in the database?
$news = get_post_by_id($link, $_GET['id']);
}
include('templates/form.php');
}


index.php
PHP code:

<?php
include('connect.php');

$query = mysqli_query($link, "SELECT * FROM news ORDER BY id DESC");


$showFullText = false;
while ($news = mysqli_fetch_object($query)) {
include('templates/inc/news.php');
}


news.php
PHP code:

<?php
include('connect.php');
include('inc/wp_like_functions.php');

if (!isset($_GET['id'])) {
header('Location: index.php');
}
$news = get_post_by_id($link, $_GET['id']);
$showFullText = true;
include('templates/inc/news.php');


templates/inc/news.php
HTML code:

<article>
<h2><?= $news->name; ?></h2>
<p>
<?= $showFullText ? nl2br($news->news) : mb_substr($news->news, 0, 100, 'utf-8') . '...'; ?>
</p>
</article>


templates/form.php
HTML code:

<form action="<?= $url; ?>" method="post">
<div>
<label for="name">Name:</label>
<hr>
<input id="name" type="text" name="name" value="<?= !is_null($news) ? $news->name : ''; ?>">
</div>
<div>
<label for="news">News:</label>
<hr>
<textarea name="news" id="news" cols="30" rows="10"><?= !is_null($news) ? $news->news : ''; ?></textarea>
</div>
<button type="submit" name="submit"><?= !is_null($news) ? 'Update' : 'Create'; ?></button>
</form>



inc/wp_like_functions.php
PHP code:

<?php

if (!function_exists('get_post_by_id')) {
function get_post_by_id($link, $id)
{
$stmt = mysqli_prepare($link, "SELECT * FROM news WHERE id = ?");
mysqli_stmt_bind_param($stmt, 'i', $id);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
return mysqli_fetch_object($result);
}
}

if (!function_exists('validate_input')) {
function validate_input($value)
{
//@TODO: Validate user input.
return $value;
}
}


DB схема:
CREATE TABLE `news` (
  `id` INT(8) NOT NULL auto_increment,
  `name` VARCHAR(255) NOT NULL,
  `news` TEXT NOT NULL,
  PRIMARY KEY(`id`)
)


Тук поне news полето приема повече от 255 символа Wink


Сваляне на архив с файловете по-горе

Може да си напишеш за ДБ credential-ите и да ръннеш всичко като напишеш:

php -S localhost:8000


в директорията, където е index.php

Последната промяна е направена от Fakeheal на 28/08/2018 8:49 pm; мнението е било променяно общо 3 пъти
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Vladislaw
Нов
Нов

Регистриран на: 10/11/2011 6:01 pm

Support: 6
Bonus: 12
Мнения: 114
Мнение 28/08/2018 8:45 pm      Отговорете с цитат


Fakeheal написа:
Моля те, не ползвай тази "система" Sad


Мен ми трябва за 1 страница, дето само аз и колегата ще имаме достъп до нея.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 140
Мнение 29/08/2018 6:49 am      Отговорете с цитат


Vladislaw написа:
Fakeheal написа:
Моля те, не ползвай тази "система" Sad


Мен ми трябва за 1 страница, дето само аз и колегата ще имаме достъп до нея.


Здравейте, @Vladislaw,

Не знам дали Ви е дошло, като мисъл, че една наистина работеща и професионална платформа за публикации (във вашия случай - новини), изисква доста време, труд и много, много важни тънкости, без които не може да е успешен един съвременен уебсайт...


Дори да става въпрос за 'custom' проект или пък не - съвет от личен опит..

След доста лутане осъзнах, че функциите, от които се нуждая спешно, и тези, които може да ми потрябват в бъдеще, биха отнели доста време и работа при създаването на 'custom' решение.. И РЕАЛНО Е ТАКА!
Тук допълвам и това, че аз няма да достъпвам и използвам мястото за публикуване, но трябваше да подсигуря на моите колеги, работеща, професионална и съвременна среда, в която да публикуват своите уникални текстове.


Не знам, за какъв мащаб на проекта става въпрос, но препоръчвам използването на CMS. Аз избрах WordPress, защото имам опит с него..
Допълвам, че може да използвате от системата само това, от което имате нужда - в случая използвам само публикациите, към 'custom' проект.

Потърсете в документациите на WP. Там има много полезна информация и бързи решения, с които може да използвате точно това, от което имате нужда..

Ако вземем за пример лице - редактор, който е професионалист, то той винаги ще изисква нормална работна среда, а за Вас ще са важни тънкостите, за успешното развитие на бизнеса.
Това непременно ще Ви улесни много!

Успех! Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Vladislaw
Нов
Нов

Регистриран на: 10/11/2011 6:01 pm

Support: 6
Bonus: 12
Мнения: 114
Мнение 29/08/2018 6:00 pm      Отговорете с цитат


Благодаря за коментарите. Справих се!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети