Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt dla adminow malych sieci lan., SQL mi nie odpowiada O.o
Shimada
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Shimada
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Shimada
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował Shimada 23.05.2005, 23:29:02
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


  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


--------------------
Go to the top of the page
+Quote Post
Shimada
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
tiraeth
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@Shimada przeciez te rzeczy jak wyciagac z bazy masz w manualu, oj nie wiem jak z takim podejsciem chesz zabrac sie za obsluge routera.


--------------------
Go to the top of the page
+Quote Post
Shimada
post
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


@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.
Go to the top of the page
+Quote Post
Bakus
post
Post #11


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

Ostrzeżenie: (0%)
-----


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 ...


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 02:31