doulai2573
doulai2573
2011-03-03 13:12

如何只获取IP地址/子网

已采纳

I'm using a jquery plugin, it maskered my field and allow the user only to type the correct values. It is working very well, but now when I submit my form, the object IP is an Array, I need to retrieve only the IP number (10.1.25.2/30)

The result:

$ip = $_POST['ipaddress'];
print_r($ip);

//It returns to me
Array ( [abcd] => Array ( [0] => 10.1.25.2/30 ) ) 

I need implode the Array or do something on this way.. help please.!

The Whole Code:

HTML Page jQuery plugins included:

<script src="scripts/jquery.min.js" type="text/javascript">
<script src="jquery.validate/jquery.caret.js" type="text/javascript"></script>
<script src="jquery.validate/jquery.ipaddress.js" type="text/javascript"></script>

    <script>
        $(function(){
        $('#ip').ipaddress({cidr:true});
        });     
    </script>

<form name="form1" method="post" action="equipAction.php">
 <tr>
  <td>IP</td>
  <td><input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" />
  <b>»» IP atribuído ao contrato do Cliente/Torre </b> </td>    
 </tr>
 <input type='submit' name="alt" value="Edit" class="btn" />
</form>

Now my Action php code:

 if ($_POST["alt"] == "Edit") {

    # Dados do form
    $idequip  = $_GET['id'];
    $contrato = $_POST['contrato'];
    $transmi  = $_POST['transmissor'];
    $ip       = $_POST['ipaddress'];
    $local    = $_POST['local']; //tipo_equip
    $obs      = $_POST['obs'];
    $usado    = $_POST['usado'];

    echo "<br />";
    print_r($ip);




    # Atualiza dados do equipamento mestre
    # desenvolvendo
    $res = mysql_query("UPDATE equipment SET idtorre='$transmi', ip='$ip', tipo_equip='$local', obs='$obs', usado_cliente='$usado' WHERE id='$idequip'") or die("Erro na query: atualização equipamento mestre.");
    #header("Location: equipamento_adm.php?return=3&ip=$control");
    exit;
 }

That all!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • dqhsv0147421 dqhsv0147421 10年前

    It a simple multidimensional array, you can retrieve your value like this :

    $ip = $_POST['ipaddress'];    
    $justip = $ip['abcd'][0];
    

    Now there's only the ip address in the $justip variable.

    You should maybe read the documentation about arrays : http://ch.php.net/manual/en/language.types.array.php

    点赞 评论 复制链接分享
  • dongluo9156 dongluo9156 10年前

    By the way, if you switch from

    <input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" />
    

    to

    <input name="ipaddress[abcd]" id="ip" type="text" value="<?=$ip;?>" />
    

    you will get rid of the array (notice the removed [] from the input's name attribute).

    点赞 评论 复制链接分享
  • doumao6048 doumao6048 10年前

    How many forms are on this page?

    The reason that it's showing up in an array and not in $_POST['ipaddress'] is this: <input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" /> in the form html. The [abcd][] causes it to make ipaddress an array containing an array with a key of 'abcd' of which the first available key gets populated with the value from the form. If you did <input name="ipaddress" id="ip" type="text" value="<?=$ip;?>" /> then the IP address would be available directly through $_POST['ipaddress'].

    If you have multiple forms, then use name="ipaddress[]" and each form will populate a key of the $_POST['ipaddress'] array, so $_POST['ipaddress'][0] will be the first form and $_POST['ipaddress'][1] will be the second form and so on.

    点赞 评论 复制链接分享