Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] System zarządzania treścią problem
Forum PHP.pl > Forum > Przedszkole
bar25
Witam wszystkich.
Mam problem z tą aplikacją , kod źródłowy pochodzi z ksiązki Luka Wellinga i Laury Thomson" php i MySQL programowanie sieci Web"
Wrzuciłem kod źródłowy z płytki na serwer , zmieniłem nazwę bazy, uzytkownika i hasło i poza pierwsza stroną wszędzie krzaki. Może ktoś juz próbował cos z tym robic, potrzebuę tego na projekt na jutro , siedze trzeci dzień i już skończyły mi sie pomysły. Może zaczne od pierwszego
Niedziałające linki na 1 stronie. Powód
  1. <?php
  2. if (!$page) {
  3. header("Location: headlines.php");
  4. }
  5. ?>

czyi cos nie tak ze zmienna $page , ale nie moge dojśc co. Jkaby ktos się zainteresował problemem byłbym wdzięczny.
Pozdrawiam
Wieviór
  1. <?
  2. if (!$page) // ! - jeżeli nie ma zmiennej $page to:
  3. { 
  4. header("Location: headlines.php"); // wstaw w <head></head> zawartość headlines.php
  5. exit; // skończ skrypt, czyli nie wyświetlaj nic co jest niżej.
  6. }
  7. ?>
bar25
Dzieki, ale wiem , co to oznacza, chodziło mi raczej o to dlaczego brakuje tej zmiennej, lub inczej jak zrobić aby po kliknięciu w link, zmienna przyjęla wartość dzieki której będzie wiadomo co skrypt ma odczytac z bazy i wyswietlic.
  1. <<?php ob_start(); 
  2.  
  3.  
  4. include "include_fns.php";
  5. include "header.php";
  6.  
  7. $conn = db_connect();
  8.  
  9. if (!$page) {
  10. header("Location: headlines.php");
  11. }
  12.  
  13. $sql = "select * from stories 
  14. where page = '$page'
  15. and published is not null
  16. order by published desc";
  17. $result = mysql_query($sql, $conn);
  18.  
  19. while ($story = mysql_fetch_array($result)) {
  20. print "<H2>".$story[headline]."</H2>";
  21. if ($story[picture]) {
  22. $size = getImageSize($story[picture]);
  23. $width = $size[0];
  24. $height = $size[1];
  25. print "<IMG SRC="$story[picture]" HEIGHT=$height WIDTH=$width ALIGN=LEFT>";
  26. }
  27. print $story[story_text];
  28. $w = get_writer_record($story[writer]);
  29. print "<br><FONT SIZE=1>";
  30. print $w[full_name].", ";
  31. print date("M d, H:i", $story[modified]);
  32. print "</FONT>";
  33. }
  34.  
  35.  
  36. include "footer.php";
  37.  
  38. ?>

to jest cały skrypt który jest uruchamiany po kliknięciu w link.

  1. <?php
  2. <TITLE>SuperFastOnlineNews</TITLE>
  3. <TABLE BORDER=0 HEIGHT=100% WIDTH=100% CELLSPACING=0>
  4. <TR>
  5. <TD BGCOLOR="orange" COLSPAN=2 HEIGHT=10 WIDTH=100%>&nbsp;</TD>
  6. </TR>
  7. <TR>
  8. <TD VALIGN=TOP HEIGHT=100% BGCOLOR="orange">
  9. <IMG SRC="logo.gif" WIDTH=100 HEIGHT=50>
  10. <br>
  11. <FONT FACE="arial, sans-serif" SIZE=2>
  12. <A HREF="headlines.php">Headlines</A>
  13. <br>
  14. <br>
  15. <A HREF="page.php?page=news">News</A>
  16. <br>
  17. <A HREF="page.php?page=sport">Sport</A>
  18. <br>
  19. <A HREF="page.php?page=weather">Weather</A>
  20. </FONT>
  21. </TD>
  22. <TD VALIGN=TOP WIDTH=100%>
  23. <FONT FACE="arial, sans-serif">
  24. <H1>SuperFastOnlineNews</H1>
  25. ?>

Ten jest zawarty w porzednim
Niewiem skąd ma sie wogóle wziąć ta zmienna.
Naprqwdę powazne problemy dopiero się zaczna.. ktoś ma jkaies pomysły?
Ludvik
Cytat(Wieviór @ 3.09.2006, 16:28:15 ) *
  1. <?
  2. if (!$page) // ! - jeżeli nie ma zmiennej $page to:
  3. { 
  4. header("Location: headlines.php"); // wstaw w <head></head> zawartość headlines.php
  5. exit; // skończ skrypt, czyli nie wyświetlaj nic co jest niżej.
  6. }
  7. ?>

To nie działa tak... Zacznijmy od drugiej linijki. Nic tam nie sprawdza czy zmienna jest czy jej nie ma. Zostanie wyrzucony warning/notice (nie pamiętam który...). Ta instrukcja sprawdza czy zmienna ma wartość logicznego fałszu, dokonując wcześniej rzutowania na typ bool.

Funkcja header nie ma nic wspólnego ze znacznikiem <head>. Przekierowuje ona klienta to kolejnej strony poprzez wysłanie nagłówka http. Klient wysyła kolejne żądanie, tym razem o plik headlines.php.

Poza tym, ten skrypt jest marnie napisany i przy dzisiejszych konfiguracjach serwerów nie ma prawa działać. Korzysta z register_globals, co jest niezalecane. Zmienna $page bierze się z żądania GET. Dzisiaj używamy tablic superglobalnych ($_GET, $_POST...).
bar25
Więc czeka mnie więcej pracy niż myslałem, może pomoże mi ktoś zmodyfikowac ten skrypt, tak aby działał, ponieważ muszę już zrobic cos na podstawie tego ,a sam to raczej mam marne szanse.
Pozdrawiam
revyag
Proszę używać odpowiedniego bbcode i zmienić nazwę tematu na zgodną z zasadamin panującymi na forum przedszkole.
Temat: Tematyka i zasady panujace na forum Przedszkole
bar25
Ominąłem to jakoś, ale teraz trafiłem na cos , z czym sobie na pewno nie poradzę, wiec baaardzo prosze o pomoc. sadsmiley02.gif

Oto skrypt, który po zalogowaniu i wyswietleniu artykułów przez zalogowanego autora, powinien umozliwiać edycje oraz dodawanie nowych artykułów, jednak wyswitela sie tylko formularz, nie odczytuje z bazy żadnch artykułów, a przy próbie dopisania , wyskakuje "nie można wyswietlic strony" Czasami do bazy dopisze sie pusty rekord, mimo wpisanych wartości w formularzu.

  1. <?php
  2. include "include_fns.php";
  3. if (isset($story))
  4. $s = get_story_record($story);
  5. ?>
  6. <FORM ACTION="story_submit.php" METHOD=POST ENCTYPE="multipart/form-data">
  7. <INPUT TYPE=HIDDEN NAME="story" VALUE="<?php print $story;?>">
  8. <INPUT TYPE=HIDDEN NAME="destination" VALUE="<?php print $HTTP_REFERER;?>">
  9. <TABLE>
  10. <TR>
  11. <TD ALIGN=CENTER>Headline<TD>
  12. </TR>
  13. <TR>
  14. <TD><INPUT SIZE=80 NAME="headline"
  15. VALUE="<?php print $s[headline];?>"></TD>
  16. </TR>
  17. <TR>
  18. <TD ALIGN=CENTER>Page<TD>
  19. </TR>
  20. <TR>
  21. <TD ALIGN=CENTER><?php print query_select("page", 
  22.  "select p.code, p.description 
  23. from pages p, writer_permissions w
  24. where p.code = w.page
  25. and w.writer = '$auth_user'", $s[page]);?></TD>
  26. </TR>
  27.  
  28. <TR>
  29. <TD ALIGN=CENTER>Story text (can contain HTML tags)</TD>
  30. </TR>
  31. <TR>
  32. <TD><TEXTAREA COLS=80 ROWS=7 NAME="story_text"
  33.  WRAP=VIRTUAL><?php print $s[story_text];?></TEXTAREA>
  34. </TD>
  35. </TR>
  36.  
  37. <TR>
  38. <TD ALIGN=CENTER>Or upload HTML file</TD>
  39. </TR>
  40. <TR>
  41. <TD ALIGN=CENTER><INPUT TYPE=FILE NAME="html" SIZE=40></TD>
  42. </TR>
  43.  
  44. <TR>
  45. <TD ALIGN=CENTER>Picture</TD>
  46. </TR>
  47. <TR>
  48. <TD ALIGN=CENTER><INPUT TYPE=FILE NAME="picture" SIZE=40></TD>
  49. </TR>
  50.  
  51. <?php 
  52. if ($s[picture]) {
  53. $size  = getImageSize($s[picture]);
  54. $width = $size[0];
  55. $height = $size[1];
  56. ?>
  57. <TR>
  58. <TD ALIGN=CENTER>
  59. <IMG SRC="<?php print $s[picture];?>
  60. WIDTH=<?php print $width;?> HEIGHT=<?php print $height;?>>
  61. </TD>
  62. </TR>
  63. <?php } ?>
  64.  
  65.  
  66. <TR>
  67. <TD ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="Submit"></TD>
  68. </TR>
  69.  
  70. </TABLE>
  71. </FORM>


a to skrypt submit_story , który powinien dopisywac artykuł po wcisnieciu Submit,

  1. <?php
  2.  
  3. // story_action.php
  4. // add / modify story record
  5.  
  6. include "include_fns.php";
  7.  
  8. $conn = db_connect();
  9.  
  10. $time = time();
  11.  
  12. if ( ($html) && (dirname($html_type) == "text") ) {
  13. $fp = fopen($html, "r");
  14. $story_text = addslashes(fread($fp, filesize($html)));
  15. fclose($fp);
  16. }
  17.  
  18.  
  19. if ($story) {  // It's an update
  20. $sql = "update stories
  21. set headline = '$headline', 
  22. story_text = '$story_text',
  23. page = '$page',
  24. modified = $time
  25. where id = $story";
  26. }
  27. else {  // It's a new story
  28. $sql = "insert into stories 
  29. (headline, story_text, page, writer, created, modified)
  30. values 
  31. ('$headline', '$story_text', '$page', '$auth_user', $time, $time)";
  32. }
  33.  
  34. $result = mysql_query($sql, $conn);
  35.  
  36. if (!$result) {
  37. print "There was a database error when executing <PRE>$sql</PRE>";
  38. }
  39.  
  40. if ( ($picture) && ($picture != "none") ) {
  41.  
  42. if (!$story)
  43. $story = mysql_insert_id();
  44.  
  45. $type = basename($picture_type);
  46.  
  47. switch ($type) {
  48. case "jpeg":
  49. case "pjpeg":  $filename = "pictures/$story.jpg";
  50. copy ($picture, $filename);
  51. $sql = "update stories
  52. set picture = '$filename'
  53. where id = $story";
  54. $result = mysql_query($sql, $conn);
  55. break;
  56. default: print "Invalid picture format: $picture_type";
  57. }
  58. }
  59.  
  60. header("Location: $destination");
  61.  
  62. ?>

Posiedzę na pewno nad tym przez nocke wiec jakby ktoś mia jakiś pomysł to prosze pisac
Pozdrawaim
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.