Witam,w PHP zaczołem programować od paru dni. Przeczytawszy mase kursów wyszedłem z inicjatywą stworzenia prostej strony. Stworzyłem stronę główną gdzie jest bardzo prosty sposób logowania uzytkonika:
  1. <?
  2. function spr()
  3. {
  4. if (($_POST['login']=="Jan")&&($_POST['pas']=="2007")) {return true;}
  5. else {return false;}
  6. }
  7.  ?>
  8. ....
  9. <?
  10. if (isset($_POST['login'])&&(isset($_POST['pas'])))
  11. {
  12.  if (spr()==true)
  13.  {
  14. echo "<font sie=3 color=yellow>Witaj<br>$login</font>";
  15.  }
  16.  else
  17.  {
  18.  echo "<a href="index.php"><font sie=3 color=red>Zły login lub hasło</font></a>";
  19.  }
  20. }
  21. else
  22. {
  23. echo "<FORM ACTION="index.php" METHOD="POST">";
  24. echo "<INPUT TYPE=TEXT size=12 NAME=login><br>";
  25. echo "<INPUT TYPE=PASSWORD size=12 NAME=pas><br>";
  26. echo "<INPUT TYPE=SUBMIT size=2 VALUE=OK></FORM>";
  27. }
  28. ?>
  29. ....
  30. <?
  31. if (spr()==true)
  32. {
  33. echo "<a href="edycjaRAN.php" target="ramka"><font color="orange" size="2"><b>Edycja rankingu graczy</b></font></a><br>";
  34. echo "<a href="edycjaTD.php" target="ramka"><font color="orange" size="2"><b>Edycja rankingu TD</b></font></a><br>";
  35. echo "<a href="edycjaTD.php" target="ramka"><font color="orange" size="2"><b>Napisz NEWSA</b></font></a><br>";
  36. }
  37. ?>

Jak widać logowanie jest w jednym pliku, i po zalogowaniu usera Jan są dostępne odpowiednie linki do podstron. Wtedy taki user wchodz na na pod stronę Edycja rankingu graczy. oto jej kod:
  1. <html>
  2. <head>
  3. <title>dynamiczny formularz</title>
  4. <?
  5. function sortuj()
  6. {
  7. $dane=file("q.txt");$ile=count($dane);
  8. for($i=0;$i<$ile;$i++)
  9. {
  10.  list($p[$i], $n[$i])=explode("|", $dane[$i]);
  11. }
  12. array_multisort($p, SORT_DESC,
  13. $n);
  14. $plik=fopen("q.txt", "w");flock($plik,2);
  15. for($i=0;$i<$ile;$i++)
  16. {
  17. fputs($plik, "$p[$i]|$n[$i]");
  18. }
  19. flock($plik,3);fclose($plik);
  20. }
  21. ?>
  22. </head>
  23. <body>
  24. <h3 align=center>Edycja graczy rankingowych</h3>
  25. <form name="formularz" action="edycja.php" method="post">
  26. <?
  27. //petla_Główna
  28. if (file_exists("q.txt"))
  29. {
  30. if (isset($_POST['nnick'])&&(isset($_POST['npunkty'])))
  31.  {
  32.  $plik=fopen("q.txt","a");flock($plik,2);
  33.  fputs($plik,"$npunkty|$nnickrn");
  34.  flock($plik,3);
  35.  fclose($plik);
  36.  sortuj();
  37.  }
  38.  $dane=file("q.txt");
  39.  $n=count($dane);
  40.  if (isset($_POST['zmien']))
  41.  {
  42. $plik=fopen("q.txt", "w");flock($plik, 2);
  43. for ($i=0;$i<$n;$i++)
  44. {
  45. list($pp[$i], $nn[$i])=explode("|" , $dane[$i]);
  46. fputs($plik, "$pts[$i]|$nn[$i]");
  47. }
  48. flock($plik,3);fclose($plik);sortuj();
  49.  }
  50.  $lp=1;
  51.  $dane=file("q.txt");
  52.  echo "<TABLE BORDER="0" CELLSPACING="9">";
  53.  for($i=0;$i<$n;$i++)
  54.  {
  55. list($punkty[$i], $nick[$i])=explode("|", $dane[$i]);
  56. echo "<tr align="center"><td>$lp</td><td>$nick[$i]</td><td><font color=red>$punkty[$i]</font></td><td> Zmień: <input type=text name=pts[$i] value=$punkty[$i] size="7"></td></tr>";
  57. $lp++;
  58.  }
  59.  echo "</table><input type=submit value=ZMIEŃ NAME="zmien"></form>";
  60.  echo "<form name="formularz2" action="edycja.php" method="post">";
  61.  echo "Nick : <INPUT TYPE=TEXT NAME=nnick value=""> punkty: <INPUT TYPE=TEXT NAME=npunkty VALUE=""><INPUT TYPE=SUBMIT VALUE="DODAJ"></FORM>";
  62. }
  63. else {echo "<font color=red>Sorry błąd w bazie danych, nie odnaleziono pliku !</font>";}
  64. ?>
  65. </body>
  66. </html>

Jak widać jest to prosta baza danych operująca na 1 pliku. User Jan widzi wczytane z pliku rekordu i może zedytować wyniki graczy lub dodać nowego. I tu zaczyna się problem, otóż gdy sprawdzałem te dwie strony oddzielnie to działały bez zarzutu natomiast gdy przechodze do edytowania graczy po uprzednim zalogowaniu się (czyli od strony pierwszej) widze coś takiego :
Cytat
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

I nie wiem jak Z tym koksem sobie poradzić. Bardzo proszę o pomoc... możliwe z wyjaśniem jak dla laika
Z góry dziękuje za każdą pomoc.


Hmm ok już wiem że kod jest wporządku i to coś z ustwieniami serwera. Używam PHPTraid 2.2 który instaluje PHP w wersji 4.1.1 jako CGI na Apachu 1.2.3 Jeśli chodzi o ustwienia apache to jestem zielony może ktoś mi pomoc jak ustwić uprawnienia żeby był dostęp do pliku bez problemowy ?. Apache stoi na Win XP