Search code examples
phpcheckboxdnsgetrecord

how to show only selected domain extensions with checkbox using dns_get_record


I am trying to check only selected domain extensions using check-box but it check all domain extensions existing in array.

here is what I am trying.

    $name_domain = trim($_POST['domain_name']).$_POST['suffix'];
    $domains = array(
    ($name_domain) ? trim($_POST['domain_name']).$_POST['suffix'] : '',
    (isset($_POST['_org'])) ? trim($_POST['domain_name']).'.org' : trim($_POST['domain_name']).$_POST['_org'],
    (isset($_POST['_net'])) ? trim($_POST['domain_name']).'.net' : trim($_POST['domain_name']).$_POST['_net'], 
    (isset($_POST['_biz'])) ? trim($_POST['domain_name']).'.biz' : trim($_POST['domain_name']).$_POST['_biz'],
    (isset($_POST['_ws'])) ? trim($_POST['domain_name']).'.ws' : trim($_POST['domain_name']).$_POST['_ws'],
    (isset($_POST['_mobi'])) ? trim($_POST['domain_name']).'.mobi' : trim($_POST['domain_name']).$_POST['_mobi'],
    (isset($_POST['_info'])) ? trim($_POST['domain_name']).'.info' : trim($_POST['domain_name']).$_POST['_info'],
    );
    $msg='';
    foreach($domains as $d){
        $response = @dns_get_record($d, DNS_ALL);
        if(empty($response)){
                    $msg .= "<h2 style='color:green;' >Domain $d is available.</h2>";
        }else if(!empty($response)){
                    $msg .= "<h2 style='color:red;'>Domain $d has taken.</h2>";
        }

html

<td colspan="2"><input type="checkbox" name="_org" value=".org"> <label for="_org">.org</label></td>
<td colspan="2"><input type="checkbox" name="_net" value=".net"> <label for="_net">.net</label></td>
<td colspan="2"><input type="checkbox" name="_biz" value=".biz"> <label for="_biz">.biz</label></td>
<td colspan="2"><input type="checkbox" name="_ws" value=".ws"> <label for="_ws">.ws</label></td>
<td colspan="2"><input type="checkbox" name="_mobi" value=".mobi"> <label for="_mobi">.mobi</label></td>
<td colspan="2"><input type="checkbox" name="_info" value=".info"> <label for="_info">.info</label></td>

any idea how to only show and check only selected extension checking through checkboxes?


Solution

  • try this

    <input type="checkbox" id="_org" name="tld[]" value=".org">
    <label for="_org">.org</label>
    

    this is full example,

    <form method="post" action="">
    <input type="text" name="domain_name" />
    <table>
        <tr>
            <td colspan="2">
                <input type="checkbox" id="_org" name="tld[]" value=".org">
                <label for="_org">.org</label>
            </td>
            <td colspan="2">
                <input type="checkbox" id="_net" name="tld[]" value=".net">
                <label for="_net">.net</label>
            </td>
            <td colspan="2">
                <input type="checkbox" id="_biz" name="tld[]" value=".biz">
                <label for="_biz">.biz</label>
            </td>
            <td colspan="2">
                <input type="checkbox" id="_ws" name="tld[]" value=".ws">
                <label for="_ws">.ws</label>
            </td>
            <td colspan="2">
                <input type="checkbox" id="_mobi" name="tld[]" value=".mobi">
                <label for="_mobi">.mobi</label>
            </td>
            <td colspan="2">
                <input type="checkbox" id="_info" name="tld[]" value=".info">
                <label for="_info">.info</label>
            </td>
        </tr>
    </table>
    <input type="submit" name="submit" value="submit" />
    </form>
    
    $domain_name = trim($_POST['domain_name']);
    $responses = array();
    $msg = '';
    
    foreach($_POST['tld'] as $tld) {
    switch($tld)
    {
        # white list
        case '.org':
        case '.net':
        case '.biz':
        case '.ws':
        case '.mobi':
        case '.info':
    
            $domain = $domain_name . $tld;
            $dns = dns_get_record($domain, DNS_ALL);
    
            # available
            if(count($dns) == 0) $msg .= "<h2 style='color:green;' >Domain $domain is available.</h2>";
    
            # error
            elseif($dns === false) $msg .= "<h2 style='color:green;' >Error on domain $domain.</h2>";
    
            # not available
            else
            {
                $msg .= "<h2 style='color:red;'>Domain $domain has taken.</h2>";
                $responses[$domain] = $dns;
            }
    
            break;
    }
    }
    
    echo $msg;