Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skracanie kodu w php
Forum PHP.pl > Forum > Przedszkole
deme
Witam, mam pewien problem ze skracaniem kodu w php. Dokladnie chodzi mi o skrypt, ktorego nie moge znalezc. Potrzebuje cos takiego, ze gdy wkleje to na strone glowna to bede mogl przestawic linki w menu i beda mialy np taki wyglad: index.php?id=5 czyli po prostu zakladam folder w katalogu ze strona w ktorej kazda z podstron to zwykly plik tekstowy a kiedy wlacze jakis link z menu, wtedy to, co bylo w tym przykladowym pliku tekstowym wkleja sie poprzez include do reszty strony.

Nie wiem czy jasno to powiedzialem, jesli ktokolwiek mnie zrozumial to prosilbym o taki skrypt + krotka notka jak to wszystko sobie ustawic po kolei.

Z gory dziekuje za pomoc smile.gif

Pozdrawiam!
elnino.pl
Nie dobijaj! Nawet dzisiaj ktoś o to pytał. Użyj googli lub wyszukiwarki!

EDIT:
Sorki, jesteś nowy. Teraz zauważyłem. Ale i tak poszukaj.
deme
Przepraszam, ale zapomnialem dopisac, ze NIE WIEM jak sie to fachowo nazywa, wiec jak mam tego szukac..?

Pozdrawiam
strife
  1. <?php
  2. $arrFiles = array( 'news' => 'news.php', 'articles' => 'articles.php' ); 
  3. if ( isset ( $arrFiles[ $_GET['action'] ] ) ) 
  4. { 
  5. include_once( $arrFiles[ $_GET['action'] ] ); 
  6. } 
  7. else 
  8. { 
  9. include_once( $arrFiles['news'] ); 
  10. }
  11. ?>

http://biblioteka-php.be/gotowe-skrypty/za...nie-plikow.html
Żeby się nie powtarzać to dam adres do mojej beta strony winksmiley.jpg
deme
Eee...

  1. <?php
  2. Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/lib/php/actions/default.action.php) is not within the allowed path(s): (/tmp/) in /klub/vmail/pulstar/.www/strona/index.php on line 25
  3.  
  4. Warning: main(actions/default.action.php) [function.main]: failed to create stream: Operation not permitted in /klub/vmail/pulstar/.www/strona/index.php on line 25
  5.  
  6. Warning: main() [function.main]: Failed opening 'actions/default.action.php' for inclusion (include_path='.:/usr/lib/php') in /klub/vmail/pulstar/.www/strona/index.php on line 25
  7. ?>


cos mi nie wyszlo :/
elnino.pl
http://forum.webhelp.pl/faqforum.php?f=1#31 <- tu masz ładnie opisany przykład
deme
ok zadzialalo, dzieki, ale powiedz mi jeszcze jak ustawic tym samym skryptem, zeby dana strona wyswietlala sie od razu na starcie? Bedzie to podstrona z systemem newsow. Jak wchodze teraz na strone i srodek jest zupelnie czysty, dopiero gdy wybiore "index" w menu, wyswietlaja sie newsy. Wie ktos moze jak to ustawic?

pozdrawiam!
elnino.pl
Kod
default:
        include ("witaj.html");

Tutaj masz opcję domyślną.
deme
Tak, zadzialalo, ale nie wiem dlaczego, ale w tym skrypcie zaraz pod domyslna strona ustawiona mam "redakcje" i na stronie glownej (glowna.php) pojawia sie to samo co w (redakcja.php)... :/ Wiesz moze o co chodzi? A jesli usune ze skryptu redakcje to 3 w kolejnosci jest plik (linki.php) i gdy nie ma redakcji, na stronie glownej pojawia sie zawartosc linkow... :/

A drugi problem dotyczy systemu newsow B-News (autorstwa BTM), kiedy dodaje komentarz pojawia sie taki blad:

  1. <?php
  2. Warning: gethostbyaddr() [function.gethostbyaddr]: Address is not a valid IPv4 or IPv6 address in /klub/vmail/pulstar/.www/strona/btools/news/komentarze/koment.php on line 86
  3. ?>


Wie ktos o co chodzi?

Z gory dziekuje za pomoc!
elnino.pl
Pamiętaj, żeby default było na końcu (lub dodaj mu "break;").

Jeśli chodzi o 2 problem. Wklej nam plik, w którym otrzymujesz błąd. Nazwę masz w komunikacie.
deme
W pierwszym faktycznie wystarczylo dodac break; smile.gif dziekuje.

A to jest caly kod pliku koment.php :


  1. <?
  2. // dopisujemy do pliku
  3. extract($HTTP_POST_VARS);
  4. extract($HTTP_GET_VARS);
  5. global $kid;
  6. umask(0);
  7.  
  8. if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
  9. {
  10. $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
  11. }
  12. else 
  13. {
  14. $ip=$REMOTE_ADDR; 
  15. } 
  16.  
  17. if ($komentarz_tresc)
  18. {
  19. $postdate=mktime();
  20. $komentarz_tresc=cenzura($komentarz_tresc);
  21. $komentarz_nick=cenzura($komentarz_nick);
  22.  
  23. if (file_exists("btools/news/komentarze/".$HTTP_GET_VARS["kid"].".php"))
  24. {
  25. $temp=file("btools/news/komentarze/".$HTTP_GET_VARS["kid"].".php");
  26. $ile=count($temp);
  27. $ile--;
  28. $temp=explode("<~>",$temp[$ile]);
  29. // sprawdzamy kto ostatni postował ...
  30. $temp[3]=chop($temp[3]);
  31. // zamieniamy date z formatu 'ludzkiego' na UNIX
  32. $temp1=explode (" ", $temp[0]);
  33. $godz=explode(":",$temp1[0]);
  34. $dni=explode("-",$temp1[1]);
  35. $nowa_data="$dni[2]$dni[1]$dni[0]$godz[0]$godz[1]$godz[2]";
  36. $nowa_data=$nowa_data+30;
  37. if ($temp[3]==$ip)
  38. {
  39. if ($postdate<=$nowa_data) 
  40. {
  41. echo "<center><b>Kontrola floodowania aktywna.<br>By dodać nowy komentarz poczekaj 30 sekund od dodania ostatniego !</b></center><br>";
  42. $do_not_add=1;
  43. }
  44. }
  45. }
  46. if (!$do_not_add)
  47. {
  48. if (!$komentarz_nick)$komentarz_nick="Anonim";
  49. $plik=fopen ("btools/news/komentarze/".$HTTP_POST_VARS["kid"].".php","a+");
  50. $komentarz_tresc=HTMLSpecialChars($komentarz_tresc);
  51. $komentarz_tresc=ereg_replace("n","<br>",$komentarz_tresc);
  52. $komentarz_nick=HTMLSpecialChars($komentarz_nick);
  53. $date=mktime();
  54. fwrite ($plik,"$date<~>$komentarz_nick<~>$komentarz_tresc<~>$ipn");
  55. fclose ($plik);
  56. chmod ("btools/news/komentarze/".$HTTP_POST_VARS["kid"].".php",0755);
  57. echo "<center><font face=verdana size=2>Komentarz dodany !</font></center>";
  58. }
  59. }
  60.  
  61. // wczytujemy istniejace komentarze ( o ile jakies )
  62.  
  63. if (file_exists('btools/news/komentarze/'.$kid.'.php'))
  64. {
  65. echo '<center><table width="100%"><tr><td width="100%">';
  66. $file=file('btools/news/komentarze/'.$kid.'.php');
  67. foreach($file as $komentarz)
  68. {
  69. $komPointer++;
  70. $komentarz=explode("<~>",$komentarz);
  71. $date = date($dateFormat ,$komentarz[0]);
  72. // $komentarz[2]=stripslashes($komentarz[2]);
  73. echo '<tr><td width="100%">';
  74. // zabezpiecznie przed rozciaganiem tabelek
  75. $kome=explode(' ',$komentarz[2]);
  76. for($lKome=0;$lKome<count($kome);$lKome++)
  77. {
  78. if (strlen($kome[$lKome])>'80')
  79. {
  80. $kome[$lKome] = wordwrap($kome[$lKome], 80, ' ', 1);
  81. }
  82. }
  83. $skin=file('btools/news/kom_theme.php');
  84. $skin = join(' ', $skin);
  85. $kome=stripslashes(join(' ',$kome));
  86. $host=gethostbyaddr(chop($komentarz[3]));
  87. $host=explode('.',$host);
  88. $host[0]='[ukryty]';
  89. $host=join('.',$host);
  90. if ($host=='[ukryty]') $host = '[no REVDNS - IP loged instead]';
  91. $skin=str_replace("{kid}",$kid,$skin);
  92. $skin=str_replace("{n}",$komPointer,$skin);
  93. $skin=str_replace("{ip}",$host,$skin);
  94. $skin=str_replace("{data}",$date,$skin);
  95. $skin=str_replace("{autor}",$komentarz[1],$skin);
  96. $skin=str_replace("{tresc}",$kome,$skin);
  97. echo $skin;
  98. unset($skin);
  99. }
  100. echo '</td></tr></table></center>';
  101. }
  102. else
  103. {
  104. echo '<center><font face="verdana" size="2">Ten news nie został jeszcze skomentowany, zapraszamy do dodania swojego komen
    tarza!</font></center><br><br>'
    ;
  105. }
  106.  
  107. // pokazujemy formularz komentowania
  108. $ruri = $REQUEST_URI;
  109. if (eregi("&",$ruri)) $mark = "&";
  110. else $mark = "?";
  111. echo '<br><br<center>
  112. <table width="80%"><tr valign="top"><td width="13%"><font face="verdana" size="1">
  113. Nick : </font></td><td width="87%"><form action="'.$ruri.'" method="post"><input type="text" name="komentarz_nick" size="20"></td></tr><tr valign="top"><td><font face="verdana" size="1">
  114. Tre&para;ć :</font></td><td><textarea cols="20" rows="5" name="komentarz_tresc"></textarea>
  115. <input type="hidden" name="kid" value="'.$kid.'">
  116. </td></tr></table>
  117. <small><b>notka</b> : entery s&plusmn; automatycznie zamieniane na nowe linie</small><br><input type="submit" value=" Dodaj komentarz >> "></form></center>';
  118. ?>
elnino.pl
Linię 14 zamień na:
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. ?>


Linię 86 zamień na:
  1. <?php
  2. $host = @gethostbyaddr(chop($komentarz[3]));
  3. ?>


Oczywiście bez "<?php" i "?>"
deme
Pomoglo, dziekuje bardzo : Widac, ze znasz sie na rzeczy :]
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.