Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić formularz <textera> w którym zmieniało by się treść strony?
Forum PHP.pl > Forum > PHP
szygmon
Pomóżcie!
Jak zrobić formularz <textera> w którym edytowało by się treść pliku, np plik.php?questionmark.gifquestionmark.gif?
devnul
poczytaj w manualu
http://pl2.php.net/fopen

a na przyszłość to pogoogluj troche zanim zapytasz bo tego typu "problemów" miliony jest w necie (włącznie z rozwiązaniami)
szygmon
to daj jakis adres, bo ja jakos nic nie moge znaleść

  1. <?php
  2. $text = "Tekst do zapisania";
  3. // tekst może rownież pochodzić z formularza
  4. if ($fp = @fopen("plik.txt","a")) {
  5.  // operacje na pliku
  6. flock($fp, 2); 
  7. // zapisanie danych do pliku
  8. fwrite($fp, $text);
  9. // odblokowanie pliku
  10. flock($fp, 3); 
  11. // zamknięcie pliku
  12. fclose($fp); 
  13. echo "Zapisano poprawnie";
  14. }
  15. else echo "Wystapił błąd w zapisie pliku!";
  16. ?>

jak mam zmienic ten kod zeby tekst do zapisania pochodził z formulaza <textera>??
devnul
  1. <?php
  2. $text = $_POST['tekst'];
  3. // tekst może rownież pochodzić z formularza
  4. if ($fp = @fopen("plik.txt","a")) {
  5.  // operacje na pliku
  6. flock($fp, 2); 
  7. // zapisanie danych do pliku
  8. fwrite($fp, $text);
  9. // odblokowanie pliku
  10. flock($fp, 3); 
  11. // zamknięcie pliku
  12. fclose($fp); 
  13. echo "Zapisano poprawnie";
  14. }
  15. else echo "Wystapił błąd w zapisie pliku!";
  16. ?>

a w html
  1. <form action="index.php" method="post">
  2. <textarea name="tekst"></textarea>
  3. <inpu type="submit" />
  4. </form>
szygmon
mam jeszcze 1 pytanie, czy mogę zrobić do panelu logowania kilku użytkowników? ściągnąłem panel do subskrypcji. tak wygląda:

config:
  1. <?php
  2. // www.webcoding.shost.pl Komponenty, skrypty i porady dla webmasterów!
  3.  $pass="haslo"; // haslo do panelu
  4.  $login="admin"; // login do panelu
  5.  $email="cos@jakos.pl"; // adres e-mail z ktorego beda wysyalne nowosci
  6. ?>


index.php:
  1. <?php
  2. include("config.php");
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7.  <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  8.  <meta http-equiv="Creation-date" content="2005-05-18" />
  9.  <meta http-equiv="reply-to" content="sz0k@poczta.fm" />
  10.  <meta name="author" content="Jarolewski Piotr" />
  11.  <meta name="description" content="WebCoding - serwis dla webmasterów! Porady oraz Komponenty dostepne dla wszystkich za darmo
    !!!" />
  12.  <meta name="generator" content="WebSite PRO 4.3" />
  13.  <link rel="stylesheet" type="text/css" href="style.css" />
  14.  <title>Newsletter v0.1 by www.webcoding.shost.pl</title>
  15. </head>
  16. <body>
  17. <table style="margin-left: auto;margin-right: auto;background-color: white;border:3px solid #cccccc;vertical-align:top;text-align: left; width:600px;" cellpadding="3" cellspacing="0">
  18. <td style="width: 200px;vertical-align:top;text-align: left;">
  19.  <?php
  20.  if ($_COOKIE['zalogowany']==md5($pass)){
  21.  // tresc dostepna dla zalogowanych
  22.  echo "<span class="men">&rArr; Menu</span><br />";
  23.  echo "Witaj <b>$login</b> <a href=logout.php>Wyloguj</a><br />
  24.  &bull; <a href="newsl.php">Newsletter</a><br />
  25.  &bull; <a href="edit.php">Edycja e-mail'i</a><br />";
  26.  }
  27.  else {
  28.  echo "
  29. <form action="login.php" method="post">
  30. <table style="border: none;">
  31.  <tr>
  32. <td>Login: </td>
  33. <td><input type="text" name="login2" style="width: 120px"></td>
  34.  </tr>
  35.  <tr>
  36. <td>
  37. Hasło:</td>
  38.  <td><input type="password" name="haslo" style="width: 120px"></td>
  39. </tr>
  40. <tr>
  41.  <td><input type="submit" name="submit" value="Loguj"></td>
  42. </tr>
  43. </table>
  44. </form>";
  45. }
  46.  // koniec
  47.  ?>
  48. </td>
  49. <td style="width: 400px;">
  50. Newslletter v0.1
  51. <br />By sz0k<br />
  52. <a href="http://www.webcoding.shost.pl">www.webcoding.shost.pl</a>
  53.  
  54. </td>
  55. </table>
  56. </body>
  57. </html>


login.php:
  1. <?php
  2. include("config.php");
  3. // Sprawdzenie czy podane hasło i login sa dobre i wysłanie ciasteczka do komputer
    a
  4. if (($login2==$login)&&($haslo==$pass)) {
  5. setcookie("zalogowany", md5($pass), time()+3600);
  6. header("Location: $HTTP_REFERER");
  7. echo "Witaj $login Udało ci sie poprawnie zalogować! <a href="$HTTP_REFERER">Powrót</a>";
  8. }
  9. // w przypadku złych danych wyświetli komunikat:
  10. else
  11. echo "<span style="color: #FF0000; text-align: center;">Złe hasło lub login! <a onClick="history.back()">Wstecz</a></span>";
  12. ?>


myśle, ze reszta plików jest tutaj nie potrzebna. Prosze o pomoc!

Pozdrawiam
Szymon
devnul
widz ze chciałbyś gotowych rozwiązań a samemu głową ruszyć się nie chce. czytaj, szukaj, myśl a uda Ci się zmienić ten skrypt bez problemu
szygmon
  1. <?php
  2. // www.webcoding.shost.pl Komponenty, skrypty i porady dla webmasterów!
  3.  $pass="haslo";
  4.  $pass="haslo2";
  5.  $login="admin";
  6.  $login="admin2";
  7.  $email="cos@jakos.pl";
  8.  $email="cos2@jakos.pl";
  9. ?>


czy tak moze być?


i wracając do zapisywania pliku i edycji w textera to jak zrobić, żeby aktualny tekst tez się wyświetlał?
webdice
Nie wtedy, pierwsza zmienna login jest nadpisywana to samo ze zmienną z hasłem, pokombinuj coś sam, jak nie będzie Ci wychodzić to Ci pomożemy, na pewno za Ciebie nie zrobimy.
devnul
podpowiedz - bramka numer jeden : tablice
szygmon
co do edycji w textera to juz mam, a ta podpowiedź to może troszke bardziej zrozumiała? jaka bramka?
devnul
pytanie powinno pyć takie: jakie tablice?

http://pl2.php.net/array
szygmon
array_key_exists coś z tym?? jestem początkujący, pomóżcie chociaz troszke

a czy jak napisze

  1. <?php
  2. $login="login1";
  3. $pass="haslo1";
  4. $login2="ja2";
  5. $pass2="haslo2";
  6. ?>

to cos da? czy źle
devnul
źle! czytaj to co ci wyzej podałem, tylko ze zrozumieniem
szygmon
  1. <?php
  2. $a = array('login1', 'login2', 'login3');
  3. $b = array('$login', '$login', '$login');
  4. $c = array_combine($a, $b);
  5.  
  6. print_r($c);
  7. ?>


coś takiego? bo już nie mam pojęcia jak to zrobić. Tam nic nie pisze. wszystko to jakieś kody nic nie mowiące o hasłach

a jeśli nie, to moze ktoś mi powie, jak usunąc logowanie? aby nie trzeba bylo sie logować zeby cos napisać?


  1. <?php
  2. return("$return");
  3. }
  4.  
  5. function check_userform($login, $pass, $pass_confirm, $podpis, $no=""){
  6. if($pass!=$pass_confirm) return("hasła są różne");
  7. $users = file("users.inc.php");
  8. unset($users[0]);
  9. unset($users[count($users)]);
  10. reset($users);
  11. foreach($users as $user){
  12. $user = explode("||", $user);
  13. if($user[0]!=$no){
  14. if($user[1] == $login) return("taki login już istnieje");
  15. if($user[3] == $podpis) return("użytkownik o takim podpisie już istnieje");
  16. }
  17. }
  18. return(TRUE);
  19. }
  20. ?>


czy moze coś z tego?
devnul
a co to ma być:
  1. <?php
  2. $a = array('login1', 'login2', 'login3');
  3. $b = array('$login', '$login', '$login');
  4. ?>


co ty zapisujesz do drugiej tablicy?

kombinujesz jak koń pod góre
  1. <?php
  2. $user[]=array("name"=>"kaziu","pass"=>"alamakota");
  3. $user[]=array("name"=>"jasiu","pass"=>"kotmaale");
  4. ?>
i kombinuj
szygmon
  1. <?php
  2. $user[1]=array("name"=>"kaziu","pass"=>"alamakota');
  3. $user[2]=array("name"=>"jasiu","pass"=>"kotmaale');
  4. ?>


będzie działać? a to dać do config.php, tak?

  1. <?php
  2. // www.webcoding.shost.pl Komponenty, skrypty i porady dla webmasterów!
  3.  $pass="*****"; // haslo do panelu
  4.  $login="admin"; // login do panelu
  5.  $email="p******p@wp.pl"; // adres e-mail z ktorego beda wysyalne nowosci
  6. ?>


aktualnie takie coś mam w configu

  1. <?php
  2. include("config.php");
  3. // Sprawdzenie czy podane hasło i login sa dobre i wysłanie ciasteczka do komputer
    a
  4. if (($login2==$login)&&($haslo==$pass)) {
  5. setcookie("zalogowany", md5($pass), time()+3600);
  6. header("Location: $HTTP_REFERER");
  7. echo "Witaj $login Udało ci sie poprawnie zalogować! <a href="$HTTP_REFERER">Powrót</a>";
  8. }
  9. // w przypadku złych danych wyświetli komunikat:
  10. else
  11. echo "<span style="color: #FF0000; text-align: center;">Złe hasło lub login! <a onClick="history.back()">Wstecz</a></span>";
  12. ?>


to co tutaj bym musiał zmienić?


  1. <?php
  2. include("config.php");
  3. // Sprawdzenie czy podane hasło i login sa dobre i wysłanie ciasteczka do komputer
    a
  4. if (($login2==$user)&&($haslo==$user)) {
  5. setcookie("zalogowany", md5($user), time()+3600);
  6. header("Location: $HTTP_REFERER");
  7. echo "Witaj $login Udało ci sie poprawnie zalogować! <a href="$HTTP_REFERER">Powrót</a>";
  8. }
  9. // w przypadku złych danych wyświetli komunikat:
  10. else
  11. echo "<span style="color: #FF0000; text-align: center;">Złe hasło lub login! <a onClick="history.back()">Wstecz</a></span>";
  12. ?>


na tak?
devnul
dobra dam ci rozwiązanie - prostsze

  1. <?php
  2. $user['admin']="tajne_haslo";
  3. $user['jas']="haslo_jasia";
  4.  
  5. if (isset($user[$_POST['login']]) && $user[$_POST['login']]==$_POST['haslo']){
  6. echo "zalogowano";
  7. } else {
  8. echo "zly uzytkownik lub haslo";
  9. }
  10. ?>


a zamiast cookie wykorzystaj sesje
szygmon
ok. już wszystko działą! Dzieki bardzo. nawet nie wiesz jak mi pomogłeś! dzieki, dzieki bardzoo!

a moze wie ktoś jak zrobić, aby pliki które edytuje w tym textera to były do wyboru z jakiegoś katalogu? np takie menu rozwijane i tam by sie wybierało jaki plik edytować?

  1. <?php
  2. $fd = fopen ("aktualnosci.txt", "r");
  3. $pokaz = fread ($fd, filesize ("aktualnosci.txt"));
  4.  
  5. echo "<form action='zapisz.php' method='post'>
  6. <textarea name='tekst' rows='10' cols='43'>
  7. $pokaz
  8. </textarea>
  9. <p><input type='submit' value='zapisz'/></form></p>";
  10. ?>


  1. <?php
  2. $text = $_POST['tekst'];
  3. // tekst może rownież pochodzić z formularza
  4. if ($fp = @fopen("aktualnosci.txt","w")) {
  5.  // operacje na pliku
  6. flock($fp, 2); 
  7. // zapisanie danych do pliku
  8. fwrite($fp, $text);
  9. // odblokowanie pliku
  10. flock($fp, 3); 
  11. // zamknięcie pliku
  12. fclose($fp); 
  13. echo "Zapisano poprawnie";
  14. }
  15. else echo "Wystapił błąd w zapisie pliku!";
  16. ?>
devnul
można, tym razem poczytaj o opendir
szygmon
  1. <?php
  2. $dir = "/dane/";
  3.  
  4. // Otwarcie prawidłowego katalogu i pobranie jego zawartości
  5. if (is_dir($dir)) {
  6. if ($dh = opendir($dir)) {
  7. while (($file = readdir($dh)) !== false) {
  8. echo "filename: $file : filetype: " . filetype($dir . $file) . "n";
  9. }
  10. closedir($dh);
  11. }
  12. }
  13. ?>


tutaj pobiera pliki, a jak zrobić, żeby je wyświetlił a rozwijanym menu?
devnul
jest coś takiego jak
  1. <select name="pole"><option value="cos">/cos</option></select>

rusz troche głową
Morkai
CSS
Kod
<style type="text/css">
    ul.menu { display: none; }
</style>
JS
Kod
<script type="text/javascript">
    function toggleMenu( id )
    {
        var menuEl = document.getElementById( id );
        
        menuEl.style.display = !menuEl.style.display || ( menuEl.style.display == 'none' ) ? 'block' : 'none';
    }
</script>
PHP 5
  1. <?php
  2.  
  3. /**
  4.  * @param string $id ID elementu ul menu
  5.  * @param string $path Sciezka do katalogu z plikami
  6.  * @param string $allowedExts Tablica dozwolonych rozszerzen plikow
  7.  */
  8. function renderMenu( $id, $path, array $allowedExts = array( 'txt' ) )
  9. {
  10. $result = '<ul class="menu" id="' . $id . '">';
  11.  
  12. /**
  13.  * Upewnij sie, ze sciezka konczy sie backslashem
  14.  */
  15. $path = rtrim( $path, '/' ) . '/';
  16.  
  17. /**
  18.  * Zamien tablice z dozwolonymi rozszerzeniami plikow
  19.  * na ciag znakow do wyrazenia regularnego
  20.  */
  21. $allowedExts = implode( '|', $allowedExts );
  22.  
  23. /**
  24.  * Iteruj po zawartosci katalogu ze sciezki
  25.  */
  26. foreach ( new DirectoryIterator( $path ) AS $SplFileInfo )
  27. {
  28. /**
  29.  * Sprawdz czy dany element jest plikiem
  30.  * o dozwolonym rozszerzeniu
  31.  */
  32. if ( $SplFileInfo->isFile() && preg_match( '/^.*?.(' . $allowedExts . ')$/i', $SplFileInfo->getFilename() ) )
  33. {
  34. $result .= '<li><a href="?edit=' . $SplFileInfo->getFilename() . '">' . $SplFileInfo->getFilename() . '</a></li>';
  35. }
  36. }
  37.  
  38. $result .= '</ul>';
  39.  
  40. return $result;
  41. }
  42.  
  43. print renderMenu( 'menu', '.' );
  44. ?>
PHP 4
  1. <?php
  2.  
  3. function renderMenu( $id, $path, $allowedExts = array( 'txt' ) )
  4. {
  5. $result = '<ul class="menu" id="' . $id . '">';
  6.  
  7. $path = rtrim( $path, '/' ) . '/';
  8.  
  9. $allowedExts = implode( '|', $allowedExts );
  10.  
  11. $Dir = dir( $path );
  12.  
  13. $Dir->read();
  14. $Dir->read();
  15.  
  16. while ( false !== ( $value = $Dir->read() ) )
  17. {
  18. if (!is_dir( $path . $value ) && preg_match( '/^.*?.(' . $allowedExts . ')$/i', $value ) )
  19. {
  20. $result .= '<li><a href="?edit=' . $value . '">' . $value . '</a></li>';
  21. }
  22. }
  23.  
  24. $Dir->close();
  25.  
  26. $result .= '</ul>';
  27.  
  28. return $result;
  29. }
  30.  
  31. print renderMenu( 'menu', '.', array( 'php' ) );
  32. ?>


A co do wcześniejszych postów, jeżeli masz PHP5 to zastąp odczytywanie/zapisywanie danych z/do pliku funkcjami file_get_contents" title="Zobacz w manualu PHP" target="_manual/file_put_contents" title="Zobacz w manualu PHP" target="_manual
szygmon
Plik edit_home.php
  1. <head><meta http-equiv="Content-type" content="text/html; charset=windows-1250" /></head>
  2. <?php
  3. $fd = fopen ("home.php", "r");
  4. $pokaz = fread ($fd, filesize ("home.php"));
  5.  
  6. echo "<form action='zapisz_home.php' method='post'>
  7. <textarea name='tekst' rows='21' cols='78'>
  8. $pokaz
  9. </textarea>
  10. <p><input type='submit' value='zapisz'/></form>";
  11. ?>


Plik zapisz_home.php
  1. <?php
  2. $text = $_POST['tekst'];
  3. // tekst może rownież pochodzić z formularza
  4. if ($fp = @fopen("home.php","w")) {
  5.  // operacje na pliku
  6. flock($fp, 2); 
  7. // zapisanie danych do pliku
  8. fwrite($fp, $text);
  9. // odblokowanie pliku
  10. flock($fp, 3); 
  11. // zamknięcie pliku
  12. fclose($fp); 
  13. echo "Zapisano poprawnie <br><br><a href='http://www.rozrywka.pk.hostsms.pl/dane/log.php'>Panel administracyjny</a>";
  14. }
  15. else echo "Wystapił błąd w zapisie pliku!";
  16. ?>


Co mam zmienić w kodzie, aby plik zapisał się poprawnie? Skrypt był uożony dla pliku txt, a jak zmieniłem go na php i tam coś napisałem to wyszło takie cośik
  1. <div class=\"tresc\">
  2. <center><big>Witaj w serwisie <b>ROZRYWKA > PowerKomp</b></big></center>
  3.  
  4. </div>
  5. <div align=\"right\"><img src=\"images/cien.gif\" alt=\"\" /></div>
  6. <div class=\"tresc\">
  7. Tutaj znajdziesz linki do najlepszych stron, które szybko <b>poprawią Ci humor</b><br>
  8. Masz także łatwy dostęp do <b>gier!</b> Z łatwością włączysz sobie odpowiednią grę online, w odpowiedniej kategorii.<br>
  9. Zapraszamy do zabawy!
  10.  
  11. </div>
  12. <div align=\"right\"><img src=\"images/cien.gif\" alt=\"\" /></div>
  13.  
  14. </div>


Pomóżcie
yaotzin
do usunięcia tych slashy ( \ ) użyj tej funkcji

  1. <?php
  2. ?>


nie wiem czy oto ci chodziło.

A rzecz druga to mam ogólne zastrzeżenia do twojego topica, dlaczego zakładasz go i czekasz na rozwiązanie?
Jak zauważyłem i chyba słusznie jesteś całkowicie zielony z programowania albo udajesz. skoro chcesz się nauczyć programować usiądź przed kompem wejdź na www.google.pl i szukaj i szukaj i szukaj przy okazji próbuj rozwiązywać sam zadania. a nie proś innych o gotowe rozwiązania bo tak sie niczego nie nauczysz.
szygmon
a gdzie mam ją kleić :roll2:

już mam
wielkie dzięki!!!!!

a czy można zrobić takie coś że wyświetlą sie pliki graficzne w jakimś folderze z podglądem?
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.