Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nowy plik z poziomu php i automatyczne odpalenie

misiodab 03 Paź 2007 20:34 994 2
  • #1 03 Paź 2007 20:34
    misiodab
    Poziom 10  

    Witam mam mały problem. Chce aby poprzez poprawne logowanie na stronie, tworzył się skrypt o nazwie zalogowanego usera który będzie odliczał czas jego połączenia. Obecnie treść skryptu jest dowolna tak jak widać poniżej. Problem w moim skrypcie jest taki że plik się tworzy ale nie chce się wykonać z nieznanych przyczyn. Jeśli uruchomię z palca to działa. jeśli umieszcze istniejący plik do wykonania to tez się wykona. Dlaczego nie wykonują się pliki które zostają zapisane poprzez kod php i w tym samym kodzie są uruchamiane . Proszę o pomoc

    Code:

    <html>
      <head>
      <title>Logowanie do sewisu...</title>
      <style>
      p {font-family: Verdana; font-size: 11px; color: #555555}
      table {font-family: Verdana; font-size: 11px; color: #555555}
      body {background-color: #e0e0e0}
      h1 {font-family: Verdana; font-size: 14px; font-weight: bold; color: #777777}
      </style>
      </head>
      <body>
      <?
      //tresc skryptu
      $skrypt1='ps -AL >> /home/templog/plik.txt';
     
      $polaczenie = mysql_connect('localhost','user','sekret')
        or die("<h1>Blad logowania</h1><p>Brak polaczenia z serwerem!</p>");
      $baza = mysql_select_db('logstud')
        or die("<h1>Blad logowania</h1><p>Brak zadnej bazy na serwerze!</p>");
     
      $log=$_POST['login'];
      $pass=$_POST['password'];
     
      $wynik = mysql_query("SELECT * FROM users where user=\"$log\" AND pass=\"$pass\";")
        or die("<h1>Blad logowania</h1><p>Nie mozna pobrac informacji!</p");
     
      $rekord = mysql_fetch_array($wynik);
     
      if($rekord == NULL) die("<h1>Blad logowania</h1><p>Bledny login lub haslo!
     
      <a href=panel.htm>Zaloguj ponownie</a></p>");
      else
      {
     
      if(!is_writable($log))
       {
     
      if (!$handler= fopen("/var/www/studlog/$log.sh",'x')) {
      echo "Nie moge otworzyc pliku ($log)";
      exit;
      }
      //wprowadzam do pliku tresc skryptu 1
      if (fwrite($handler, $skrypt1) === FALSE) {
      echo "Nie moge zapisac informacji do pliku ($log)";
      exit;
          }
          echo "zapisalem skrypt 1 do ($log)";
              fclose($handler);
         
     
     
      echo "Plik $log nie jest zapisywalny";
      }
       }
    chmod("/var/www/studlog/$log.sh", 777);
    exec('/var/www/studlog/$log.sh');
     
      ?>
      </body>
      </html>

    0 2
  • #2 03 Paź 2007 21:05
    krzychoocpp
    VIP Zasłużony dla elektroda

    Witam, nie jestem pewny czy to jest najlepszy pomysł na sprawdzanie czasu zalogowania, chyba lepiej użyć bazy danych i zapisać czas logowania, kiedy bedzie potrzeba podać czas, wystarczy odjąć ten zapisany od obecnego.

    Skrypt się nie uruchamia bo go nie wywołujesz. Dowiedz się jak jest różnica pomiędzy " i ' w PHP. Możesz nawet wypisać to co podajesz do funkcji exec i zobaczyć czym się to różni od tego co podajesz do funkcji chmod. Poza tym nie jestem pewny czy ten skrypt zadziała, trzeba będzie jeszcze dodatkowo pozmieniać uprawnienia dla odpowiednich użytkowników.

    Pozdrawiam, Krzysztof.

    0
  • #3 04 Paź 2007 09:45
    misiodab
    Poziom 10  

    Ogólnie to ma być hotspot ale taki, że osoba dostanie dostęp do neta jeśli się poprawnie zaloguje. Zalogowanie spowoduje wypisanie skryptu o treści gdzie będzie wyliczany czas np. 1.5 h. Po upłynięciu tego czasu user znów zostaje zablokowany i znów musi wpisać login i hasło.

    Skrypt który tworzy strona w php którą napisałem działa jeśli się go ręcznie uruchomi, a klamry przy exech () i chmod () sprawdzałem i przy żadnej opcji nie wiele się zmienia. Skrypt mój chcę zrobić taki aby ktoś nie musiał mieć odpalonej przeglądarki bo wiem że mógłbym skorzystać z gotowych aplikacji. Porszę o pomoc

    0