Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Hasło i dodawanie Newsów
Rookie
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Witam, mam taki problem, robię stronkę, na której chcę dodawać newsy, np. jak jak to jest na instalki.pl.
Skonstruowałem taki kod, teoretycznie działa, bo zapisuje do pliku news.txt to, co chcę, ale podczas naciśnięcia "Dodaj", znów rząda ode mnie hasła, a ja bym chciał, aby wyświetlił komunikat zależny od tego czy wypełniłem pola i wszysto jest ok - "dodano news", czy nie wypełniłem wszystkich pól - "Wypełnij wszystkie pola". Oto kod php:
Kod
<?php
$haslo = "haslo";
if(!empty($_POST['tytul']) && !empty($_POST['tresc'])) {
$open = fopen("news.txt", "a");
$save='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
     <tr>
         <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
         <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
         <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
     </tr>
     <tr>
         <td valign="top" colspan="3" class="trescc">
             <pre>'.$_POST['tresc'].'</pre>
         </td>
     </tr>
</table>';
fwrite($open, $save);
fclose($open);
$ok = "News Dodano";
}
else {
$ok = "Wypełnij wszystkie pola";
}
?>
<html>
<head>
<title>Witryna</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<meta name="Robots" content="all">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="icon.ico">
</head>
<body>
<table cellspacing="0" id="tabela" cellpadding="0" width="100%">
<tr>
<td class="logo">
<h1>LOGO</h1>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik3.png" alt=""></td>
<td align="center" style="background-color: #1B84FF;">
<ul id="poziom">
<li><a href="o_mnie.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;O mnie</a></li>
<li><a href="kontakt.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Kontakt</a></li>
</ul>
</td>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik4.png" alt=""></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%" id="news">
<tr>
<td style="width: 200;" valign="top">
<?php
include("menu.php");
?>
</td>
<td valign="top" align="center">
<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;">
     <tr>
         <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
         <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">Admin</td>
         <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
     </tr>
     <tr>
         <td valign="top" colspan="3" class="trescc">
<?php
if(empty($_POST['haslo'])) {
echo '<form action="Admin.php" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Hasło:</td><td><input type="password" name="haslo"><input type="submit" name="submit" value="Dalej"></td></tr>
</table>
</form>';
}
elseif($haslo == $_POST['haslo']) {
if(empty($_POST['tytul']) && empty($_POST['tresc'])) {
echo '<form action="Admin.php" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
else{
echo $ok;
}
}
else {
echo '<font color="#FF0000">Złe Hasło</font>

<form action="Admin.php" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Hasło:</td><td><input type="password" name="haslo"><input type="submit" name="submit" value="Wyślij"></td></tr>
</table>
</form>';
}
?>
         </td>
     </tr>
</table>
<?php include("stopka.php"); ?>
Go to the top of the page
+Quote Post
bobo168
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 9
Dołączył: 23.08.2006

Ostrzeżenie: (0%)
-----


Poczytaj o sesjach w php, bo tworzenie w ten sposób zabezpieczania hasłem nie ma najmniejszego sensu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Rookie
post
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Super, dzięki, poczytałem i zrobiłem, teraz mam trochę banalny problem, ale jak już jesteśmy przy tym temacie to wyjaśnię. Jeżeli to mają być newsy, to każdy nowy musi być umieszczany na początku zapisywanego pliku. Przy atrybucie "a", oczywiście dane dodaje na końcu, a przy "r+" owszem dodaje na początku, z tym, że kasuje poprzednią zawartość, czyli np jak by w pliku txt było napisane "Plik tekstowy", a został by wprowadzony tekst np. "koniec" to by wyszło "koniecekstowy". Pytanie brzmi, co zrobić, aby przy istniejących już danych, np. tabeli "<table></table>", i przy wprowadzeniu drugiej tabeli, jej nie nadpisywał, tylko ztobił drugą" <table></table><table></table>"??
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jeżeli to mają być newsy, to każdy nowy musi być umieszczany na początku zapisywanego pliku.

A komentarze w manualu, to Ty czasem czytasz? http://pl2.php.net/manual/pl/function.fwrite.php#29328
Go to the top of the page
+Quote Post
Rookie
post
Post #5





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Dzięki, ale wybierz za mnie (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) : Albo jestem ślepy, albo tam tego nie ma, nie znalazłem (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) . Od razu uprzedzam przed jakimiś przykrymi komentarzami, iż jestem zupełnie początkującym w php - to chyba da się zauważyć
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Dałem link do konkretnego komentarza. Jest on na samym dole strony podręcznika. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
komentarzami, iż jestem zupełnie początkującym w php - to chyba da się zauważyć

Nie jest wstydem czegoś nie wiedzieć; wstydem jest tą niewiedzę utrzymywać.
Go to the top of the page
+Quote Post
Rookie
post
Post #7





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


O ja, mam pustke w głowie: 3razy to przczytałem, ostatni post, i nawet 2 poprzednie, ku pewności i nic nie mogę z tego zrozumieć
Cytat
see fopen() for more info.
- to również spojrzałem przeczytałęm cały fopen(); ale nie kumam (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
PS. Ja oczywiście nie mam zamiaru utrzymywać tej niewiedzy, mam zamiar poszerzać swą wiedzę ;], ale coś nie mogę tego zrozumieć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Aby zapisać dane na początku pliku, musisz najpierw pobrać jego zawartość do zmiennej, Wykonać coś takiego:
  1. <?php
  2. $zmienna = 'to będzie na początku'.$stareDane;
  3. ?>

I tą zmienną zapisać do tamtego pliku. Innego sposobu nie ma, przynajmniej mi o innych nie wiadomo.
Go to the top of the page
+Quote Post
Rookie
post
Post #9





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


O rety, dzięki, że się wysiliłeś, może dało by się trochę łopatologiczniej? Bo ok rozumiem, że mam załadować treść pliku do zmiennej ale co załadować do $stareDane?? I w jaki sposób załadować to do zmiennej w taki sam sposób jak ten plik do strony?
Ok, tam tobie kliknę, że pomogłeś, bo na pewno bardzo pomożesz (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ;], tylko proszę, wyjaśnij bardziej łopatologicznie w jaki sposób, podam ci teść strony dodaj.php:
Kod
<?php
session_start();
if (!isset($_SESSION["haslo"])){
  header("Location: Admin.php");
  exit();
}
?>
<?php
$data = date("d.m.Y H:i:s");
if(!empty($_POST['tytul']) && !empty($_POST['tresc'])) {
$open = fopen("news.txt", "a");
$save='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
          <p align="justify">'.$_POST['tresc'].'</p>
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <div style="font-family: Times New Roman; font-size: 11; background-color: #1B84FF; color: #FFFFFF;">
                Dodano '.$data.'
            </div>
        </td>
    </tr>
</table>

';
fwrite($open, $save);
fclose($open);
$ok = "News Dodano";
}
else {
$ok = "Wypełnij wszystkie pola";
}
?>
<html>
<head>
<title>Witryna</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Language" content="pl" />
<meta name="Robots" content="all">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="icon.ico">
</head>
<body>
<table cellspacing="0" id="tabela" cellpadding="0" width="100%">
<tr>
<td class="logo">
<h1>LOGO</h1>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik3.png" alt=""></td>
<td align="center" style="background-color: #1B84FF;">
<ul id="poziom">
<li><a href="o_mnie.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;O mnie</a></li>
<li><a href="kontakt.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Kontakt</a></li>
<li><a href="Admin.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Admin</a></li>
</ul>
</td>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik4.png" alt=""></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%" id="news">
<tr>
<td style="width: 200;" valign="top">
<?php
include("menu.php");
?>
</td>
<td valign="top" align="center">
<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">Admin -
<?php
  echo '<a href="logout.php?'.SID.'">';
  echo "[Wyloguj]</a>";
?>
        </td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
<?php
if(empty($_POST['tytul']) && empty($_POST['tresc'])) {
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
else{
echo $ok;
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
?>
        </td>
    </tr>
</table>
<?php include("stopka.php"); ?>

A oto kawałek z pliku index.php
Kod
<?php
$open = fopen("news.txt", "r");
while(!feof($open)){
echo fgets($open, 4096);
}
fclose($open);
?>


OO, udało się, dzięki, mam już nie trzeba się rozpisywać z takim tłukiem co ja (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Na tym forum często nie bywam, po lewej stronie nie widziałem gdzie mogę wstawić pomógł, napisz gdzie to się wstawia i masz to gwarantowane (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

Ten post edytował Rookie 28.11.2008, 20:41:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:51