Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Mac adres karty sieciowej
Forum PHP.pl > Forum > Przedszkole
olowek
Witam,


Czy jest jakaś funkcja, klasa do sprawdzania poprawności mac adresu karty sieciowej w formularzu?

d.
Lee
php działa po stronie serwera więc raczej czegoś takiego nie ma (nie jestem tego pewien w 100%)

btw. poczytaj o $_SERVER
http://pl2.php.net/manual/en/reserved.variables.php
i na webcity.pl też jest conieco opisane
http://webcity.pl/webcity/artykuly.php/t/4
olowek
Cytat(Lee @ 31.07.2006, 15:39 ) *
php działa po stronie serwera więc raczej czegoś takiego nie ma (nie jestem tego pewien w 100%)

btw. poczytaj o $_SERVER
http://pl2.php.net/manual/en/reserved.variables.php
i na webcity.pl też jest conieco opisane
http://webcity.pl/webcity/artykuly.php/t/4


Może rozszerze swoje pytanie winksmiley.jpg

Mam formularz w ktorym wpisuje nr seryjny komputera jego ip adres i mac adres karty sieciowej , a wszystko w celach ewidencyjnych i porzadkowych. Taka baza posiadanych komputerów.
I chiałbym aby w formularzu w jakiś sensowny sposob sprawdzac czy użykownik dopisujący kolejny komputer do tej bazy, poprawnie wpisał mac adres karty sieciowej, tzn. aby nie popełnił błędu i zamiast FF wpisał FZ itd.

d.
nospor
Czyby google znalo odpowiedz?
http://www.google.com/search?client=opera&...-8&oe=utf-8
smile.gif

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
olowek
OK ale dalej nie mogę sobie poradzić
warunek sprawdzajacy mi nie działa, może kotś zerknąć gdzie popełniłem błąd?
  1. <?php
  2. $mac_adres='00:FF:15:51:C1:00'; 
  3. if (!eregi("^[0-9A-Z]+(-[0-9A-Z]+)+(-[0-9A-Z]+)+(-[0-9A-Z]+)+(-[0-9A-Z]+)+(-[0-9A-Z]+)$",$mac_adres)) return 0;
  4. ?>


i jaki bym nie podał adres to zawsze mam false sad.gif

d
rama
Patrząc na Twój "eregi syntax", to jest wyłącznie poprawny dla adresów w stylu "00-00-00-00-00-00", więc dlatego wyrzuca Ci false smile.gif

Poniżej "uzupełniłem" eregi syntax, który jest poprawny dla większości seperatorów (- ; : .)
  1. <?php
  2. $mac_adres='00:FF:15:51:C1:00';
  3. if (!ereg('^([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)$',$mac_adres)) return 0;
  4. ?>
olowek
Cytat(rama @ 1.08.2006, 14:17 ) *
Patrząc na Twój "eregi syntax", to jest wyłącznie poprawny dla adresów w stylu "00-00-00-00-00-00", więc dlatego wyrzuca Ci false smile.gif

Poniżej "uzupełniłem" eregi syntax, który jest poprawny dla większości seperatorów (- ; : .)
  1. <?php
  2. $mac_adres='00:FF:15:51:C1:00';
  3. if (!ereg('^([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)$',$mac_adres)) return 0;
  4. ?>



Czy sprawdziłeś ten kod? Bo u mnie dalej nie działa poprawnie sad.gif

d
rama
Hmm, sprawdzałem, prawie zawsze to robie przed publikacją jakiegokolwiek kodu i działało:)

Jak coś to "rozbudowaną" wersję dołączam...
  1. <?php
  2. $mac_adres='00:FF:15:51:C1:00';
  3. if (!ereg('^([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)+([-.;:])+([0-9A-F]+)$',$mac_adres, $debug))
  4. {
  5. /* Jeśli mac jest nie poprawny */
  6. print 0;
  7. } else {
  8. /* Jeśli mac jest poprawny */
  9. print 1;
  10. }
  11.  
  12. /* sprawdzanie co wyrzuca funkcja eregi */
  13. print '<pre>' . print_r($debug, true) . '</pre>';
  14. ?>
Teraz powinno działać na 100%

PS W eregi syntax wszędzie tam gdzie jest kropka powinien być tylko jeden "\" przed kropką, bo jest znakiem specjalnym.
PS1 Sprawdzane pod kątem seperatorów takich jak: . ; : -, więc powinno działać bez problemów
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.