Foros del Web » Programando para Internet » PHP »

problemas con whois

Estas en el tema de problemas con whois en el foro de PHP en Foros del Web. Buenas; Utilizo un whois que me funciona a la perfección (para quien lo quiera está en la dirección: http://www.phpwhois.org/ ) Pero el problema es el ...
  #1 (permalink)  
Antiguo 17/06/2003, 04:41
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
problemas con whois

Buenas;

Utilizo un whois que me funciona a la perfección (para quien lo quiera está en la dirección: http://www.phpwhois.org/ )

Pero el problema es el siguiente:

en vez de hacer el típico "pon tu dominio y selecciona de un campo desplegable la terminación del mismo .com .es ..."
intento hacer lo que tiene Nominalia (https://secure.nominalia.com/cas/frames.html), en donde puedes escojer cuatro o cinco terminaciones y te los resultados de todos a la vez.

Pues bien, les escribo el código de resultados, que me funciona si busco con sólo una terminación:

Código PHP:
include("main.whois");

# Junto el campo del dominio con el de la terminación

$domain= ("$dominio."."$terminacion");

if(isset(
$_REQUEST['domain'])) {
    
$domain $_REQUEST['domain'];
}
$whois = new Whois($domain);
$result $whois->Lookup();

if(isset(
$result["rawdata"])){
    
$res implode($result["rawdata"],"<br>");
    if ((
$res != "") && !ereg("no match",strtolower($res)) && !ereg("not found",strtolower($res)) 
&& !
ereg("is available",strtolower($res)) && !ereg("no se ha encontrado",strtolower($res)) && !ereg("no encontrado",strtolower($res)) ){
        echo 
"<pre>";
        echo 
"Dominio No Disponible";
        echo 
"</pre>";
    }else{
        echo 
"<pre>";
        echo 
"Dominio Libre";
        echo 
"</pre>";
    } 
# End If
# End If 
Y entonces decido hacerlo múltiple:
Código PHP:
include("main.whois");
/////////////////////////////////////////////////////////////
# si está marcada la casilla com...
if ($com=="com") {

$domain= ("$dom."."$com");

if(isset(
$_REQUEST['domain'])) {
    
$domain $_REQUEST['domain'];
}

# !!!!!!!!!!!!!!!!!!!!!!!Y aquí viene el problema, ya que llama a una función que está en el main.whois y no la puede volver a llamar abajo. 
El resultado es que sólo me da los resultados de la prímera que está marcadaSi quito esto aquí no me muestra nada y abajo sí
$whois = new Whois($domain);
$result $whois->Lookup();
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! hasta aquí
echo "<form method=\"post\" action=\"index.php\">";
echo 
"<input name=\"domain\" value=\"".$domain."\"/>";
echo 
"<input type=\"submit\"/>";
echo 
"</form>";

if(isset(
$result["rawdata"])){
    
$res implode($result["rawdata"],"<br>");
    if ((
$res != "") && !ereg("no match",strtolower($res)) && !ereg("not found",strtolower($res)) 
&& !
ereg("is available",strtolower($res)) && !ereg("no se ha encontrado",strtolower($res)) && !ereg("no encontrado",strtolower($res)) ){
        echo 
"<pre>";
        echo 
"Dominio No Disponible";
        echo 
"</pre>";
    }else{
        echo 
"<pre>";
        echo 
"Dominio Libre";
        echo 
"</pre>";
    } 
# End If
# End If

# End if del "com"

//////////////////////////////////////////////////

if ($es=="es") {

if (
$index_aclass==ok) {
$domain= ("$dom."."es"); }

if(isset(
$_REQUEST['domain'])) {
    
$domain $_REQUEST['domain'];
}

# !!!!!!!!!!!!!!!!!!!!!!!Y aquí viene el problema, ya que llama a una función que está en el main.whois y no la puede volver a llamar abajo. 
El resultado es que sólo me da los resultados de la prímera que está marcada
$whois = new Whois($domain);
$result $whois->Lookup();
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! hasta aquí

echo "<form method=\"post\" action=\"index.php\">";
echo 
"<input name=\"domain\" value=\"".$domain."\"/>";
echo 
"<input type=\"submit\"/>";
echo 
"</form>";

if(isset(
$result["rawdata"])){
    
$res implode($result["rawdata"],"<br>");
    if ((
$res != "") && !ereg("no match",strtolower($res)) && !ereg("not found",strtolower($res)) 
&& !
ereg("is available",strtolower($res)) && !ereg("no se ha encontrado",strtolower($res)) && !ereg("no encontrado",strtolower($res)) ){
        echo 
"<pre>";
        echo 
"Dominio No Disponible";
        echo 
"</pre>";
    }else{
        echo 
"<pre>";
        echo 
"Dominio Libre";
        echo 
"</pre>";
    } 
# End If
# End If
# End if del "es" 
Es un código complejo y no tengo ni idea de cómo puedo modificar lo escrito entre signos de exclamación para que me lea los dos .com y .es.

Si han entendido algo, ayudenme...

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 17/06/2003, 11:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. ya que tienes tu código que funciona en "función" a la variable $terminacion ..:

1) Hazte una función de todo ese código. Le pasas como parámetro tu $dominio y tu $terminacion.
2) usa un array con las "terminaciones" (.com .. .es o lo que quieras)
3) reccorre ese array en un bucle el cual extrae un elemento de ese array y se lo pasa a la función ..


Código PHP:
function busca_dominio($dominio,$terminacion){

// aquí tu código que ya tienes .. (el priméro)

}

$terminaciones=Array("com","es","etc");

foreach (
$terminaciones as $terminacion){
   
busca_dominio($dominio,$terminacion){

Y bueno .. los mensajes de "disponible o no disponible" de:

echo "Dominio No Disponible";

Yo añadiría .. el dominio+terminacion a título informativo:

Código PHP:
echo $dominio.".".$terminacion." Dominio No Disponible"
(y lo mismo para el otro mensaje..)

A todo esto .. si conviertes tu "código/función" en código que devuelva sólo un TRUE o FALSE dependiendo de si está libre o no el domino .. tendras un mejor control del "diseño" de los mensajes de error ademas de una mini libreria funcional ..

Un saludo,

Pd: Ojo con el "scope" (ambito) de las variables .. pues vas a usar una función ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 16:05.