Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS][PHP]Dodawanie "Postów" na własną stronę
Forum PHP.pl > Forum > Przedszkole
Saldenford
Witajcie, sprawa wygląda tak. Chcę aby przez podstronę x.php (przykład) można było dodawać na index.html tak jakby post. Chodzi mi o to, żeby na x.php był formularz, składający się z 4 okienek. W każde okienko ma wejść tekst. I tak, tekst z pierwszego okienka chcę aby był wrzucany na index.html jako
Kod
<div class="title">TEKST Z 1 OKIENKA</div>

, z 2 jako
Kod
<div class="metadata">Teskt z 2 okienka</div>

, w 3 ma byc link do obrazka więc chcę aby wyglądało to mniej więcej
Kod
<div class="image">
<center><img src="Link do obrazka, czyli tekst z okienka 3" /></center>
</div>

, z 4 tak samo jak z 2.
Zdaję sobie sprawę, że proszę o dużo, ale wiem również że 90% użytkowników tego forum robi takie żeczy dla sportu a chciałbym zrozumieć jak to działa. Proszę o pomoc smile.gif



b4rt3kk
Brakuje w tym poście pytania i dosyć nieprecyzyjnie to opisałeś.

Prawdopodobnie chcesz użyć bazy danych do przechowywania tych wartości? Więc skrypt x.php odczytuje dane z form i zapisuje wartości do bazy, natomiast index.php je zwyczajnie odczytuje. Koniec filozofii.
robertpiaty
W pliku .html nie użyjesz PHP więc nie odczytasz w nim wartości z bazy. Chyba że używasz mod_rewrite i to co widzimy w linku nie oznacza że jest odpowiednikiem pliku na serwerze smile.gif
Saldenford
@b4rt3kk dokładnie czegoś takiego potrzebuję.
b4rt3kk
Cytat(Saldenford @ 12.02.2015, 22:17:12 ) *
@b4rt3kk dokładnie czegoś takiego potrzebuję.


No to jak już znamy problem to pokaż jakiś kod php, który do tej pory stworzyłeś. Bez tego ani rusz.
Saldenford
Więc tak jest sobie to x.php gdzie chcę mieć ten formularz
  1. <?php include("config.php");
  2. $nick = $_SESSION['nick'];
  3. $haslo = $_SESSION['haslo'];
  4. if ((empty($nick)) AND (empty($haslo))) {
  5. echo '<br>Nie byłeś zalogowany albo zostałeś wylogowany<br><a href="index.php">Strona Główna</a><br>';
  6. }
  7. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  8. if (empty($user[id]) OR !isset($user[id])) {
  9. echo '<br>Nieprawidłowe logowanie.<br>';
  10. }
  11. // tresc dla zalogowanego uzytkownika
  12.  
  13.  
  14. ?>
  15.  
  16. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  17. <html>
  18. <head>
  19. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"/>
  20. <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
  21. <link rel="icon" type="image/png" href="img/favicon.ico"/>
  22. <title></title>
  23. </head>
  24. <body>
  25. <div class="container">
  26. <div class="gfx"><span></span></div>
  27. <div class="top">
  28. <br />
  29. <br />
  30. <br />
  31. <div class="navigation"> <a href="index.html">Główna</a> <a href="archiwum.html">Archiwum</a> <a href="Ud.php">Upload</a> <a href="logowanie.php" id="selected">Logowanie</a></div>
  32. <div class="header">
  33. <h1></h1>
  34. <p></p>
  35. </div>
  36. <div class="pattern"><span></span></div>
  37. </div>
  38. <div class="content">
  39. <div class="spacer"></div>
  40. <div class="item">
  41. ############FORMULARZ DO DODAWANIA##############
  42. <div class="title">Statystyki</div>
  43. <button onclick="location='wyloguj.php'" style="width: 119px; height: 29px">Wyloguj</button>
  44. <br />
  45. <br />
  46. <br />
  47. <br />
  48. <br />
  49. <br />
  50. </div>
  51. </div>
  52. </div>
  53. <div class="footer"><p><pre> </pre></p></div>
  54. </div>
  55. </body>
  56. </html>


i jest sobie index.html, oczywiscie jezeli trzeba zamienie go php
  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"/>
  2. <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
  3. <link rel="icon" type="image/png" href="img/favicon.ico"/>
  4. </head>
  5. <div class="container">
  6. <div class="gfx"><span></span></div>
  7. <div class="top">
  8. <br />
  9. <br />
  10. <br />
  11. <div class="navigation"> <a href="index.html" id="selected">Główna</a> <a href="archiwum.html">Archiwum</a> <a href="Ud.php">Upload</a> <a href="logowanie.php">Logowanie</a></div>
  12. <div class="header">
  13. <h1></h1>
  14. <p></p>
  15. </div>
  16. <div class="pattern"><span></span></div>
  17. </div>
  18. <div class="content">
  19. <div class="spacer"></div>
  20. <div class="item">
  21. ###############W TO MIEJSCE MAJA WCHODZIC DANE Z FORMULARZA#############33
  22. <div class="divider"></div>
  23. <br />
  24. <br />
  25. <br />
  26. <br />
  27. <br />
  28. <br />
  29. </div>
  30. </div>
  31. </div>
  32. <div class="footer"><p><pre> </pre></p></div>
  33. </div>
  34. </body>
  35. </html>
Raito
Tworzysz sobie w pliku x.php formularz, jeśli dane są wysłane i są poprawne to zapisujesz do bazy danych. W pliku index.php sprawdzasz, czy w bazie istnieją jakiekolwiek rekordy, które chcesz wyświetlić, jeśli tak, to w pętli je wyświetlasz.
Saldenford
To jak ma działać, to wiem. Potrzebuję kodu do tego bo nie jestem na razie w stanie samemu tego wymyślić.
Raito
Nikt ci tutaj całego gotowego kodu nie da, jeśli na tym ci zależy to polecam temat gotowe rozwiązania, ale musisz tam przygotować trochę $$$. Poczytaj o formularzach w php, pdo lub mysqli, dodawaniu do bazy danych, odbieraniu, bindowaniu, itp. lub weź gotowca z internetu.
Saldenford
Nie nie chodzi mi o gotowca, zrobilem "wrzucanie" potrzebych mi danych na serwer.
Wygląda to tak.

To jest tabela która znajduje się w bazie danych
  1. CREATE TABLE `posty` (
  2. `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `tytul` VARCHAR( 32 ) NOT NULL ,
  4. `nick` VARCHAR( 40 ) NOT NULL ,
  5. `link` VARCHAR( 200 ) NOT NULL ,
  6. PRIMARY KEY ( `id` )
  7. );


Tutaj dodaję informacje do formularzy i wysyłam je do bazy
  1. <?php include("configpost.php");
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4.  
  5. $akcja = $_GET['akcja'];
  6. if ($akcja == wykonaj) {
  7. //
  8. $link = substr(addslashes(htmlspecialchars($_POST['link'])),0,32);
  9. $tytul = substr(addslashes(htmlspecialchars($_POST['tytul'])),0,32);
  10. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  11. //kilka sprawdzen co do nicku i maila
  12. $komunikaty = '';
  13. //sprawdzenie co uzytkownik zle zrobil
  14. if($_POST['link'] = null && $_POST['tytul'] = null && $_POST['nick'] = null) {
  15. $komunikaty .= "Musisz wypełnić wszystkie pola!<br>"; }
  16. //jesli cos jest nie tak to blokuje rejestracje i wyswietla bledy
  17. if ($komunikaty) {
  18. <b>Rejestracja nie powiodła się, popraw następujące błędy:</b><br>
  19. '.$komunikaty.'<br>';
  20. } else {
  21. //jesli wszystko jest ok dodaje uzytkownika i wyswietla informacje
  22. mysql_query("INSERT INTO `posty` (tytul, nick, link) VALUES('$tytul','$nick','$link')") or die("Nie mogłem Cie zarejestrować!");
  23. echo 'Post zostal dodany!';
  24. }
  25. }
  26. ?>
  27.  
  28. <form method="post" action="upload.php?akcja=wykonaj">
  29. <table>
  30. <tr class="tlo-b"><td>Tytul:</td>
  31. <td><input maxlength="18" type="text" name="tytul" value="<?=$tytul?>"></td></tr>
  32. <tr class="tlo-b"><td>Nick:</td>
  33. <td><input type="text" name="nick" maxlength="50" value="<?=$nick?>"></td></tr>
  34. <tr class="tl0-b"><td>Link:</td>
  35. <td><input type="text" maxlength="200" name="link" value="<?=$link?>"></span></td></tr>
  36.  
  37.  
  38. <tr><td colspan="2" align="center"><input type="submit" value="Wyslij"></td></tr>
  39. </table></form>


Więc po dodaniu Nicku:Nick, Tytułu: Tytuł i Linku:Link wygląda to tak

id tytul nick link
1 Tytuł Nick Link

i teraz zaczynają się schody czyli dodanie tych informacji z bazy danych do indexu w takiej formie jak pisalem w 1 poscie.

Raito
Jaki problem? W wybranym miejscu dajesz sobie pętlę, w której wyciągasz dane z bazy. Może to wyglądać tak:
  1. $query = mysql_query("SELECT * FROM posty");
  2. while($row = mysql_fetch_assoc($query)){
  3. $tytul = $row["tytul"];
  4. $nick = $row["nick"];
  5. $link = $row["link"];
  6. echo "<div>$tytul</div>";
  7. echo "<div>$nick</div>";
  8. echo "<div>$link</div>";
  9. }


Poza tym polecam przerzucić się na PDO lub mysqli oraz używanie funkcji mysql_real_escape_string zamiast addslashes.
Saldenford
Dostałem taki o to błąd
Parse error: syntax error, unexpected T_VARIABLE in /virtual/s/m/smieszkowanie.ugu.pl/index.php on line 46
jest to
$query = mysql_query("SELECT * FROM posty");
Raito
Pokaż kod
Saldenford
  1. <?php
  2. include("configpost.php");
  3. ?>
  4. <html>
  5. <head>
  6. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"/>
  7. <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
  8. <link rel="icon" type="image/png" href="img/favicon.ico"/>
  9. <title></title>
  10. </head>
  11. <body>
  12. <div class="container">
  13. <div class="gfx"><span></span></div>
  14. <div class="top">
  15. <br />
  16. <br />
  17. <br />
  18. <div class="navigation"> <a href="index.html" id="selected">Główna</a> <a href="archiwum.html">Archiwum</a> <a href="Ud.php">Upload</a> <a href="logowanie.php">Logowanie</a></div>
  19. <div class="header">
  20. <h1></h1>
  21. <p></p>
  22. </div>
  23. <div class="pattern"><span></span></div>
  24. </div>
  25. <div class="content">
  26. <div class="spacer"></div>
  27. <div class="item">
  28. <? php
  29. $query = mysql_query("SELECT * FROM posty");
  30. while($row = mysql_fetch_assoc($query)){
  31. $tytul = $row["tytul"];
  32. $nick = $row["nick"];
  33. $link = $row["link"];
  34. echo "<div class="title">$tytul</div>";
  35. echo "<div class="metadata">$nick</div>";
  36. echo "<div class="body">";
  37. echo "<div class ="image">";
  38. echo "<center><img src="$link" /></center>";
  39. echo "</div>";
  40. echo "<div class="divider"></div>";
  41. >?
  42. <br />
  43. <br />
  44. <br />
  45. <br />
  46. <br />
  47. <br />
  48. </div>
  49. </div>
  50. </div>
  51. <div class="footer"><p><pre> </pre></p></div>
  52. </div>
  53. </body>
  54. </html>
  55.  
com
Nie:
<? php
a
<?php

tak samo nie
>?

a
?>

@Raito
co? tongue.gif
Raito
Widzisz już błąd? Nawet ci nie pokolorowało.
@com tongue.gif
Saldenford
Boże, taka głupota biggrin.gif
Juz poprawione za to
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /virtual/s/m/smieszkowanie.ugu.pl/index.php on line 51
To jest ta linia
echo "<div class="title">$tytul</div>";
Raito
Jeśli dajesz apostrof w apostrofie, używaj \.
com
Tylko nie dajesz wcięć ma być tak jak jest smile.gif
  1. echo <<<html
  2. <div class="title">$tytul</div>
  3. <div class="metadata">$nick</div>
  4. <div class="body">
  5. <div class ="image">
  6. <center><img src="$link" /></center>
  7. </div>
  8. <div class="divider"></div>
  9. html;


@up bez . bo wprowadzi w bład tzn robisz wtedy tak:
  1. echo "<div class=\"title\">$tytul</div>";
i analogiczne dla innych
Saldenford
Ok, pętelka działa tylko czy da się to zrobić w taki sposób, żeby wypisywała to tak jakby w odwrotnej kolejnosci? Bo teraz nowsze rekordy wypisuje na index.php pod starymi, a ja chciałbym, żeby nowsze były wyżej.
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.