Page 1 of 1

[OPGELOST] probleem met externe php

Posted: Thu Oct 15, 2009 3:45 pm
by erpee
Ik roep in mij site een externe php aan zoals beschreven in dit stuk.

Dat gaat allemaal goed ... tot op zekere hoogte.
Het gaat hier om een whois bestand. Op het moment dat ik een domeinnaam laat controleren, komen de resultaten niet in beeld maar gaat de site naar de startpagina.

Wat mis ik.

Re: probleem met externe php

Posted: Thu Oct 15, 2009 3:58 pm
by Jos
Om hoeveel php code gaat het? Is het een systeem wat uit meerdere bestanden bestaat, of gewoon een stukje code.

Ik beheer zelf een site waar ik een complete wedstrijdkalender van de site van de sportbond trek en op de verenigingssite laat zien, met eigen opmaak.
Deze code is gewoon in een UDT geplakt zonder de config te hoeven aanpassen en dus zonder de {php} smarty tag.

Re: probleem met externe php

Posted: Thu Oct 15, 2009 8:54 pm
by erpee
Jos wrote: Om hoeveel php code gaat het?
Het is 1 klein php bestand. Ik heb getracht het in een udt te hangen ... maar dat kreeg ik niet voor elkaar. (Dat zegt meer over mijn snap-vermogen van UDT's  ;D)

Dit is de code:

Code: Select all

<?php
ob_start();
?>
<__html>

<head>
  <title>wTol. ~ Whois</title>
  <style>
  body, td, input {
    font-family: verdana;
    font-size: 11px;
  }

  form {
    margin: 0px;
  }

  a {
    color: black;
    text-decoration: none;
  }
  </style>
</head>

</__body>

<?php
$whois = array();
$whois['nl']   = array("whois.domain-registry.nl", 43, "{domein}.nl", "is free");
$whois['be']   = array("whois.dns.be", 43, "{domein}", "FREE");
$whois['com']  = array("whois.nsiregistry.net", 43, "{domein}.com", "No match for");
$whois['net']  = array("whois.nsiregistry.net", 43, "{domein}.net", "No match for");
$whois['org']  = array("whois.publicinterestregistry.net", 43, "{domein}.org", "NOT FOUND");
$whois['info'] = array("whois.afilias.info", 43, "{domein}.info", "NOT FOUND");
$whois['biz']  = array("whois.biz", 43, "{domein}.biz", "Not found:");
$whois['nu']   = array("whois.nic.nu", 43, "{domein}.nu", "NO MATCH");

function whois($whois)
{
    list ($server, $poort, $domein, $vrij) = $whois;
    $domein = str_replace("{domein}", $_GET['domein'], $domein);

    $fp = fsockopen($server, $poort);

    if($fp)
    {
        fputs($fp, $domein."\r\n");

        while(!feof($fp))
        {
            $data .= fread($fp, 1000);
        }

        fclose($fp);
    }
    else
    {
        $data = "error";
    }

    return $data;
}

if ($_REQUEST['submit'])
{
    header("location:?domein=".$_POST['domein']);
}
elseif (!empty($_GET['domein']))
{
    if (!empty($_GET['ext']))
    {
        echo "<pre>".whois($whois[$_GET['ext']])."</pre>".
        "<br>".
        "» <a href="?domein=".$_GET['domein']."">Terug</a>";
    }
    else
    {
        echo "<table>".
        "<tr>".
        "<td><u>Domeincheck:</u></td>".
        "<td> </td>".
        "</tr>";

        foreach ($whois as $ext => $value)
        {
            list ($server, $poort, $domein, $vrij) = $value;

            $data = whois($value);

            if (!ereg($vrij, $data))
            {
                $status = "<a href="?domein=".$_GET['domein']."&ext=".$ext.""><font color="red">bezet</font></a>";
            }
            elseif ($data == "error")
            {
                $status = "<font color="red">error</font>";
            }
            else
            {
                $status = "<font color="darkgreen">vrij</font>";
            }

            echo "<tr>".
            "<td>".$_GET['domein'].".".$ext."</td>".
            "<td align="right">".$status."</td>".
            "</tr>";
        }

        echo "</table>".
        "<br>".
        "» <a href="whois.php">Terug</a>";
    }
}
else
{
?>
<form method="post">
<table>
  <tr>
    <td>Domeinnaam zonder extensie:</td>
    <td><input type="text" name="domein"></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type="submit" name="submit" value="Controleer!"></td>
  </tr>
</table>
</form>
<?php
}
?>

<__body>

</__html>

Re: probleem met externe php

Posted: Thu Oct 15, 2009 9:15 pm
by Jos
Die if $_REQUEST['submit'] zal de boosdoener zijn. Volgens mij heb je daar een vooroorlogse php versie voor nodig   ;)

Maar hier heb je de code die je in een UDT kan plakken. Het enige wat je nog moet doen is de terug-link van een juiste url voorzien.

Bij mij werkt ie. Dwz. hij geeft resultaten, maar ik twijfel aan de correctheid ervan  8)

Code: Select all

ob_start();

$whois = array();
$whois['nl']   = array("whois.domain-registry.nl", 43, "{domein}.nl", "is free");
$whois['be']   = array("whois.dns.be", 43, "{domein}", "FREE");
$whois['com']  = array("whois.nsiregistry.net", 43, "{domein}.com", "No match for");
$whois['net']  = array("whois.nsiregistry.net", 43, "{domein}.net", "No match for");
$whois['org']  = array("whois.publicinterestregistry.net", 43, "{domein}.org", "NOT FOUND");
$whois['info'] = array("whois.afilias.info", 43, "{domein}.info", "NOT FOUND");
$whois['biz']  = array("whois.biz", 43, "{domein}.biz", "Not found:");
$whois['nu']   = array("whois.nic.nu", 43, "{domein}.nu", "NO MATCH");

function whois($whois)
{
    list ($server, $poort, $domein, $vrij) = $whois;
    $domein = str_replace("{domein}", $_GET['domein'], $domein);

    $fp = fsockopen($server, $poort);

    if($fp)
    {
        fputs($fp, $domein."\r\n");

        while(!feof($fp))
        {
            $data .= fread($fp, 1000);
        }

        fclose($fp);
    }
    else
    {
        $data = "error";
    }

    return $data;
}

if ($_SERVER['REQUEST_METHOD']=='POST' && !empty($_POST['domein']))
{
    if (!empty($_POST['ext']))
    {
        echo "<pre>".whois($whois[$_POST['ext']])."</pre>".
        "<br>".
        "» <a href=\"?domein=".htmlspecialchars($_POST['domein'])."\">Terug</a>";
    }
    else
    {
        echo "<table>".
        "<tr>".
        "<td><u>Domeincheck:</u></td>".
        "<td> </td>".
        "</tr>";

        foreach ($whois as $ext => $value)
        {
            list ($server, $poort, $domein, $vrij) = $value;

            $data = whois($value);

            if (!ereg($vrij, $data))
            {
                $status = "<a href=\"?domein=".htmlspecialchars($_POST['domein'])."&ext=".$ext."\"><font color=\"red\">bezet</font></a>";
            }
            elseif ($data == "error")
            {
                $status = "<font color=\"red\">error</font>";
            }
            else
            {
                $status = "<font color=\"darkgreen\">vrij</font>";
            }

            echo "<tr>".
            "<td>".$_POST['domein'].".".$ext."</td>".
            "<td align=\"right\">".$status."</td>".
            "</tr>";
        }

        echo "</table>".
        "<br>".
        "» <a href=\"whois.php\">Terug</a>";
    }
}
else
{
echo '
<form method="post">
<table>
  <tr>
    <td>Domeinnaam zonder extensie:</td>
    <td><input type="text" name="domein"></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type="submit" name="submit" value="Controleer!"></td>
  </tr>
</table>
</form>
';
}

Re: probleem met externe php

Posted: Fri Oct 16, 2009 6:06 am
by erpee
Klopt, hij werkt. Dank je voor je hulp!

Ik was er al achter dat niet alle resultaten kloppen ... da's de volgende klus om dat recht te breien.  ;)