Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt dla adminow malych sieci lan.
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
Shimada
Pisze skrypt ktory moze pomoc administratorom malych sieci lan, istnieje juz cos takiego tyle ze jest dla duzych sieci i dziala tylko pod linuksem (LMS).

Kod
<?php
require('config.scr.php');

$usr_login = $login;
$usr_pass = $haslo;

$sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
   or die('Wystąpił błąd: ' . mysql_error());
mysql_select_db("lan_info");
$id = mysql_query('SELECT id FROM login WHERE login='.$usr_pass);
$login = mysql_query('SELECT login FROM login WHERE login='.$usr_pass);
$pass = mysql_query('SELECT password FROM login WHERE login='.$usr_pass);
mysql_close($sql_connect);

if($usr_pass == $pass){
echo('Zostałeś zalogowany do systemu!
<br>Twój ID: '.$id.'
<br>Twój Login: '.$login.'
<br>Twoje Hasło: '.$pass);
}
else{
include('error/403.php');
}

?>


Zmienne $login i $haslo są pobierane z formularza, dane serwera z pliku config.scr.php

Kod
<?php
//          LAN Manager
//      ©2005-2007 Shimada
//     Skrypt konfiguracyjny
//
// W tym pliku znajdują się ustawienia całego skryptu.

// Baza danych SQL //
$sql_host = 'localhost'; //Adres Serwera SQL
$sql_login = 'xxx';     //Login Serwera SQL
$sql_passwd = 'xxxxx'; //Haslo Serwera SQL
?>

Zmienne $id $login $pass sa puste po wykonaniu skryptu i niemam pojecia dla czego i co jeszcze nie dziala. ohmy.gif
SongoQ
Mam takie pytanie w jaki sposob chesz zarzadzac laczem pod windowsem?

Co do pytania

  1. <?php
  2. $usr_login = $login;
  3. $usr_pass = $haslo;
  4.  
  5. $sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
  6. ?>


Masz inne zmienne
Shimada
Bardzo dużo małych sieci opiera się na neostradzie, i wiele takich sieci ma problem z połączeniem linuksa i neostrady. Pozostaje im windows, lub router.

Co do zmiennych (przepraszam nie opisalem ich dokładnie):

Kod
<?php
$usr_login = $login; //zmienna przechowująca login dostępu wpisany przez urzytkownika
$usr_pass = $haslo; //haslo tjw.

$sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
?>


Login, hasło i adres servera sql znajduja sie w pliku konfiguracyjnym.
SongoQ
Cytat
Bardzo dużo małych sieci opiera się na neostradzie, i wiele takich sieci ma problem z połączeniem linuksa i neostrady. Pozostaje im windows, lub router.


W jaki sposob chesz zarzadzac w windowsie, bo jakos nie wyobrazam sobie.

Odnosnie kodu to $sql_login != $usr_login
Shimada
Chyba nic sie nie dowiem. sadsmiley02.gif Błąd jest gdzies w częsci odpowiadajacej za czytanie z bazy danych (w samej bazie danych i z nazwami tabelek jest wszystko ok sprawdzalem dwa razy). Skrypt laczy sie z baza ale nic z niej nie odczytuje i niemam pojecia dlaczego.

Jednym z lepszych rozwiazan jest program Bandwidth Controller szkoda tylko ze jest to beta i niema za duzo ustawien, jednak na male sieci (w granicach 10 komputerow) sprawdza sie doskonale. Zadnego proxy dobrego nieznalazlem, ale admin jednej sieci w moim miescie uzywa win2003 serwer + jakis program i to wystarcza mu na wydzielenie sieci dla 40 urzytkownikow (gdyby byl tak mily i zechcial kiedys sie podzielic byl bym bardzo wdzieczny...). Tak wiec windows potrzebuje dobrego sprzetu i wiele cierpliwosci, linuxowi nie dorowna, ale doskonale zastepuje jakis slaby routerek i daje radosc poczatkujacemu adminowi laugh.gif biggrin.gif


Zamienilem:

Kod
$sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
  or die('Wystąpił błąd: ' . mysql_error());
mysql_select_db("lan_info");
$id = mysql_query('SELECT id FROM login WHERE login='.$usr_pass);
$login = mysql_query('SELECT login FROM login WHERE login='.$usr_pass);
$pass = mysql_query('SELECT password FROM login WHERE login='.$usr_pass);
mysql_close($sql_connect);


na:

Kod
$sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
   or die('Wystąpił błąd: ' . mysql_error());

mysql_select_db("lan_info");
$usr_login='Shimada';
$sql = "SELECT id FROM login WHERE login=$usr_login";
$id = mysql_query($sql) or die(mysql_error());
$sql = "SELECT login FROM login WHERE login=$usr_login";
$login = mysql_query($sql) or die(mysql_error());
$sql = "SELECT password FROM login WHERE login=$usr_login";
$pass = mysql_query($sql) or die(mysql_error());

mysql_close($sql_connect);


Jako wynik otrzymuje: Nieznana kolumna 'Shimada' w where clause
SongoQ
  1. <?php
  2. $sql = &#092;"SELECT login.id FROM login WHERE login.login='$usr_login'\";
  3. ?>


Cytat
Jednym z lepszych rozwiazan jest program Bandwidth Controller szkoda tylko ze jest to beta i niema za duzo ustawien, jednak na male sieci (w granicach 10 komputerow) sprawdza sie doskonale.


Jesli Twoje oprogramowanie ma dzialac dla 10 kompow, to ja bym nie chcial takiego uzywac. Dobry soft do zarzadzania siecia to taki ktory obsluzy kilka klas adresowych.

No ale nie bede sie klocil - wsumie racja windows nie dorosl do zarzadzania takimi rzeczami jak LAN czy WAN
Shimada
Tym razem jako wynik otrzymuje:

$id = Resource id #8
$login = Resource id #9
$pass = Resource id #10


Czyli dalej nie mam tego co potrzebuje. Co do programu to moze obsluzyc ile kompow potrzeba a ja niepotrzebuje wiecej jak 10. Jesli ktos ma jakis poradnij typu "instalacja modemu SpeedTouch330 w Mandrake10.0 lub redhat7.3". Komp przeznaczony na serwer ma procek 233mhz 128ram i grafika zintegrowana (jakies s3trio 2mb) wspomagana przez voodoo2. Sam mandrake 10.0 dziala tylko jest problem w konfiguracji X. Komp zlom ja sie nieznam, wiec zostaje serwer na windozie lub router ale to juz odbiega od tematu.
tiraeth
Po wykonaniu funkcji mysql_query na zmiennej, powinineś przepisać dane z tymczasowego miejsca w MySQL to tablicy, wykonując funkcję: mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual. Cały Twój kod jest zbędny.. wszystkie dane można pobrać przy użyciu jednego zapytania:
  1. <?php
  2. $sql_connect = mysql_connect($sql_host, $sql_login, $sql_passwd)
  3.  or die('Wystąpił błąd: ' . mysql_error());
  4. mysql_select_db(&#092;"lan_info\");
  5.  
  6. $usr_login = 'Shimada';
  7.  
  8. $sql = &#092;"SELECT id, login, password FROM login WHERE login='\".$usr_login.\"' LIMIT 1\";
  9. $res = mysql_query($sql) or die(mysql_error());
  10. $dane = mysql_fetch_assoc($res);
  11.  
  12. echo '<pre>';
  13. print_r($dane);
  14. echo '</pre>';
  15.  
  16. mysql_close($sql_connect);
  17. ?>


tablica $dane przetrzymuje informacje (id, login i hasło)... co do tego błędu to musisz pamiętać, że wybierając dane z bazy przy sprawdzaniu warunków, wartość danej kolumny dla stringa powinna być umieszczona w pojedyńczych cudzysłowiach. Dodatkowo ustawiaj LIMIT 1 aby przypadkiem nie pobrało kilka danych od użytkowników o tych samych nazwach (jeżeli pole login nie ma atrybutu UNIQUE).

pozdrawiam!
SongoQ
@Shimada przeciez te rzeczy jak wyciagac z bazy masz w manualu, oj nie wiem jak z takim podejsciem chesz zabrac sie za obsluge routera.
Shimada
@tiraeth dzieki, w koncu dziala biggrin.gif . Brakowalo mi mysql_fetch_assoc. Gdybym wpadl na to ze te zmienne sa tablicami... laugh.gif Nie ma jak to zycie noobka.

@SongoQ w tej chwili to nawet routera niemam, a jak bede chcial zrobic obsluge routera to sprubuje znalesc czegos na ten temat. Na poczatek wystarczy skrypt dzieki ktoremu admin bedzie mogl przechowac info o urzytkownikach sieci, a oni sami beda mogli sprawdzic jak jest w sieci z kasa.

Jeszcze jedno pytanko (glupie ale kto pyta nie bladzi): czy php java itp moga pobierac informacje z rejestru windowsa?
Wlasciwie to niejest mi to potrzebne bo zmienilem wazniejsza czesc oprogramowania na inne, ale tak dla pewnosci pytam.
Bakus
Jeżeli znajdziesz program który będzie w stanie pobierać info z rejestru na podstawie parametrów linii poleceń, to php da radę.
Jeżeli takowego nie znajdziesz, to pozostaje Ci windowsowy regedit i http://php.idn.net.pl/manual/pl/ref.com.php ... powodzenia ...
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.