Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Hasło i dodawanie Newsów
Forum PHP.pl > Forum > Przedszkole
Rookie
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"); ?>
bobo168
Poczytaj o sesjach w php, bo tworzenie w ten sposób zabezpieczania hasłem nie ma najmniejszego sensu smile.gif
Rookie
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>"??
erix
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
Rookie
Dzięki, ale wybierz za mnie haha.gif: Albo jestem ślepy, albo tam tego nie ma, nie znalazłem haha.gif. Od razu uprzedzam przed jakimiś przykrymi komentarzami, iż jestem zupełnie początkującym w php - to chyba da się zauważyć
erix
Dałem link do konkretnego komentarza. Jest on na samym dole strony podręcznika. 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ć.
Rookie
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 sad.gif
PS. Ja oczywiście nie mam zamiaru utrzymywać tej niewiedzy, mam zamiar poszerzać swą wiedzę ;], ale coś nie mogę tego zrozumieć sad.gif
erix
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.
Rookie
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 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 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 haha.gif
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.