![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Witam, mam problem ze skryptem dodawania/usuwania/edytowania newsów na stronie
![]() A więc tak, skrypt wyswietlam w panelu z folderu /pages. Gdy kliknę dodaj wyswietla sie białe tło. Dodam jeszcze że głowna strona dodawania newsów to : localhost/panel/index.php?s=admin Kod: Kod <?
session_start(); if(isset($_POST['pass'])) //Haslo przechowujemy w sesjach { if($_POST['pass']=='haselko') { $_SESSION['admin']='ok'; } } if((!isset($_SESSION['admin']) || $_SESSION['admin']!='ok') && $_GET['admin']!='wyloguj') { echo '<form method="POST" action="admin.php?main=admin"> <p align="center"> Niestety nie jestes zalogowany.<br> Proszę podac haslo:<br> <input type="password" name="pass" size="20"><br> <input type="submit" value="OK"></p> </form>'; } if(isset($_GET['admin']) && $_GET['admin']=='wyloguj') { $_SESSION['admin']=''; echo 'Nastapilo wylogowanie!<br> Przejdz do <a href="/index.php">strony glownej</a>...'; } if($_SESSION['admin']=='ok') { $uchwyt=mysql_connect('xxxx','root','xxxxx') or die('Nieudane polaczenie z baza danych...'); mysql_select_db('news') or die('Nie udalo sie wybrac bazy danych...'); echo '<b>Newsy:</b><br>'; $link=mysql_query('SELECT * FROM news ORDER BY id desc'); while($wiersz=mysql_fetch_array($link)) { echo '<b>'.$wiersz['tytul'].'</b>'; echo ' - '; echo $wiersz['data']; echo ' - '; echo '<a href="?s=admin.php?newsy=edytuj&id='.$wiersz['id'].'">Edytuj</a>'; echo ' - '; echo '<a href="?s=admin.php?newsy=usun&id='.$wiersz['id'].'">Usun</a>'; echo "<br>\n"; } echo '<b>Dodaj newsa:</b><br>'; echo '<form method="POST" action="?s=admin.php?newsy=dopisz"> Tytul:<br> <input type="text" name="tytul" size="64"><br> Tresc:<br> <textarea rows="5" name="tresc" cols="42"></textarea><br> <input type="submit" value="DODAJ"> </form>'; if(isset($_GET['newsy']) && $_GET['newsy']=='edytuj' && isset($_GET['id'])) { $id=$_GET['id']; $link=mysql_query("SELECT * FROM news WHERE id='$id'"); $wiersz=mysql_fetch_array($link); echo '<b>Edytuj newsa:</b><br>'; echo '<form method="POST" action="?s=admin.php?newsy=wyedytuj&id='.$wiersz['id'].'"> Tytul:<br> <input type="text" name="tytul" size="64" value="'.$wiersz['tytul'].'"><br> Tresc:<br> <textarea rows="5" name="tresc" cols="42">'.$wiersz['tresc'].'</textarea><br> <input type="submit" value="EDYTUJ"> </form>'; } elseif(isset($_GET['newsy']) && $_GET['newsy']=='dopisz') { $tytul=$_POST['tytul']; $tresc=$_POST['tresc']; $data=date('d.m.Y, H:i'); mysql_query("INSERT INTO news VALUES(0,'$tytul','$tresc','$data')"); echo 'Pomyslnie dodalem newsa o tytule: <b>'.$tytul.'</b> i o treści: <b>'.$tresc.'</b> z datą'.$data.'.'; } elseif(isset($_GET['newsy']) && $_GET['newsy']=='wyedytuj' && isset($_GET['id'])) { $tytul=$_POST['tytul']; $tresc=$_POST['tresc']; $id=$_GET['id']; mysql_query("UPDATE news SET tytul='$tytul' tersc='$tresc' WHERE id='$id'"); echo 'Pomyslnie wyedytowalem newsa! <br> Jego nowy tytul to: <b>'.$tytul.'</b>, a tresc: <b>'.$tresc.'</b>'; } elseif(isset($_GET['newsy']) && $_GET['newsy']=='usun' && isset($_GET['id'])) { $id=$_GET['id']; mysql_query("DELETE FROM news WHERE id='$id'"); echo 'Pomyslnie usunalem newsa numer '.$id.'!'; } ?> <? } ?> Ten post edytował Salur 29.12.2014, 12:58:56 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Biała strona mówi jasno, włącz raportowanie błędów. Temat: Jak poprawnie zadac pytanie
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
1. włącz wyświetlanie błędów.
na początku pliku index.php daj: 2. Ten kod jest brzydki.
dlaczego w VALUES masz 0? Usuń do insert i zobacz czy wyświetla tobie echo. Następnie włącz wyświetlanie błędów i sprawdź co się dzieje. edit: o Turson mnie ubiegł ![]() Ten post edytował Forti 29.12.2014, 13:10:07 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Wklej w google tekst komunikatu a zobaczysz milion odpowiedzi
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Powiem Ci ze chyba to nie tego wina bo jak skrypt wrzucę do głownego katalogu to wszystko działa, co prawda wywala NOTICE ale działa.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Cytat mysql_query("INSERT INTO news VALUES(0,'$tytul','$tresc','$data')"); Radziłbym zwrócić na to uwagę. sprawdź czy nie duplikujesz rekordu o id = 0. ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Przy kliknięciu na EDYTUJ przy danym newsie prawidłowo rozpoznaje id.
Kod localhost/panel/admin.php?newsy=edytuj&id=5
Ten post edytował Salur 29.12.2014, 13:35:35 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Spoko ale zacząłeś o dodawaniu newsa i tym, że dodanie newsa wyświetla Ci białą stronę.
Z tego co widzę formularz dodawania newsa obsługuje ten fragment skryptu:
A ten fragment ewidentnie próbuje dodać do bazy rekord o ID 0 (zakładając, że pierwsza kolumna to id a tak zapewne jest). Dodatkowo dobrym nawykiem jest sprawdzanie czy istnieją dane klucze w tablicy $_POST ale tu już się czepiam ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Czyli co radzisz zrobić?
Jesli plik admin.php (czyli odpowiadające za newsy) jest w głównym katalogu na serwerze wszystko działa (dodawanie, usuwanie, edytowanie). Ten post edytował Salur 29.12.2014, 13:47:34 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Zmienić inserta
Dodaj kolumny(te które uzupełnisz czyli tytuł, treść i datę). ID powinno samo się uzupełnić jeśli dałeś mu atrybut AI. Przykładowo: edit: Teraz dopiero przeczytałem Twojego posta. Daj znać czy to coś pomoże. Jeśli nie to znajdzie się inne rozwiązanie ![]() Ten post edytował SpiritCode 29.12.2014, 13:52:34 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przecież JA ci napisałęm wyżej na co masz zwrócić uwagę. CZYTAJ co się do Ciebie piszę, kolego.
Jakie kolumny ma tabela news w bazie danych? Ma 4 i pierwsza z nich to ID? Zakład o 100, że duplikujesz ID 0 i dlatego nic nie robi. Ten plik admin.php próbujesz gdzieś include? Jeżeli tak to duplikujesz session_start();. Turson Ci to juz napisałem. Naucz się czytać ze zrozumieniem skoro chcesz brać się za programowanie. 90% tej pracy to czytanie - udowodnione już nie jednokrotnie. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Forti ma rację. Trzeba umieć czytać
![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Gdy dodałem to:
Teraz nic się nie wyświetla. Ten post edytował Salur 29.12.2014, 14:00:56 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli w skrypcie includujesz skrypt nie musisz dodatkowo w includowanym dodawać session_start(); bo sesję rozpoczyna skrypt nadrzędny jeśli to w nim zapiszesz.
Ale na dobrą sprawę drugi session_start w tym przypadku jest ignorowany. Tylko po co? |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Ja tego nie chce includować, tylko sprawdziłem czy to coś da.
Daje link do panelu na stronie, zobaczycie jak to działa. STRONA Hasło to : test Ten post edytował Salur 29.12.2014, 14:09:09 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Twoja strona wogole nie działa.
Zrobiłeś to z tym insert do bazy? Aby nie dodawało tego 0 ;] -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Literówka była, juz działa.
//Edit Tak, zrobiłem ale nadal o samo. Ten post edytował Salur 29.12.2014, 14:11:54 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli nie chcesz includować to tego nie rób
![]() Wróć do tego co miałeś gdzie działał ci formularz chociaż. noticem o session_start się nie przejmuj. Jeśli uważasz, ze powinna tam być inicjalizacja sesji to dodaj zamień w admin.php na Notice powinien się nie pojawiać. |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 28.12.2014 Ostrzeżenie: (20%) ![]() ![]() |
Notice się już nie pokazuje
![]() Jakieś propozycje? Ten post edytował Salur 29.12.2014, 14:27:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:27 |