Problem z funkcją sprawdzającą poprawność adresów IP

0

Dzień dobry,
kolejny raz zwracam się do Was z prośbą pomocy, ponieważ uaktualnianie kodu ponownie mnie przerosło :c. Funkcja, z którą ma problem, to funkcja która sprawdza poprawność wpisanego adresu IP. Zacząłem pracować z takim kodem:

function sprawdz_poprawnosc_ip($ip,$a){
        $ip=trim($ip);
        switch($a)
        {
                case "4":
                        if(strlen($ip) < 7)
                                return false;
                        if(!ereg("\.",$ip))
                                return false;
                        if(!ereg("[0-9.]{". strlen($ip) ."}",$ip))
                                return false;
                        $ip_array = split("\.",$ip);
                        if (count($ip_array) != 4)
                                return false;
                break;
                case "2":
                        if(strlen($ip) < 3)
                                return false;
                        if(!ereg("\.",$ip))
                                return false;
                        if(!ereg("[0-9.]{". strlen($ip) ."}",$ip))
                                return false;
                        $ip_array = split("\.",$ip);
                        if (count($ip_array) != 2)
                                return false;
                break;
        }
//192.168.x.2-254
        for($i=0;$i<count($ip_array);$i++){
                 if((!is_numeric($ip_array[$i])) || (($ip_array[$i] < 0) || ($ip_array[$i] > 254)))
                        return false;
        }
        return true;
}

Po researchu udało mi się go przerobić do takiego momentu, że debug PHP nie wywala mi żadnych błędów w kodzie:

function sprawdz_poprawnosc_ip($ip,$a){
        $ip=trim($ip);
        switch($a)
        {
                case "4":
                        if(strlen($ip) < 7)
                                return false;
                        if(!preg_match("/./",$ip))
                                return false;
                        if(!preg_match("/[0-9.]{". strlen($ip) ."}/",$ip))
                                return false;
                        $ip_array = explode("\.",$ip);
                        if (count($ip_array) != 4)
                                return false;
                break;
                case "2":
                        if(strlen($ip) < 3)
                                return false;
                        if(!preg_match("/./",$ip))
                                return false;
                        if(!preg_match("/[0-9.]{". strlen($ip) ."}/",$ip))
                                return false;
                        $ip_array = explode("\.",$ip);
                        if (count($ip_array) != 2)
                                return false;
                break;
        }
//192.168.x.2-254
        for($i=0;$i<count($ip_array);$i++){
                 if((!is_numeric($ip_array[$i])) || (($ip_array[$i] < 0) || ($ip_array[$i] > 254)))
                        return false;
        }
        return true;
}

Niestety przy wpisywaniu danych na stronie (adres IP, nazwa, opis etc.) w tabelce z adresem IP wywala mi błąd "źle", który jest opisany tutaj:

                                case "ip_apka";
                                        if($wartosc!=""){
                                                if(sprawdz_poprawnosc_ip($wartosc,4)){
                                                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                                        $pytam="SELECT * FROM apki_dane WHERE $nazwa='$wartosc' ";
                                                        $odpow=mysqli_query($con, $pytam);
                                                        if(mysqli_num_rows($odpow)==0){
                                                                $pytam1="SELECT * FROM users_ip WHERE ip_usera='$wartosc' GROUP BY ip_usera";
                                                                $odpow1=mysqli_query($con, $pytam1);
                                                                if(mysqli_num_rows($odpow1)==0){
                                                                        $zap.="$nazwa='$wartosc',";
                                                                        $tabela_bledy.="|";
                                                                }else{
                                                                        $A=1;
                                                                        $tabela_bledy.="już jest jako ip_usera|";
                                                                }
                                                        }else{
                                                                $wynik=mysqli_fetch_array($odpow);
                                                                $A=1;
                                                                $tabela_bledy.="już jest :$wynik[adres]|";
                                                        }
                                                }else{
                                                        $A=1;
                                                        $tabela_bledy.="źle|";
                                                }
                                        }else{
                                                $tabela_bledy.="brak|";
                                                $A=1;
                                        }
                                break;
                                case "opis":
                                        $zap.="$nazwa='$wartosc',";
                                        $tabela_bledy.="|";
                                break;

Miałby ktoś może jakiś pomysł, bo wszystkie moje kombinacje niestety nie dały efektu, a było ich sporo.

1

Ale po co chcesz wymyślać koło na nowo, skoro w PHP masz gotową funkcję, która sprawdza poprawność adresu IP?

https://www.w3schools.com/php/filter_validate_ip.asp
https://www.php.net/manual/en/filter.examples.validation.php

0

Może niejasno wyjaśniłem. Do bazy wprowadzane są nowe AP'ki i zadaniem tej funkcji jest sprawdzenie czy nowy adres IP jest wpisany poprawnie, a nie sprawdzenie już istniejących. Wpisując byle jaki adres, nawet już istniejący, wyrzuca mi błąd "źle", a powinien wywalić chociaż "już istnieje".

0

zadaniem tej funkcji jest sprawdzenie czy nowy adres IP jest wpisany poprawnie

I do tego właśnie służy funkcja filter_var() z FILTER_VALIDATE_IP.

0

No ale nie rozumiem, w czym jest problem. Zasadniczo to, o czym piszesz trzeba sprowadzić do dwóch kroków:

  1. korzystając z podanego przez nas sposobu (filter_var($ip, FILTER_VALIDATE_IP)) ustalasz, czy podany adres jest poprawny
  2. jeśli adres jest OK to sprawdzasz w bazie, czy już go nie ma wcześniej dodanego.
0

Okej, rozumiem :)! Ogólnie przepraszam za moja nieznajomość tematu, ale ze mnie taki programista jak akrobata :D!

Po wprowadzeniu Waszej sugestii nie wyrzuca mi już błędu, ale za to pojawia się "BRAK ZAPISU", który jest zdefiniowany jako błąd przy insertowaniu otrzymanych już danych. Poniżej dalszy ciąg kodu:

                if($A=="0"){
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $a=strlen($zap);
                        $zap=substr($zap,0,$a-1);
                        mysqli_query($con, $zap);
                        $zap1="SELECT LAST_INSERT_ID() FROM  apki_dane ";
                        $odp1=mysqli_query($con, $zap1);
                        $w1=mysqli_fetch_array($odp1);
                        if($w1[0]==0){
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                $NAPIS="BRAK ZAPISU";
                                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';
                        }else{
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='$w1[0]' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                logowanie('zlecenie');
                                $NAPIS="APEK ZOSTAŁ DODANY";
                                $apkaid=$dane['id'];
                                $action="edytuj_apka.php?id=$dane[id]";
                }
                }else{
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                        $odp1=mysqli_query($con, $zap1);
                        $dane=mysqli_fetch_array($odp1);
                        $action="dodaj_apka.php";
                }

        break;
        default:
                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                $odp1=mysqli_query($con, $zap1);
                $dane=mysqli_fetch_array($odp1);
                $action="dodaj_apka.php";
                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';

Jeżeli potrzebne by były jeszcze jakieś informacje, to oczywiście ich udzielę, bo zdaję sobie sprawę, że z braku doświadczenia w tym języku mogę nie wysyłać wszystkich potrzebnych informacji :<! Jeżeli potrzebny byłby cały kod, to udostępnię go w wiadomości prywatnej.

1

Porównaj https://www.w3schools.com/sql/func_mysql_last_insert_id.asp z zapytaniem, które uruchamiasz u siebie.

Btw, istnieje dedykowana funkcja do tego: https://www.php.net/manual/en/mysqli.insert-id.php.

2

@cerrato: @Patryk27 Pamiętam inny post OPa, tam zapisywał końcówkę IP. Patrząc na kod i sprawdzanie długości stringa na początku wnisokuje, może błędnie, że sprawdza tylko część adresu. Chyba więc walidowanie wybudowanymi funkcjami nie pomoże.
Ale może ja źle rozumiem problem, jak zresztą poprzednio.

Co do błędnego działania kodu. Printuj działanie każdego warunku, na swoich danych, żeby wiedzieć gdzie nie wchodzi. Tak na pierwszy rzut oka na telefonie nie widzę błędów.
BTW, może w ogóle loguj sobie jednak całe IP jeśli moje podejrzenia są poprawne.

3

To, co podałeś powyżej jest trochę to zagmatwane. Ja bym to zrobił inaczej:

  1. sprawdzenie poprawności adresu IP - to już mamy ogarnięte
  2. sprawdzenie, czy adres IP już istnieje w bazie
  3. Dodać adres do bazy w oparciu o https://www.php.net/manual/en/mysqli.query.php. Zauważ, że ta funkcja coś zwraca. Zgodnie z opisem w podanym linku:

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

Czyli to całe sprawdzanie poprawności dodania sprowadzić się powinno do tego, czy dostałeś w odpowiedzi FALSE (czyli - był błąd) albo TRUE - zapis do bazy się powiódł.

W liniach 3 i 4 masz $a=strlen($zap); $zap=substr($zap,0,$a-1);, ale nie widzę, co w tym $zap siedzi, więc to może być problemem - że zapytanie jest jakieś dziwne i stąd problem. W linii 5 masz odpalenie tego zapytania - czyli mysqli_query($con, $zap);, ale ciężko powiedzieć, co tak naprawdę leci do bazy, bo nie wiemy, skąd się wzięła treść zapytania.

Za bardzo nie rozumie też (w ogóle cały kod jest dość zagmatwany) co robi fragment "SELECT * FROM apki_dane WHERE id='0' ";. Znaczy - inaczej: wiem, co ten kawałek robi, ale nie wiem, czemu to ma służyć ;)

Na razie się skup na pkt. 2 - napisz wersje minimalną, która jedynie ma przyjąć jakiś argument do sprawdzenia i zwrócić TRUE/FALSE w odpowiedzi - w zależności od tego, czy adres IP występuje już w bazie. Jak wydzielisz to do osobnej funkcji to od razu zwiększysz czytelność kodu - zamiast kilku linii będzie coś na zasadzie if (adresWystepuje($adresDoSprawdzenia)) i od razu wiadomo, co się w tym miejscu będzie sprawdzać.

0

Dzięki za odpowiedź :)! W wolnej chwili dzisiaj wieczorem siądę do tego i coś pokombinuję z tego, co zaproponowałeś. Tymczasem wrzucam jeszcze brakujące elementy, żeby była jasność skąd jest "$zap" oraz do czego odwołuje się id=0 i id=1.

<?php

require('../../includes/top.inc.php');

$html_css='../../plik.css';

$akcja='';
$dane='';
$NAPIS="";
$apkaid='';
$id='';
$tabela_bledy='';

reset($_POST);
foreach($_POST as $lista => $wartosc){
        switch($lista)
        {
                case "akcja":$akcja=trim($wartosc);break;
        }
}
switch($akcja)
{
        case "zapisz_apka":
                $niepoprawne="";
                $A=0;
                $zap="INSERT INTO apki_dane SET ";
                reset($_POST);
                        foreach($_POST as $nazwa => $wartosc){
                        $nazwa=trim($nazwa);
                        $wartosc=trim($wartosc);
                        switch($nazwa){
                                case "ip_apka";
                                        if($wartosc!=""){
                                        $ip = "127.0.0.1";
                                                if (filter_var($ip, FILTER_VALIDATE_IP)) {
                                                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                                        $pytam="SELECT * FROM apki_dane WHERE $nazwa='$ip' ";
                                                        $odpow=mysqli_query($con, $pytam);
                                                        if(mysqli_num_rows($odpow)==0){
                                                                $pytam1="SELECT * FROM users_ip WHERE ip_usera='$ip' GROUP BY ip_usera";
                                                                $odpow1=mysqli_query($con, $pytam1);
                                                                if(mysqli_num_rows($odpow1)==0){
                                                                        $zap.="$nazwa='$ip',";
                                                                        $tabela_bledy.="|";
                                                                }else{
                                                                        $A=1;
                                                                        $tabela_bledy.="już jest jako ip_usera|";
                                                                }
                                                        }else{
                                                                $wynik=mysqli_fetch_array($odpow);
                                                                $A=1;
                                                                $tabela_bledy.="już jest :$wynik[adres]|";
                                                        }
                                                }else{
                                                        $A=1;
                                                        $tabela_bledy.="źle|";
                                                }
                                        }else{
                                                $tabela_bledy.="brak|";
                                                $A=1;
                                        }
                                break;
                                case "opis":
                                        $zap.="$nazwa='$wartosc',";
                                        $tabela_bledy.="|";
                                break;
                                case "adres":
                                case "typ_apki":
                                case "typ_apki_grupa":
                                        if($wartosc==""){
                                                $A=1;
                                                $tabela_bledy.="brak|";
                                        }else{
                                                $zap.="$nazwa='$wartosc',";
                                                $tabela_bledy.="|";
                                        }
                                break;
                                case "nad":
                                case "stansieci_ping":
                                case "smokeping":
                                        $zap.="$nazwa='$wartosc',";
                                        $tabela_bledy.="|";
                                break;
                 }
                }
                if($A=="0"){
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $a=strlen($zap);
                        $zap=substr($zap,0,$a-1);
                        mysqli_query($con, $zap);
                        $zap1="SELECT LAST_INSERT_ID() FROM  apki_dane ";
                        $odp1=mysqli_query($con, $zap1);
                        $w1=mysqli_fetch_array($odp1);
                        if($w1[0]==0){
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                $NAPIS="BRAK ZAPISU";
                                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';
                        }else{
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='$w1[0]' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                logowanie('zlecenie');
                                $NAPIS="APEK ZOSTAŁ DODANY";
                                $apkaid=$dane['id'];
                                $action="edytuj_apka.php?id=$dane[id]";
                }
                }else{
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                        $odp1=mysqli_query($con, $zap1);
                        $dane=mysqli_fetch_array($odp1);
                        $action="dodaj_apka.php";
                }

        break;
        default:
                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                $odp1=mysqli_query($con, $zap1);
                $dane=mysqli_fetch_array($odp1);
                $action="dodaj_apka.php";
                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';
}
#tabela opisu html formularza
$tabela_opis="IP|ADRES|OPIS|URL Dokumentacja|Apek Nadrzędny|Typ Apka|Grupa Apka|STAN_SIECI PING|SMOKEPING";
#tabela name formularz
$tabela_name='ip_apka|adres|opis|mac_apka|nad|typ_apki|typ_apki_grupa|stansieci_ping|smokeping';


naglowek();
?>
0

Cześć! Pokombinowałem trochę i doszedłem już prawdopodobnie do ostatniego problemu z tym skryptem. W momencie kiedy wpisuję adres IP, którego nie ma w bazie, to przechodzi on już wszystkie kroki w switch($nazwa). Problem pojawia się jednak w dalszej części kodu, ponieważ odpowiednio w liniach:

  • 214
switch($dane[$bb[$i]]){
  • 233
switch($dane[$bb[$i]]){

oraz 255

<td><input type="text" size="70" name="<?php echo $bb[$i]?>" value="<?php echo odczyt($dane[$bb[$i]])?>" class="bold">&nbsp;<font color="red"><?php echo $dd[$i]?></font></td>

Pojawiają mi się następujące błędy:

Warning: Illegal string offset 'stansieci_ping' in xxx/dodaj_apka.php on line 214
Notice: Uninitialized string offset: 0 in xxx/dodaj_apka.php on line 214
Warning: Illegal string offset 'smokeping' in xxx/dodaj_apka.php on line 233
Notice: Uninitialized string offset: 0 in xxx/dodaj_apka.php on line 233

i tak samo z 'ip_apka', 'adres'. 'opis', 'mac_apka'

Poniżej wklejam cały kod:

<?php

require('../includes/configuracja.php');
require('../includes/funkcje_html.inc.php');

$html_css='../../plik.css';

$akcja='';
$dane='';
$NAPIS="";
$apkaid='';
$id='';
$tabela_bledy='';

reset($_POST);
foreach($_POST as $lista => $wartosc){
        switch($lista)
        {
                case "akcja":$akcja=trim($wartosc);break;
        }
}
switch($akcja)
{
        case "zapisz_apka":
                $niepoprawne="";
                $A=0;
                $zap="INSERT INTO apki_dane SET ";
                reset($_POST);
                        foreach($_POST as $nazwa => $wartosc){
                        $nazwa=trim($nazwa);
                        $wartosc=trim($wartosc);
                        switch($nazwa){
                                case "ip_apka";
                                $ip = "127.0.0.1";
                                        if($wartosc!=""){
                                                if (filter_var($ip, FILTER_VALIDATE_IP)) {
                                                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                                        $pytam="SELECT * FROM apki_dane WHERE $nazwa='$wartosc' ";
                                                        $odpow=mysqli_query($con, $pytam);
                                                        if(mysqli_num_rows($odpow)==0){
                                                                $pytam1="SELECT * FROM users_ip WHERE ip_usera='$wartosc' GROUP BY ip_usera";
                                                                $odpow1=mysqli_query($con, $pytam1);
                                                                if(mysqli_num_rows($odpow1)==0){
                                                                        $zap.="$nazwa='$wartosc',";
                                                                        $tabela_bledy.="|";
                                                                }else{
                                                                        $A=1;
                                                                        $tabela_bledy.="już jest jako ip_usera|";
                                                                }
                                                        }else{
                                                                $wynik=mysqli_fetch_array($odpow);
                                                                $A=1;
                                                                $tabela_bledy.="już jest :$wynik[adres]|";
                                                        }
                                               }else{
                                                        $A=1;
                                                        $tabela_bledy.="źle|";
                                                }
                                        }else{
                                                $tabela_bledy.="brak|";
                                                $A=1;
                                        }
                                break;
                                case "opis":
                                        $zap.="$nazwa='$wartosc',";
                                        $tabela_bledy.="|";
                                break;
                                case "adres":
                                case "typ_apki":
                                case "typ_apki_grupa":
                                        if($wartosc==""){
                                                $A=1;
                                                $tabela_bledy.="brak|";
                                        }else{
                                                $zap.="$nazwa='$wartosc',";
                                                $tabela_bledy.="|";
                                        }
                                break;
                                case "nad":
                                case "stansieci_ping":
                                case "smokeping":
                                        $zap.="$nazwa='$wartosc',";
                                        $tabela_bledy.="|";
                                break;
                 }
                }
                if($A=="0"){
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $a=strlen($zap);
                        $zap=substr($zap,0,$a-1);
                        mysqli_query($con, $zap);
                        $zap1="SELECT LAST_INSERT_ID() FROM  apki_dane ";
                        $odp1=mysqli_query($con, $zap1);
                        $w1=mysqli_fetch_array($odp1);
/*
                        if($w1[0]==0){
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                $NAPIS="BRAK ZAPISU";
                                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';
                        }else{
                                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                                $zap1="SELECT * FROM apki_dane WHERE id='$w1[0]' ";
                                $odp1=mysqli_query($con, $zap1);
                                $dane=mysqli_fetch_array($odp1);
                                logowanie('zlecenie');
                                $NAPIS="APEK ZOSTAŁ DODANY";
                                $apkaid=$dane['id'];
                                $action="edytuj_apka.php?id=$dane[id]";
                }
*/
                }else{
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                        $odp1=mysqli_query($con, $zap1);
                        $dane=mysqli_fetch_array($odp1);
                        $action="dodaj_apka.php";
                }

break;
default:
                $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                $zap1="SELECT * FROM apki_dane WHERE id='0' ";
                $odp1=mysqli_query($con, $zap1);
                $dane=mysqli_fetch_array($odp1);
                $action="dodaj_apka.php";
                $tabela_bledy='&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;';
}
#tabela opisu html formularza
$tabela_opis="IP|ADRES|OPIS|URL Dokumentacja|Apek Nadrzędny|Typ Apka|Grupa Apka|STAN_SIECI PING|SMOKEPING";
#tabela name formularz
$tabela_name='ip_apka|adres|opis|mac_apka|nad|typ_apki|typ_apki_grupa|stansieci_ping|smokeping';


naglowek();
?>
function zamknij(){
        self.location.href='index.php';
}
<?php
body($color);
if($apkaid!=''){
        ?>
        <hr width="50%">
        <?php
}
?>
<form>
<table width="90%" align="center" cellspacing="1" cellpadding="1" border="0">
<tr>
        <td class="tytul" width="90" align="center"><?php echo $NAPIS?></td>
        <td align="right" class="tytul1" width="10%"><input type="button" value="COFNIJ" onclick="zamknij()" class="bold"></td>
</tr>
</table>
</form>
<table width="90%" align="center" cellspacing="1" cellpadding="1" border="0">
<form action="<?php echo $action ?>" method="POST">
<input type="hidden" name="akcja" value="zapisz_apka">
<?php
$aa=explode('|',$tabela_opis);
$bb=explode('|',$tabela_name);
$dd=explode('|',$tabela_bledy);
$ile=sizeof($aa);
for($i=0;$i<$ile;$i++){
        switch($bb[$i]){
        case "nad":
                ?>
                <tr>
                        <td align="right" class="nic"><?php echo $aa[$i]?> :</td>
                        <td><select name="nad" class="bold">
                        <?php
                        $jest='';
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $pyt1="SELECT ip_apka,nad,SUBSTRING_INDEX(ip_apka,'.',1)+0 as nr,SUBSTRING_INDEX(ip_apka,'.',-1)+0 as nr1 ";
                        $pyt1.="FROM apki_dane WHERE ip_apka!='' GROUP BY ip_apka ORDER BY nr,nr1 ASC";
                        $re=mysqli_query($con, $pyt1);

                        while($w=mysqli_fetch_array($re)){
                                if($apkaid!=''){
                                        if($w[0]==$dane['nad']) $jest='selected'; else $jest='';
                                        if($dane['nad']=="0.0") echo "<option selected>0.0</option> \n";
                                }
                                echo "<option value=\'$w[0]\' $jest>$w[0]</option> \n";
                        }?>
                        </select></td>
                </tr>
                <?php
        break;
        case "typ_apki":
        case "typ_apki_grupa":
                if($bb[$i]=='typ_apki') $tabela='typ_apki';
                if($bb[$i]=='typ_apki_grupa') $tabela='typ_apki_grupa';
                ?>
                <tr>
                        <td align="right" class="nic"><?php echo $aa[$i]?> :</td>
                        <td><select name="<?php echo $bb[$i]?>" class="bold">
                        <?php
                        $con = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
                        $pyt1="SELECT id,nazwa FROM $tabela ";
                        $re=mysqli_query($con, $pyt1);
                        while($w=mysqli_fetch_array($re)){
                                if($apkaid!=''){
                                        if($w[0]==$dane[$bb[$i]]) $jest='selected'; else $jest='';
                                }
                                echo "<option value=\"$w[0]\" $jest>".odczyt($w[1])."\n";
                        }?>
                        </select></td>
                </tr>
                <?php
        break;
        case "stansieci_ping":
                switch($dane[$bb[$i]]){
                        case "T":
                                $a0='';
                                $a1='checked';
                        break;
                        default:
                                $a0='';
                                $a1='checked';
                }
                ?>
                <tr>
                        <td align="right" class="nic"><?php echo $aa[$i]?> :</td>
                        <td class="nic">
                                NIE&nbsp;---><input type="radio" name="<?php echo $bb[$i]?>" value="N" <?php echo $a0?>>&nbsp;&nbsp;&nbsp;&nbsp;
                                TAK&nbsp;---><input type="radio" name="<?php echo $bb[$i]?>" value="T" <?php echo $a1?>>&nbsp;</td>
                </tr>
                <?php
        break;
        case 'smokeping':
                switch($dane[$bb[$i]]){
                        case "T":
                                $a0='checked';
                                $a1='';
                        break;
                        default:
                                $a0='';
                                $a1='checked';
                }
                ?>
                <tr>
                        <td align="right" class="nic"><?php echo $aa[$i]?> :</td>
                        <td class="nic">
                                NIE&nbsp;---><input type="radio" name="<?php echo $bb[$i]?>" value="N" <?php echo $a0?>>&nbsp;&nbsp;&nbsp;&nbsp;
                                TAK&nbsp;---><input type="radio" name="<?php echo $bb[$i]?>" value="T" <?php echo $a1?>>&nbsp;</td>
                </tr>
                <?php
        break;
        default:
                ?>
                <tr>
                        <td align="right" class="nic"><?php echo $aa[$i]?> :</td>
                        <td><input type="text" size="70" name="<?php echo $bb[$i]?>" value="<?php echo odczyt($dane[$bb[$i]])?>" class="bold">&nbsp;<font color="red"><?php echo $dd[$i]?></font></td>
                </tr>
                <?php
        }
}
?>
</table>
<table width="90%" align="center" cellspacing="1" cellpadding="1" border="0">
<hr>
<?php
if($apkaid==''){
?>
<tr><td colspan="2" align="left"><input type="reset" value="WYCZYŚĆ" class="red">&nbsp;&nbsp;
</td>
<td><input type="submit" value="ZAPISZ" class="red"></td></tr><?php
}else{
?><tr><td colspan="2" align="right"><input type="submit" value="POPRAW" class="red"></td></tr><?php
}
?>
</table>
</form>
<?php
koniec();
?>

1 użytkowników online, w tym zalogowanych: 0, gości: 1