Foros del Web » Programando para Internet » PHP »

problema con código

Estas en el tema de problema con código en el foro de PHP en Foros del Web. Hola amigos, estoy luchando con un código pero me falla y no se como seguir, es un validador de dominios, quiero que cuando el dominio ...
  #1 (permalink)  
Antiguo 02/05/2011, 15:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 12 años, 11 meses
Puntos: 0
problema con código

Hola amigos, estoy luchando con un código pero me falla y no se como seguir, es un validador de dominios, quiero que cuando el dominio lo encuentre en la base de datos me redirija a otra url con un formulario y cuando no esté disponible vuelva a la url en la que se ingresa la búsqueda. El código que tengo es el siguiente:

<?php

class maxWhois{

var $serverList;
var $tr = 0;

function maxWhois(){
$this->serverList[0]['top'] = 'com';
$this->serverList[0]['server'] = 'whois.crsnic.net';
$this->serverList[0]['response'] = 'No match for';
$this->serverList[0]['check'] = true;

$this->serverList[1]['top'] = 'net';
$this->serverList[1]['server'] = 'whois.crsnic.net';
$this->serverList[1]['response'] = 'No match for';
$this->serverList[1]['check'] = false;

$this->serverList[2]['top'] = 'org';
$this->serverList[2]['server'] = 'whois.publicinterestregistry.net';
$this->serverList[2]['response'] = 'NOT FOUND';
$this->serverList[2]['check'] = false;

$this->serverList[3]['top'] = 'info';
$this->serverList[3]['server'] = 'whois.afilias.net';
$this->serverList[3]['response'] = 'NOT FOUND';
$this->serverList[3]['check'] = false;

$this->serverList[4]['top'] = 'name';
$this->serverList[4]['server'] = 'whois.nic.name';
$this->serverList[4]['response'] = 'No match';
$this->serverList[4]['check'] = false;

$this->serverList[5]['top'] = 'us';
$this->serverList[5]['server'] = 'whois.nic.us';
$this->serverList[5]['response'] = 'Not found:';
$this->serverList[5]['check'] = false;

$this->serverList[6]['top'] = 'biz';
$this->serverList[6]['server'] = 'whois.nic.biz';
$this->serverList[6]['response'] = 'Not found';
$this->serverList[6]['check'] = false;

$this->serverList[7]['top'] = 'ca';
$this->serverList[7]['server'] = 'whois.cira.ca';
$this->serverList[7]['response'] = 'AVAIL';
$this->serverList[7]['check'] = false;

$this->serverList[8]['top'] = 'tv';
$this->serverList[8]['server'] = 'whois.internic.net';
$this->serverList[8]['response'] = 'No match for';
$this->serverList[8]['check'] = false;
}

function showHeader(){
?>
<div id="container">
<div id="header"><div id="header_left"></div>
<div id="content">
<?php
}

function showWhoisForm(){
?>




<form action="<?php echo $_SERVER['../maxWhois/PHP_SELF']; ?>" method="post" >
<center>
<table class="dtable2">
<tr><th colspan="5">Introduzca el nombre del dominio:</th></tr>
<tr><td colspan="5"><center><br/>www.<input name="domain" type="text" size="35" /></center></td></tr>
<tr>
<th colspan="5"><br/>Seleccione el tipo de dominio:</th>
</tr>
<tr>
</center>
<?php
$i = 0;
foreach ($this->serverList as $value) {
if ($value['check'] == true) $checked=" checked ";
else $checked = " ";

echo '<td><input type="checkbox" name="top_'.$value['top'].'"'.$checked.'/>.'.$value['top'].'</td>';
$i++;
if ($i > 4) {
$i = 0;
echo '</tr><tr>';
}
}

?>
</tr>
</table>
<center><br/><input type="submit" name="submitBtn" class="sbtn" value="Buscar" /></center>
</form>
<?php
}

function showFooter(){
?>
</div>
<div id="footer"></div>
</div>

<?php
}

function processWhois(){
$this->showHeader();

if (!isset($_POST['submitBtn'])){
$this->showWhoisForm();
} else {

$domainName = (isset($_POST['domain'])) ? $_POST['domain'] : '';

for ($i = 0; $i < sizeof($this->serverList); $i++) {
$actTop = "top_".$this->serverList[$i]['top'];
$this->serverList[$i]['check'] = isset($_POST[$actTop]) ? true : false;
}

// Check domains only if the base name is big enough
if (strlen($domainName)>2){
echo '<table class="dtable">';
echo '<tr><th colspan="2">Result</th></tr>';

for ($i = 0; $i < sizeof($this->serverList); $i++) {
if ($this->serverList[$i]['check']){
$this->showDomainResult($domainName.".".$this->serverList[$i]['top'],
$this->serverList[$i]['server'],
$this->serverList[$i]['response']);
}
}

echo '</table>';
}
$this->showWhoisForm();

}
$this->showFooter();

}

function showDomainResult($domain,$server,$findText){
if ($this->tr == 0){
$this->tr = 1;
$class = " class='tr2'";
} else {
$this->tr = 0;
$class = "";
}
if ($this->checkDomain($domain,$server,$findText)){
echo "<tr $class><td>$domain</td><td class='ava'> <a href='registrofallido.php'>AVAILABLE</a></td></tr>";
}
else//aqui va el código para redireccionar el php/////;

}

function checkDomain($domain,$server,$findText){
$con = fsockopen($server, 43);
if (!$con) return false;

// Send the requested doman name
fputs($con, $domain."\r\n");

// Read and store the server response
$response = ' :';
while(!feof($con)) {
$response .= fgets($con,128);
}

// Close the connection
fclose($con);

// Check the response stream whether the domain is available
if (strpos($response, $findText)){
return true;
}
else {
return false;
}
}

}
?>

Este código lo aprovecho de uno que circula por la red. Yo pienso que las sentencias que yo quiero han de ir en el trozo siguiente del código anterior:

if ($this->checkDomain($domain,$server,$findText)){
echo "<tr $class><td>$domain</td><td class='ava'> <a href='formulario.php'>AVAILABLE</a></td></tr>";
}
else//aqui va el código para redireccionar el php cuando no está disponible/////;

El problema es que al hacer un header('Localitation.....) para redireccionar me sale un error asociado al header y no entiendo pq, ya que todo el código está en php y no en html... Alguna sugerencia?? Estoy colapsado de tanto pensar ya en la solución....El problema también sería donde tengo el href solo que en este caso redireccionaría al formulario...

Muchas gracias !!!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:35.