Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ciągle nie rozwiązany problem
Forum PHP.pl > Forum > Gotowe rozwiązania
Martino
Tym razem problem wygląda nastyepująco:

Mam zainstalowanego Apacha 2.0.53 z php 4.4.2 i MySqula 4.0.26 pod WINDOWSEM XP, i pracuję na LOCALHOście testując swoją domową stronkę...

Wstawiłem Księge gości by Kness próbując dodać wpis wyświetla się komunikat ze skryptu "brak uprawnień"
(nie mogę też wejść do panelu administracyjnego, ale tu nic się nie wyświetla)

Po włączeniu raportowania błedów w php pojawiają sie następujące:

Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 10
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 13
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 16
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 19
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 22
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 25
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 28
Notice: Undefined variable: HTTP_USER_AGENT in C:\WebServer\Apache2\www\LIMON\ksiega2\includy\top_admin.inc on line 31

Fragment kodu odpowiedzialnegio(cały plik top_admin.inc):

  1. <?
  2. if(eregi("WebReaper","$HTTP_USER_AGENT")) {
  3. }
  4. elseif(eregi("WebCopier",$HTTP_USER_AGENT)) {
  5. }
  6. elseif(eregi("Offlin",$HTTP_USER_AGENT)) {
  7. }
  8. elseif(eregi("Gozil",$HTTP_USER_AGENT)) {
  9. }
  10. elseif(eregi("Teleport",$HTTP_USER_AGENT)) {
  11. }
  12. elseif(eregi("WebStri",$HTTP_USER_AGENT)) {
  13. }
  14. elseif(eregi("HTTrack",$HTTP_USER_AGENT)) {
  15. }
  16. elseif(eregi("WebZIP",$HTTP_USER_AGENT)) {
  17. }
  18. ?>


I jeszcze jeden błąd:
Notice: Undefined variable: HTTP_REFERER in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 12

Fragment kodu odpowiadającego(linie 10 do 13):

  1. <?php
  2. require("includy/config.inc");
  3. require("includy/top_admin.inc");
  4. if ($HTTP_REFERER!="$adr_ks/dodaj.php")
  5. die ("Brak uprawnień");
  6. ?>


Podejżewam że chodzi o nadawanie uprawnień plikom, ale nie mam pewności.
Wiem że istenieje coś takeigo jak "chmod pod windows": Właściwości pliku/zakładka zabezpieczenia/...
ale tu ustawiam co tylko potrafię i nic (MOŻE TUTAJ COŚ ŹLE ROBIE, słyszałem cos że trzeba by stworzyć jakąś grupę, ale nie wiem jaką...)
I mam problem np. z katalogami., tzn, NIE WIEM CZY TO MA ZANCZENIE ale nie wiem jak zmienić żebyy katalogi nie były tylko do odczytu bo mam to zablokowane. I dla grupy TWÓRCA-WŁĄŚCIEICEL nie mogę ustawić pełnej kontroli.

Bardzo proszę pomóżcie mi to rozwiązać bo ja już nie wiem co robić.

P.S.
Jeszcze raz bardzo prosze o pomoc i w miarę możliwości o łopatologie bo należe do zielonych w taemacie php...
Athlan
pozmieniaj wszystkie $HTTP_USER_AGENT na $_SERVER['HTTP_USER_AGENT']

i UŻYWAJ KOLOROWANIA SKLADNI DO JASNEJ CIASNEJ (sory musialem sie wydrzeć smile.gif )

p.s : to : $HTTP_REFERER zamien na $_SERVER['HTTP_REFERER']
Martino
Ok. Bardzo dziękuję , zrobiłem dokładnie tak i jest poprawa, tzn. teraz już nie wyskakują te błędy i nie wyskakuje "brak uprawnień"

ALE wyskakują nowe błędy (gdy chcę dodać wpis do księgi gości) i NIC nie jest dopisywane do księgi gości.
Oto one:

Notice: Undefined variable: tlen in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 28
Notice: Undefined variable: gg in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 35
Notice: Undefined variable: icq in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 42
Notice: Undefined variable: e_mail in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 49
Notice: Undefined variable: strona in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 56
Notice: Undefined variable: wpis in C:\WebServer\Apache2\www\LIMON\ksiega2\zapisz.php on line 63

A tutaj fragment kodu odpowiedzialnego (do linii67):

  1. <? 
  2. #############################################
  3. # Ksiega gosci v0.2 - by KESS  #
  4. # Copyright (C) 2002 - Krzysztof Szypulski #
  5. # e-mail: kess@snug.pl # 
  6. # <a href="http://www.kess.snug.pl/" target="_blank">http://www.kess.snug.pl/</a> #
  7. # Status: GPL  #
  8. # wiecej informacji w pliku "czytajto.txt" #
  9. #############################################
  10. require("includy/config.inc");
  11. require("includy/top_admin.inc");
  12. if ($_SERVER['HTTP_REFERER']!="$adr_ks/dodaj.php")
  13. die ("Brak uprawnień");
  14. ?>
  15. <html>
  16. <head>
  17. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  18. <meta http-equiv="Reply-to" content="kess@snug.pl">
  19. <meta http-equiv="Content-Language" content="pl">
  20. <meta name="Author" content="Krzysztof Szypulski">
  21. <link rel="stylesheet" href="ksiega.css" type="text/css">
  22. <title><? echo $title;?></title>
  23. </head>
  24. <body onload="window.status='<? echo $status?>'">
  25. <?= $naglowek;?>
  26. <?
  27. //sprawdzenie Tlena
  28. if ($tlen != ""){
  29. $spr_tlen = substr ($tlen, 0, strpos($tlen, '@'));
  30. if ($spr_tlen != ""){
  31. $tlen = $spr_tlen;
  32. }
  33. }
  34. //spradzenie GG
  35. if ($gg != ""){
  36. if (!eregi("^[0-9]{1,10}$", $gg)){
  37. echo "<table align=center><tr><td class=ramka align=center><img src=image/stop.gif align=middle> <font color=#FF0000><b>Nr Gadu-Gadu powinien zawierać tylko cyfry!</b></font><br><br><a href="java script:history.back()"><img src=image/popraw.gif alt="wróć i popraw"></a></td></tr></table>"; 
  38. $s_gg = 1;
  39. }
  40. }
  41. //spradzenie ICQ
  42. if (($icq != "") && (empty($s_gg))){
  43. if (!eregi("^[0-9]{1,10}$", $icq)){
  44. echo "<table align=center><tr><td class=ramka align=center><img src=image/stop.gif align=middle> <font color=#FF0000><b>Nr ICQ powinien zawierać tylko cyfry!</b></font><br><br><a href="java script:history.back()"><img src=image/popraw.gif alt="wróć i popraw"></a></td></tr></table>"; 
  45. $s_icq = 1;
  46. }
  47. }
  48. //sprawdzenie email
  49. if (($e_mail != "") && (empty($s_gg)) && (empty($s_icq))){
  50. if (!eregi("^[^@ ]+@[^@ ]+.[^@ .]+$", $e_mail)){
  51. echo "<table align=center><tr><td class=ramka align=center><img src=image/stop.gif align=middle> <font color=#FF0000><b>Błędny Email!!!</b></font><br>Jeżeli wpisujesz email wpisz go poprawnie, w przeciwnym razie pozostaw pole p
    uste!<br><br><a href="
    java script:history.back()"><img src=image/popraw.gif alt="wróć i popraw"></a></td></tr></table>";
  52. $s_ma = 1;
  53. }
  54. }
  55. //sprawdzenie URL
  56. if (($strona != "") && (empty($s_gg)) && (empty($s_icq)) && (empty($s_ma))){
  57. if (!eregi("^http://[^ ]+$", $strona)){
  58. echo "<table align=center><tr><td class=ramka align=center><img src=image/stop.gif align=middle> <font color=#FF0000><b>Błędny URL!!!</b></font><br>Adres URL powinien zaczynać się od <b>http://</b><br><br><a href="java script:history.back()"><img src=image/popraw.gif alt="wróć i popraw"></a></td></tr></table>";
  59. $s_url = 1;
  60. }
  61. }
  62. //zabezpieczenie przed enterem
  63. if (($wpis!="") && (empty($s_gg)) && (empty($s_icq)) && (empty($s_ma)) && (empty($s_url))){
  64. if (eregi("rnrnrnrn", $wpis)) {
  65. echo "<table border=0 cellpadding=0 cellspacing=0 align=center><tr><td class=ramka><img src=image/stop.gif align=middle> <font face=tahoma color=#FF0000><b>Blokada antylamerska !!!</b></font></td></tr></table>";
  66. $s_ent = 1;
  67. }


Co terza zrobić? Proszę pomóżcie!

P.S.
Składnia już pokolorowana smile.gif
Ja_Szczur
a słyszałeś o register_globals ?

jeżeli zmienna "cos" wysyłana jest z formularza metodą GET, to nazywa się $_GET['cos']
jeżeli zmienna "inna" wysyłana jest z formularza metodą POST, to nazywa się $_POST['inna']
jeżeli zmienna "ciacho" jest ustawiona jako ciastko, to dostęp do niej jest poprzez $_COOKIE['ciacho']
analogicznie: $_SESSION, $_FILES, $_SERVER

tak więc:
1) znajdź sobie inny skrypt księgi gości
2) [lub] popraw wystąpienia wszystkich zmiennych zewnętrznych (get, post, cookie, session)
3) [ew.] zastosuj funkcję extract
Martino
Ale wydaje mi się że te błędy już poprawiłem, nie widzę w pilku zapisz.php innych tego typu niż te opisane w odpowiedzi "Athlan-a" trochę wyżej...

CAŁY PROLEM polega na tym, że skrypt nie dodje wpisów do księgi gości.... Pojawia się tabelka do uzupełnienia, wpisuję wszystko, naciskam dodaj wpis i ... nic (p.s. wcześniuej, przed poprawkami wyżej wyskakiwało "brak uprawnień" a teraz nic. (tzn. wyświetlają się błędy opisane przezemnie w odpowiedzi wyżej...)

szczerze mówiąc może robię coś nie tak, bo nie znam się na php, ale to już któryś skrypt który nie chce działać, dlatego podejżewam chmody...

Proszę; Pomóżcie..!
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-2024 Invision Power Services, Inc.