Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc lecz inna pomoc!
Forum PHP.pl > Forum > Gotowe rozwiązania
kubatron
Witam pisze w sprawie skryptu newsów napisałem skrypt dodawania i wyswietlania i zaczełem pisać edycji i usuwania i pokazywania wybranego newsa:
index.php - główny plik wyświetlający newsy.
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
$pyt = ("SELECT * FROM news ORDER BY data DESC");
$result = mysql_query($pyt) or die ("Błąd zapytania: $pyt");
while($row = mysql_fetch_array($result)) {
echo "<table width="400" cellspacing="0" cellpadding="0" border="0" style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row[0] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $row[1] . "</div>";
echo "<a href="$row[2]" target="blank_"><img src=$row[2] width="250" height="180"></a>&nbsp;&nbsp;" . $row[3] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row[6] ."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:&nbsp;&nbsp;<a href=mailto:" . $row[5] . " title="Autor newsa: $row[4]">" . $row[4] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<br>";
}
?>[/php:1:eaab6801ce]
admin.php - plik z dodawaniem rekordów(bedzię głównym plikiem z opcjami administracyjnymi newsów) narazie tak jak jest
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Dodawanie newsów:</div>";
echo "<form action="dodaj.php" enctype="multipart/form-data" method="post">";
echo "<input type="hidden" name="pyt" value="dodaj"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="naglowek"><br>";
echo "Zdjecie:<input type="text" name="image" size="40"><br>";
echo "Treść:<textarea name="tresc" cols="45" rows="15"></textarea><br>";
echo "User:<input type="text" name="user"><br>";
echo "Email:<input type="text" name="mail"><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tbody>";
?>[/php:1:eaab6801ce]
dodaj.php - plik wykonujący zapytanie dodające do tabeli news dane
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z baz&plusmn;");
if($pyt == 'dodaj') {
$pyt = "INSERT INTO news (idnews, naglowek, image, tresc, user, mail, data) VALUES ('$idnews', '$naglowek', '$image', '$tresc', '$user', '$mail', now());";
$wynik = mysql_query($pyt);
} else {
echo "Zapytanie zostało wykonane poprawnie wróć do panelu administracyjnego";
}
?>[/php:1:eaab6801ce]
opcje.php - plik mający za zadanie wyświetlić opcje Pokazywania danego newsa usuwania i edytowania
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
$pyt = ("SELECT * FROM news ORDER BY idnews DESC");
$result = mysql_query($pyt) or die ("Błąd zapytania: $pyt");
while($row = mysql_fetch_array($result)) {
echo "<a href=pokaz.php?f=show&id={$row['idnews']}>Pokaż news id {$row['idnews']}</a><br><br><a href=edit.php?f=edit&id={$row['idnews']}>Edytuj newsy</a>&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<a href=delete.php?f=delete&id={$row['idnews']}>Usuwaj newsy</a><br><hr width="160" color="black">";
}
?>[/php:1:eaab6801ce]
edit.php - plik który wyświetla formularz w którym jest wyświetlony dany news i można zmienić jego zawartośc(i tu jest błąd)
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
if ($pyt == 'dodaj') {
$pyt = ("SELECT * FROM news WHERE id='.$_GET['idnews'].')";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
}
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Edycja newsów:</div>";
echo "<form action="update.php" enctype="multipart/form-data" method="post">";
echo "<input type="hidden" name="pyt" value="popraw"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name=" . $row['naglowek'] . "><br>";
echo "Zdjecie:<input type="text" name=" . $row['image'] . " size="40"><br>";
echo "Treść:<textarea name=" . $row['tresc'] . " cols="45" rows="15"></textarea><br>";
echo "User:<input type="text" name=" . $row['user'] . "><br>";
echo "Email:<input type="text" name=" . $row['mail'] . "><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tbody>";
?>[/php:1:eaab6801ce]
gdy w opcje.php wciskam Edytuj newsa i w linku jest jego id to wyskakuje mi taki błąd w edit.php
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:usrkrasnalwww1edit.php on line 8
update.php - plik który po wypełnieniu formularza w edit.php updatuje newsa
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
if ($pyt == 'popraw') {
$pyt = "UPDATE news SET idnews='$idnews', naglowek='$naglowek', image='$image', tresc='$tresc', user='$user', mail='$mail', data='$data' WHERE idnews='$idnews';";
$wynik = mysql_query ($pyt);
}
?>[/php:1:eaab6801ce]
pokaz.php - plik pokazujący wybranego newsa
[php:1:eaab6801ce]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL.");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.");
if($pyt == 'pokaz') {
$pyt = ("SELECT * FROM news WHERE id=' . $_GET['idnews'] . '")";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
echo "<table width="400" cellspacing="0" cellpadding="0" border="0" style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row['idnews'] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $row['naglowek'] . "</div>";
echo "<a href=" . $row['image'] . " target="blank_"><img src=" . $row['image'] . " width="250" height="180"></a>&nbsp;&nbsp;" . $row['tresc'] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row['data'] ."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:&nbsp;&nbsp;<a href=mailto:" . $row['user'] . " title="Autor newsa: $row['user']">" . $row['user'] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>[/php:1:eaab6801ce]
i tu też jest błąd
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:usrkrasnalwww1pokaz.php on line 7
=================================
I teraz jest jeszcze jedna sprawa istotna prosze was żeby odpowiedzie niebyły takie tu masz przerobiony skrypt jest dobrze tylko żebyście dawali wskazuwki, i jeszcze chciałbym zrobić jak zrobić system uwierzytelniania żeby nikt niemiał dostępu do plików np.dodaj.php tylko po zalogowaniu można było tam wejsc prosze o funkcje a nie skrypt będe próbował sam jeśli mi niewyjdzie to poprosze wtedy o pomocną dłoń.
I jeszcze dam zapytanie żeby można było przetestować skrypt:
[sql:1:eaab6801ce]
==============================
Tworzymy tabele news z polami:
==============================
CREATE TABLE `news` (
`idnews` INT( 11 ) NOT NULL ,
`naglowek` TEXT NOT NULL ,
`image` TEXT NOT NULL ,
`tresc` TEXT NOT NULL ,
`user` TEXT NOT NULL ,
`mail` TEXT NOT NULL ,
`data` DATETIME DEFAULT 'now();

' NOT NULL
);

===============================
Mastępnie aktualizujemy idnews:
===============================
ALTER TABLE `news` DROP
PRIMARY KEY ,
ADD
PRIMARY KEY ( `idnews` )
==============================
I na koniec:
==============================
ALTER TABLE `news` CHANGE `idnews` `idnews` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT
==============================
[/sql:1:eaab6801ce]
Ive
edit.php
[php:1:dfc29f5260]<?php
$pyt = ("SELECT * FROM news WHERE id='.$_GET['idnews'].')";
?>[/php:1:dfc29f5260]
tu masz błąd czyli musisz po prostu prznieść " przed nawias ;]

(ten drugi plik z błędem tongue.gif )
[php:1:dfc29f5260]<?php
$pyt = ("SELECT * FROM news WHERE id=' . $_GET['idnews'] . '")";

?>[/php:1:dfc29f5260]
znowu za nawiasem postawiłęś cudzysłów

A co do tego uwierzytelniania to zrób tak
1. zastosuj cookie lub sesje trzymając w nich login i hasło
2. na początku każdej pod strony wgrywaj plik z hasłami (lub tabele) i stosuj funkcję if(). Jeśli ni znajdzie wcześniej podanego hasła lub login walnij die() i moim zdaniem po sprawie ;]

[EDIT] (którys z kolei jush biggrin.gif )
możesz zastosować die() po tym if() wysyłając treść komunikatu lub po prostu otworzyć { i wstawić tam przekierowanie do pliku z formem ;]
[/EDIT]
kubatron
o system uwierzytelniania chodzi mi na mysql i żeby zabezpieczyc pliki np.dodaj.php żeby przed zalogowaniem niemożna było tam wejsc biggrin.gifi żeby hasło było w bazie zakodowane jakąs funkcją
mhs
jezeli chodzi o system uwierzytelniania to zacznij od projektu bazy danych czyli nastepujace pola: nazwa uzytkownika, haslo typu char(32), moze jakis email
nastepnie zapoznaj sie z funkcjami do obslugi sesji, przy okazji mozesz tez zapoznac sie z technologia ciasteczek... to tyle wskazowek na dzien dobry...

ps. jezeli chodzi o (kodowanie) haszowanie hasla to wykorzystaj tutaj funkcje [manual:331bdf8fba]md5()[/manual:331bdf8fba]
kubatron
Ive dalej wyskakuje w edit.php

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:usrkrasnalwww1edit.php on line 8

a w pokaz.php

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:usrkrasnalwww1pokaz.php on line 7


mhs: thx popatrze i tez tą funkcje md5() obczaje jutro zaprojektuje baze i sprobuje cos zrobić
mhs
mieszasz caly czas z cydzyslowami - jest ich wiele i przez to sie gubisz....

poprawilem to patrzac tylko i wylacznie na to jak koloruje skladnie moj edytor - co do logiki aplikacji to nie wiem gdyz sie nie zaglebialem w to

mam nadzieje, ze pomoze


[php:1:0c5cc6f364]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
if ($pyt == 'dodaj') {
$pyt = "SELECT * FROM news WHERE id='".$_GET['idnews']."'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
}
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Edycja newsów:</div>";
echo "<form action="update.php" enctype="multipart/form-data"
method="post">";
echo "<input type="hidden" name="pyt" value="popraw"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="" . $row['naglowek'] . ""><br>";
echo "Zdjecie:<input type="text" name="" . $row['image'] . "" size="40"><br>";
echo "Treść:<textarea name="" . $row['tresc'] . "" cols="45"
rows="15"></textarea><br>";
echo "User:<input type="text" name="" . $row['user'] . ""><br>";
echo "Email:<input type="text" name="" . $row['mail'] . ""><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tbody>";
?>[/php:1:0c5cc6f364]


[php:1:0c5cc6f364]<?php
mysql_connect ("localhost", "root", "krasnal") or die ("Nie można połączyć się z MySQL.");

mysql_select_db ("news") or die ("Nie można połączyć się z bazą danych.");

if($pyt == 'pokaz') {
$pyt = "SELECT * FROM news WHERE id='".$_GET['idnews']."'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
echo "<table width="400" cellspacing="0" cellpadding="0" border="0"
style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid;
BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row['idnews'] .
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[space]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".
$row['naglowek'] . "</div>";
echo "<a href="". $row['image'] ."" target="blank_"><img src="" . $row['image']
. "" width="250" height="180"></a>[space][space]" . $row['tresc'] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row['data']
."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:[space
]&nbsp;<a href=mailto:" . $row['user']." title="Autor newsa:". $row['user']."">" .
$row['user'] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>[/php:1:0c5cc6f364]
DeyV
a żeby kod jeszcze bardziej uczytelnić, proponuję i przypominam o tym, że jeśli już musi być kod html w kodzie php to warto go wywalać poza znaczniki php. Tak więc zamiast [php:1:aee52037ee]<?php
echo '<html .. ... >'. $row['cos']. '<html ... >';
?>[/php:1:aee52037ee]
znacznie lepiej wygąda [php:1:aee52037ee]
<?php echo $row['cos_tam'] ?>
<html . . . . >
<?php echo ... ?>[/php:1:aee52037ee]
kubatron
Cytat
a żeby kod jeszcze bardziej uczytelnić, proponuję i przypominam o tym, że jeśli już musi być kod html w kodzie php to warto go wywalać poza znaczniki php. Tak więc zamiast [php:1:d37e28e4e6]<?php
echo '<html .. ... >'. $row['cos']. '<html ... >';
?>[/php:1:d37e28e4e6]
znacznie lepiej wygąda [php:1:d37e28e4e6]
<?php echo $row['cos_tam'] ?>
<html . . . . >
<?php echo ... ?>[/php:1:d37e28e4e6]

DeyV: ale czy to jest znowu tak ważne które lepsze jest?
kubatron
mhs: pomogłeś tylko że niewiem czemu jak wciskam w opcje.php w pokaz.php np na news 11 to mam pustą strone a jak daje edytuj to pokazuje pusty formularz sad.gif
kubatron
DeyV a co to daje za różnice poza znaczniki czy w znacznikach to chyba niema żadnego sensu w przyspieszeniu skryptu.
mhs
Cytat
DeyV: ale czy to jest znowu tak ważne które lepsze jest?


a czy uwazasz, ze Twoj kod jest czytelny? - sorry, ale nie wydaje mi sie... gdybys zastosowal sie do tego co proponuje DeyV to nie mialbys takich klopotow

jezeli chcesz juz pisac w stylu ktory prezentujesz to ogranicz ilosc uzycia funkcji echo gdyz skrypt bedzie dzialal szybciej czyli lepiej jest juz napisac:


[php:1:6f9646b0e4]<?php
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">".
"<tr>".
"<td>".
"<div id=t2>Edycja newsów:</div>".
"<form action="update.php" enctype="multipart/form-data" method="post">";
?>[/php:1:6f9646b0e4]

zamiast

[php:1:6f9646b0e4]<?php
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Edycja newsów:</div>";
echo "<form action="update.php" enctype="multipart/form-data"
method="post">";
?>[/php:1:6f9646b0e4]
kubatron
witam jest jeszcze jeden problem gdy w opcje.php wcisne na np. pokaż news id12 to w pliku pokaz.php powinien wybrac z bazy news o tym id i wyswietlic go a tym czasem wyswietla takie cos
Kod
<table width="400" cellspacing="0" cellpadding="0" border="0"

     style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid;

     BORDER-BOTTOM: #000000 1px solid;"><tr><td><div id=t2>nr.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[

      space]

     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div><a href="" target="blank_"><img src="" width="250" height="180"></a>&nbsp;&nbsp;<br><div id=t1><p class=data>Data dodania:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:[space

     ]&nbsp;<a href=mailto: title="Autor newsa:"></a></div></td></tr></table>

a kod w pokaz.php mam taki
[php:1:b422918f93]<?php
mysql_connect ("localhost", "root", "krasnal") or die ("Nie można połączyć się z
MySQL.");
mysql_select_db ("news") or die ("Nie można połączyć się z bazą danych.");
if($pyt == 'pokaz') {
$pyt = "SELECT * FROM news WHERE id='" . $_GET['idnews'] . "'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
} else {
echo "<table width="400" cellspacing="0" cellpadding="0" border="0"
style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid;
BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row['idnews'] .
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[
space]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".
$row['naglowek'] . "</div>";
echo "<a href="". $row['image'] ."" target="blank_"><img src="" . $row['image']
. "" width="250" height="180"></a>&nbsp;&nbsp;" . $row['tresc'] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row['data']
."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:[space
]&nbsp;<a href=mailto:" . $row['user']." title="Autor newsa:".
$row['user']."">" .
$row['user'] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>[/php:1:b422918f93]
i jak wciskam na edit.php czyli wybieram np.news 10 i chce go wyedytować to pokazuje się pusty formularz
Kod
table width="600" cellspacing="0" cellpadding="0" border="1"><tr><td><div id=t2>Edycja newsów:</div><form action="update.php" enctype="multipart/form-data"

     method="post"><input type="hidden" name="pyt" value="popraw"><br>Idnews:<font color=red>Wypis samoczynny.</font><br>Nagłówek:<input type="text" name=""><br>Zdjecie:<input type="text" name="" size="40"><br>Treść:<textarea name="" cols="45"

     rows="15"></textarea><br>User:<input type="text" name=""><br>Email:<input type="text" name=""><br>Data: <font color=red>Wypis samoczynny.</font><br><input type="submit" value="Dodaj newsa"><input type="reset" value="Wyczyść"></form></td></tr></table></tbody>

a kod mam taki
[php:1:b422918f93]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
if ($pyt == 'dodaj') {
$pyt = "SELECT * FROM news WHERE id='" . $_GET['idnews'] . "'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
}
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Edycja newsów:</div>";
echo "<form action="update.php" enctype="multipart/form-data"
method="post">";
echo "<input type="hidden" name="pyt" value="popraw"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="" . $row['naglowek'] . ""><br>";
echo "Zdjecie:<input type="text" name="" . $row['image'] . "" size="40"><br>";
echo "Treść:<textarea name="" . $row['tresc'] . "" cols="45"
rows="15"></textarea><br>";
echo "User:<input type="text" name="" . $row['user'] . ""><br>";
echo "Email:<input type="text" name="" . $row['mail'] . ""><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tbody>";
?>[/php:1:b422918f93]
kubatron
i jeszcze jedno jak zrobić w index.php żeby po dodaniu 4 newsów tworzyły się strony z starymi newsami prosze o wskazuwki. biggrin.gif
mhs
nie do konca analizowalem ten Twoj kod ale:

1)

[php:1:4629e72e4f]<?php
if($pyt == 'pokaz')
{
$pyt = "SELECT * FROM news WHERE id='" . $_GET['idnews'] . "'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
}
else {
//dalszy kod
?>[/php:1:4629e72e4f]

rozumiem to w ten sposob: jezeli $pyt == 'pokaz' to do tej zmiennej wpisz zapytanie, ktore bedzie wyslane do serwera, nastepnie wkorzystuje funkcje mysql_query() a nastepnie mysql_fetch_array() - i to jest koniec Tojego programu
jezeli $pyt != 'pokaz' to wyswietla Ci dane (tak mi sie wydaje) ktore chcesz pobrac z bazy danych....

masz tutaj blad logiczny - musisz pobrany wynik z BD wyswietlic czyli kontynuowac ten kod... -> mam nadzieje, ze w miare jasno i trafnie udzielicem Ci odpowiedzi

2)

rozumiem, ze skryptem edit bedziesz edytowal wiadomosc...
jezeli chcesz wiec przekazac do formularza jakies dane to musi on wygladac mniej wiecej tak:


Kod
<input type="text" name="nazwa" value="wartosc" />


pod wartosc musisz wstawic np. wynik zapytania z bazy danych .... nie widze u Ciebie tego w kodzie...
patrycjusz
hihi
ad. 1. :arrow: Kubatron słuchaj i pytania które chcesz zadać zapisz najpierw na kartce i przeczytaj to pomaga sam stosowałem i głupich pytań często (chciałoby się powiedzieć zawsze :wink: ) nie ma
ad. 2. :arrow: wyjście z kodu php i wyświetlenie html powoduje :
# czytelność
# szybkość - parser nie parsuje wtedy kodu html a jedynie wypluwa go do klienta
ad. 3. :arrow: co do archiwum - dodaj sobie dodatkową kolumne w tabeli news (np . archiwum) i
w zapytaniu wstawiającym newsa wstawiasz '0' do tej kolumny a ciągniesz tylko te newsy gdzie archiwum jest równe 0 a przenosząc do archiwum dajesz zapytanie
[php:1:0c6dd0dc5e]<?php
$sql = "update news set archiwum = '1' where id = '".$id."'";
mysql_query($sql);
?>[/php:1:0c6dd0dc5e]
to taki najprostszy sposob :wink:
ad.4.
Uwierzetelnianie:
- stwórz sobie tabele:
users id|login|haslo| bla bla co tam chcesz

i zapytanie:
[php:1:0c6dd0dc5e]<?php
$zapytanie = mysql_query("select * from users where login = '".$login."' && haslo = '".$haslo."'");
$wynik = mysql_num_rows($zapytanie);
if(!$wynik == '1')
{
echo 'nie dla psa kielbasa';
}
else
{
$_SESSION['login'] = $login;
$_SESSION['SID'] = $_SERVER['REMOTE_ADDR'].md5($haslo);
}

//i sprawdzasz na stronie czy login przekazany w sesji jest taki w bazie i czy SID czyli haslo //plus ip zahaszowane md5 tez jest w bazie i czy ip jest ok
?>[/php:1:0c6dd0dc5e]
to takie z ręki więc nie dobre, chociarz może ci wystarczy, ale jeżeli szukasz czegoś porządego to poszukaj na forum temat poruszany w co 3 poscie.

Ogólnie najpierw pooglądaj gotowce tego co chcesz stworzyć a pózniej rób i pytaj
Pozdrawiam patS.
kubatron
Cytat
...
masz tutaj blad logiczny - musisz pobrany wynik z BD wyswietlic czyli kontynuowac ten kod... -> mam nadzieje, ze w miare jasno i trafnie udzielicem Ci odpowiedzi
...

niedokonca rozumiem to przecież w opcje.php mam while i mysql_fetch_array i <a href=edit.php?f=pokaz&{$row['idnews']}>pokaż</a>
kubatron
edycja też niedziała tak jak pokazałes na formularzu sad.gif probowałem różnie lecz nic
kubatron
patS a co do twojego postu to niby dobry jest ale da rady zabezpieczyc pliki dodaj.php zeby przed zalogowaniem nikt tam sie niedostał
kubatron
panowie bardzo was prosze pomóżcie biggrin.gif
kubatron
pomóżcie prosze panowie biggrin.gif
----------------------
Wesołych świąt, i dużo prezentów.
Seth
Cytat
Jeśli na Twoje pytanie nie pojawia się odpowiedź, może być to spowodowane kilkoma czynnikami. Może jesteś zbyt niecierpliwy i nie zaczekałeś odpowiednio długo na odpowiedź? Może źle zatytułowałeś post, źle sformułowałeś pytanie, lub nie podałeś wystarczającej ilości informacji i nikt nie próbuje nawet na nie odpowiedzieć? Może pytanie zostało już kiedyś zadane i nikt nie chce trudzić się odpowiadając na nie ponownie? Może pytanie przerosło możliwości wszystkich uczestników forum (najmniej prawdopodobna ewentualność)? Obojętnie co jest powodem, nie wysyłaj na forum ponownie tego samego pytania. Spróbuj sprecyzować to, które już zadałeś.
Luke
Moze Pan Kubatron ma usilna potrzebe prowadzenia monolgow?
kubatron
Ponieważ bzikOS zamknał temat poprzedni to kontynuuje ten.
Wiec pierwsze pytanie:
pisze skrót
admin.php
[php:1:e3df1a244f]<?php
...
...
echo "<form action="dodaj.php" enctype="multipart/form-data" method="post">";
echo "<input type="hidden" name="pyt" value="dodaj"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="naglowek"><br>";
echo "Zdjecie:<input type="text" name="image" size="40"><br>";
echo "Treść:<textarea name="tresc" cols="45" rows="15"></textarea><br>";
echo "User:<input type="text" name="user"><br>";
...
...

?>[/php:1:e3df1a244f]
tu jest wszystko dobrze tylko jedno bym chciał poprawić tak jak jest w profilu w phpbb żeby wybrac plik i on został skopiowany do katalogu to w pliku admin.php

Teraz mam pliki które działac niechcą.
Mam to w odzielnym katalogu wiec podaje tak jak mam:
index.php - plik z linkami do Pokazania danego newsa, Usunięcia danego newsa, i edytowania danego newsa.
[php:1:e3df1a244f]<?php
....
wczesniej jest łaczenie
$pyt = ("SELECT * FROM news ORDER BY idnews DESC");
$result = mysql_query($pyt) or die ("Błąd zapytania: $pyt");
while($row = mysql_fetch_array($result)) {
echo "<a href=pokaz.php?f=pokaz&id={$row['idnews']}>Pokaż news id
<b>{$row['idnews']}</b></a><br><br><a
href=edit.php?f=edit&id={$row['idnews']}>Edytuj
newsy</a>[space][space][space][space]";
echo "<a href=delete.php?f=delete&id={$row['idnews']}>Usuwaj newsy</a><br><hr
width="160" color="black">";
}
?>[/php:1:e3df1a244f]
edit.php - plik wyświetlający formularz z danymi, lecz niechce wyświetlic
[php:1:e3df1a244f]<?php
.....
łaczenie z baza wczesniej
if ($pyt == 'dodaj') {
$pyt = "SELECT * FROM news WHERE id='".$_GET['idnews']."'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
} else {
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Edycja newsów:</div>";
echo "<form action="update.php" enctype="multipart/form-data"
method="post">";
echo "<input type="hidden" name="pyt" value="popraw"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="" . $row['naglowek'] . ""><br>";
echo "Zdjecie:<input type="text" name="" . $row['image'] . ""
size="40"><br>";
echo "Treść:<textarea name="" . $row['tresc'] . "" cols="45"
rows="15"></textarea><br>";
echo "User:<input type="text" name="" . $row['user'] . ""><br>";
echo "Email:<input type="text" name="" . $row['mail'] . "" value="" .
$row['mail'] . ""><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
.......
?>[/php:1:e3df1a244f]
I tu jest problem gdy w index.php wciskam na dany news żeby wyedytować to pokazuje sie pusty formularz a powinno wyswietlic news który w linku jest zapisany index.php?f=edit={$row['idnews']}
update.php - plik który updatuje newsa danego
[php:1:e3df1a244f]<?php
....
łaczenie z baza
if ($pyt == 'popraw') {
$pyt = "UPDATE news SET idnews='$idnews', naglowek='$naglowek', image='$image',
tresc='$tresc', user='$user', mail='$mail', data='$data' WHERE idnews='$idnews';";
$wynik = mysql_query ($pyt);
} else {
echo "News został zaaktualizowany";
}
?>[/php:1:e3df1a244f]
pokaz.php - plik pokazujący danego newsa (niepokazuje newsa tak jak powinien pokazuje puste dane
[php:1:e3df1a244f]<?php
...
łaczenie z baza
if($pyt == 'pokaz') {
$pyt = "SELECT * FROM news WHERE id='".$_GET['idnews']."'";
$result = mysql_query($pyt);
$row = mysql_fetch_array($result);
} else {
echo "<table width="400" cellspacing="0" cellpadding="0" border="0"
style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid;
BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row['idnews'] .
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[
space]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".
$row['naglowek'] . "</div>";
echo "<a href="". $row['image'] ."" target="blank_"><img src="" . $row['image']
. "" width="250" height="180"></a>&nbsp;&nbsp;" . $row['tresc'] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row['data']
."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:[
space
]&nbsp;<a href=mailto:" . $row['user']." title="Autor newsa:".
$row['user']."">" .
$row['user'] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>[/php:1:e3df1a244f]
Co tu jest zle w tych plikach i może da rady jakos zmniejszyc te pliki zeby był plik edit.php i w nim edytowanie i updatowanie. z góry thx za pomoc

I takie pytanie na marginesie jak w którym z plików w phpbb są przyciski z pogrubieniem i emoticonami sad.gif
kubatron
Więc edycje i pokazywanie zrobiłem lecz pytam o to kopiowaniu tak jak w profilu
kubatron
Panowie już wszystko zrobiłem ale teraz chciałbym wiedziec jak jest z tym kopiowaniem pliku do folderu tak jak w profilu w phpbb biggrin.gif
BzikOS
Tzn. czego konkretnie nie wiesz? Jak uploadnąć plik?
.dragonfly
Odnosnie przenoszenia, zmieniania nazwy, kopiwowania to najlepiej ten fragment ci pomoze

http://www.php.net/manual/pl/ref.filesystem.php
kubatron
więc dokładnie chodzi mi o to że na forum jest w profilu do wybrania pliku i on jest kopiowany do folderu i wstawiany w znaczniki <img...... jak to zrobić sad.gif
kubatron
i jeszcze z tym ze mam 4 newsy na stronie głownej a reszte w archiwum.php żeby tylko 4 newsy na stronie głowej tworzyły i podstrony
biggrin.gif
BzikOS
Cytat
więc dokładnie chodzi mi o to że na forum jest w profilu do wybrania pliku i on jest kopiowany do folderu i wstawiany w znaczniki <img...... jak to zrobić sad.gif


Zuploaduj plik na server, nadaj mu jakąś unikalną nazwę (np. od ID newsa przy którym ma być), no a wyświetlić to już chyba będziesz umiał?

O uploadowaniu napisano tyle artów, że nawet nie pytaj jak to zrobić...
kubatron
BzikOS wiem jak wyświetlić ale jest problem, znalazłem na webhelp.pl ale on jest za prosty ja chciałbym wiedzie jak jest w phpbb :wink:
Seth
To zobacz do zrodel phpBB :!: rolleyes.gif
kubatron
ale który to pliczek?
Seth
Poszukaj. Zobacz jaka strona jest odpowiedialna za dodawanie obrazka i sprawdz w zrodlach.
kubatron
Seth no profile.php ale jak w tym tłumie kodu php znalesc te kilka pięknych lini biggrin.gif
Seth
Trzeba nad tym posiedziec wiecej niz 5 minut.
kubatron
Seth no nawet na forum na znacznikach php to sobie wyświetliłem i tam niema tego że kopiuje sad.gif
Seth
W takim razie tworcy phpBB zrobli magiczna sztuczke i wyczarowuja kod w locie z powietrza.
kubatron
[zmoderowane]
Seth przepatrzyłem linijka po linijce i nie ma :?:
Seth
Zauwaz, ze tam sa include'y i wlasnie w tych plikach jest pewnie kod.

Temat robi sie zenujacy, wiec go zamykam. Kubatron naucz sie, ze z byle glupstwem nie chodzi sie do mamusi/forum. Sam rusz glowa i nie zazucaj nas pytaniami na ktore sam powinienes znac odpowiedz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.