Witam, od razu mówię, że cały system NEWS nie jest mój, autorem jest drax. Jednak temat na innym forum nie jest wspierany od kilku lat, ja postanowiłem zobaczyć jak to wszystko działa, nanoszę poprawki i estetykę, jednak nie wszystko działa jak powinno. Od razu mogę także powiedzieć, że moja wiedza na poziomie PHP jest podstawowa. Serwer postawiony na XAMPP, MySQL, Apache etc.
Jednak co do tematu. Problem jest tak, że wyskakują błędy takie jak:
Kod
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\news\admin.php on line 110
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\news\admin.php on line 112
Ogólnie baza danych jest postawiona jako kamik_news w phpMyAdmin, jednak ten cały Panel Administracyjny nie do końca działa - niby news dodaje, ale już w bazie go nie dodaje.
Tak jak mówiłem jest tu coś, jednak dużo do poprawki i razem z Wami chciałbym to poprawić tak aby to działało, tak aby ktoś z takiego systemu mógł korzystać, tylko trzeba wiele poprawek. Niektóre już naniosłem, ponieważ PHP poszło do przodu i niektóre zmienne jak mysql na mysqli trzeba było pozmieniać - jednak to amatorka to co robię
Liczę na Waszą pomoc
(z tego względu że są ograniczenia co do liczby znaków w poście będę musiał troszke podublować odpowiedzi tak aby to wszystko było zgrane z tematem)Plik config.php
<?php
function connect() {
$mysqli_server = "localhost";
$mysqli_admin = "root";
$mysqli_pass = "haslo";
$mysqli_db = "kamik_news";
@mysqli_connect($mysqli_server, $mysqli_admin, $mysqli_pass)
or
die('Blad polaczenia.');
@mysqli_select_db($mysqli_db)
or
die('Bledna baza danych.');}
?>
Plik functions.php
<?php
function showNews()
{
$sql1 = mysqli_query('SELECT * FROM news ORDER BY id DESC');
while($news = mysqli_fetch_assoc($sql1))
{
$id = $news['id'];
$sql2 = mysqli_query('SELECT id FROM comments WHERE post_id=$id');
$nr = mysqli_num_rows($sql2);
'<h2>'.$news['tytul'].'</h2>
<h3>'.$news['data'].'</h3>
<p> '.$news['tresc'].'</p>
<p align=\'right\'><a href=\'news.php?id='.$news['id'].'
\'>Komentarze ['.$nr.']</a>';
}
}
?>
Plik form.php
<?php
#wygląd formularza
#pole z nickiem musi mieć name="name"
#pole z tekstem musi mieć name="message"
#akcja do której formularz prowadzi musi być 'action="'.$adres.'&kom=dodaj"'
'<h4>Skomentuj</h4>
<form action="'.$adres.'&kom=dodaj" method="post">
<label for="name">Nick (wymagane)</label>
<input id="name" name="name" value="Nick" type="text" size="32" />
<label for="message">Wiadomość</label>
<textarea id="message" name="message" rows="10" cols="20" size="255"></textarea>
<input class="button" type="submit" value="Dodaj" />
</form>'
;
?>
Plik comment.php
<?php
# Plik reprezentuje ogólny wygląd komentarzy. To co jest między {} po while oznacza wygląd jednego komentarza.
#zmienne:
# $nr - Liczba komentarzy
# $adres - adres strony do kotwicy
# $kome['id'] - id komentarza
# $kome['data'] - data dodania komentarza
# $kome['tresc'] - treść komentarza
# $kome['ip'] - IP osoby która komentuje
echo '<h4>'.$nr.' wpisów</h4>'; while($kome = mysqli_fetch_assoc($sql2)) {
'<fieldset><legend><a name="comment'.$kome['id'].'" href="'.$adres.'#comment'.$kome['id'].'">'.$kome['autor'].'</a> Pisze:</legend><br/><small>'.$kome['data'].'</small><p>'.$kome['tresc'].'</p></fieldset>';
}
?>
Plik news.php
<?php
require ('config.php');
$adres = $_SERVER['REQUEST_URI'];
$a = $_GET['kom'];
$id = $_GET['id'];
{
header('Location: index.php'); # Przekierowanie, kiedy zmienna $_GET['id'] jest pusta }
$sql1 = mysqli_query("SELECT * FROM news WHERE id=$id LIMIT 1");
$sql2 = mysqli_query("SELECT * FROM comments WHERE post_id=$id");
$nr = mysqli_num_rows($sql2);
$news = mysqli_fetch_assoc($sql1);
echo'<h2>'.$news['tytul'].'</h2> <h3>'.$news['data'].'</h3>
<p> '.$news['tresc'].'</p>
<p align="right"><a href="news.php?id='.$news['id'].'">Komentarze ['.$nr.']</a>';
if(isset($a) && $a == 'dodaj') {
$data = date("F j, Y , g:i a"); $ip=$_SERVER['REMOTE_ADDR'];
if(empty($_POST['name']) && ($_POST['message'])) {
echo'Wpisz nick i wiadomość'; }
elseif(empty($_POST['name'])) {
}
elseif(empty($_POST['message'])) {
}
if(!empty($_POST['name']) && ($_POST['message'])) {
$sql = mysqli_query("INSERT INTO comments VALUES (0,'$id','$nazwa','$data','$msg','$ip')");
}
if($sql)
{
header('Location: news.php?id='.$id.''); }
else echo mysqli_error
(); }
if($nr == 0)
{
echo 'Brak komentarzy.<br />'; }
else
{
include 'templates/comment.php';
}
include 'templates/form.php';
?>
Plik admin.php
<?php
///////////////////////////////////////////////////////////////////////////////////////
$user = 'test';
$haslo = 'test';
$cookie = hash(sha512, $haslo);
///////////////////////////////////////////////////////////////////////////////////////
$a = $_GET['id'];
$b = $_GET['nr'];
$c = $_GET['co'];
$d = $_GET['n'];
///////////////////////////////////////////////////////////////////////////////////////
if($_GET['action']=="logout") {
} elseif($_GET['action']=="login") {
if ($_POST['username']== $user&&$_POST['password']==$haslo) $_SESSION['login']=$cookie;
if (isset($_POST['zapamietaj'])) setcookie("login", $cookie, time()+60
*60
*24
*31
, NULL, NULL, NULL, TRUE); header('Location: admin.php'); exit; }
///////////////////////////////////////////////////////////////////////////////////////
if ($_SESSION['login'] != $cookie AND $_COOKIE['login'] != $cookie) {
<head>
<meta charset="UTF-8">
<title>System newsów</title>
</head>
<body class="log">
<fieldset class="login"><form method="POST" action="?action=login">
<label for="username">Nazwa użytkownika</label><input type="text" id="username" name="username" size="20" />
<label for="password">Hasło</label><input id="password" name="password" type="password" size="20" />
<label for="zapamietaj">Zapamiętaj logowanie</label><input id="zapamietaj" name="zapamietaj" type="checkbox"/>
<input type="submit" value="Loguj">
</form>
</fieldset></body></html>');
}
///////////////////////////////////////////////////////////////////////////////////////
require ('config.php');
echo'<div style="width:800px;margin:20px auto;"><div style="float:left;"><a href="admin.php?id=dodaj">Dodaj Newsa</a><br><a href="admin.php?id=pokaz">Zarządzaj Newsami</a><br><a href="admin.php?action=logout">Wyloguj</a></div><div style="float:right;">';
///////////////////////////////////////////////////////////////////////////////////
if (isset($a) && $a == 'add') {
$tytul = $_POST['tytul'];
$tresc = $_POST['tresc'];
$data = date ("F j, Y , g:i a");
mysqli_query("INSERT INTO news VALUES(0,'$tytul','$tresc','$data')");
echo '<fieldset><legend>Udana Akcja</legend>Pomyślnie dodałem newsa o tytule: <b>'.$tytul.'</b> i o treści: <b>'.$tresc.'</b></fieldset>';
$sql = mysqli_query("DELETE FROM news WHERE id='$b'");
$sql = mysqli_query("DELETE FROM comments WHERE post_id='$b'");
if($sql)echo '<fieldset><legend>Udana Akcja</legend>Pomyślnie usunąłem newsa numer '.$b.' oraz komentarze do niego!</fieldset>'; else echo '<fieldset><legend>Akcja Nie udana</legend>Nie udało się usunąć newsa<br> '.mysql_error().'</fieldset>';
}
///////////////////////////////////////////////////////////////////////////////////////
if (isset($a) && $a == 'dodaj') {
echo '<fieldset><legend>Dodaj Newsa</legend>'; echo '<form method="POST" action="admin.php?id=add"> <label for="tytul">Tytuł:</label><input id="tytul" type="text" name="tytul" size="64"><br>
<label for="tresc">Tresć:</label><textarea id="tresc" rows="5" name="tresc" cols="42"></textarea><br>
<input type="submit" value="Dodaj"></form></fieldset>';
}
///////////////////////////////////////////////////////////////////////////////////////
{
$link=mysqli_query("SELECT * FROM news WHERE id='$b'");
$wiersz=mysqli_fetch_array($link, MYSQL_ASSOC);
echo '<fieldset><legend>Edytuj Newsa</legend><br>'; echo '<form method="POST" action="admin.php?id=wyedytuj&nr='.$wiersz['id'].'"> <label for="tytul">Tytuł:</label><input id="tytul" type="text" name="tytul" size="64" value="'.$wiersz['tytul'].'"><br>
<label for="tresc">Tresć:</label><textarea id="tresc" rows="5" name="tresc" cols="42">'.$wiersz['tresc'].'</textarea><br>
<input type="submit" value="Edytuj">
</form></fieldset>';
}
///////////////////////////////////////////////////////////////////////////////////////
if(isset($a) && $a=='pokaz') {
echo '<fieldset><legend>Lista Newsów:</legend><br>'; $link=mysqli_query('SELECT * FROM news ORDER BY id desc');
while($wiersz=mysqli_fetch_array($link, MYSQL_ASSOC)) {
$numer = $wiersz['id'];
$sql = mysqli_query("SELECT id FROM comments WHERE post_id='$numer'");
echo $wiersz['tytul'].' - '.$wiersz['data'].'| <a href="admin.php?id=edytuj&nr='.$wiersz['id'].'">Edytuj</a> | <a href="admin.php?id=usun&nr='.$wiersz['id'].'">Usuń</a> | <a href="admin.php?id=komentarze&nr='.$numer.'">Zarządzaj Komentarzami['.$nr.']</a><br>'; }
} elseif(isset($a) && $a=='komentarze' && isset($b)) {
$sql = mysqli_query("SElECT * FROM comments WHERE post_id='$b'");
while($wiersz = mysqli_fetch_assoc($sql)) {
echo'<fieldset><legend>'.$wiersz['id'].'. Autor: '.$wiersz['autor'].' Data:'.$wiersz['data'].'</legend><p><strong>IP:</strong> '.$wiersz['ip'].'</p><p>'.$wiersz['tresc'].'</p><p><a href="admin.php?id=komentarze&co=usun&n='.$wiersz['id'].'">Usuń Komentarz </a></p></fieldset>'; }
} elseif(isset($a) && $a=='komentarze' && isset($c) && $c=='usun' && isset($d)) {
$sql = mysqli_query("DELETE FROM comments WHERE id='$d'");
if($sql)
echo '<fieldset><legend>Udana Akcja</legend>Pomyślnie usunąłem komentarz!</fieldset>'; else
echo'<fieldset><legend>Akcja Nie udana</legend>'.mysql_error().'</fieldset>';
} elseif(isset($a) && $a=='wyedytuj' && isset($b)) {
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$sql = mysqli_query("UPDATE news SET tytul='$tytul' tresc='$tresc' WHERE id='$b'");
if($sql)
echo '<fieldset><legend>Udana Akcja</legend>Pomyślnie wyedytowałem newsa! <br> Jego nowy tytuł to: <b>'.$tytul.'</b>, a treść: <b>'.$tresc.'</b></fieldset>'; else echo '<fieldset><legend>Akcja Nie udana</legend>Nie udało się edytować newsa<br> '.mysql_error().'</fieldset>'; }
?>
Czekam na waszą pomoc - łatki, poprawki, rozwiązywanie problemów, tak aby to pięknie funkcjonowało

To będzie też dobry temat dla tych co szukają takiego systemu, odświeżonego z tego roku