Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Validare e verificare indirizzo WEB

    Problema:

    Avendo in input (inserito dall'utente) un indirizzo web (quindi niente ftp o altri protocolli internet), verificare che sia scritto correttamente e che la pagina relativa esista veramente, nel modo più veloce possibile
    su PHP 4.3.x e PHP 4.4.x

    ps: ho trovato questo http://wiki.grusp.it/index.php/Contr...enza_di_un_URI ma non riesco a farli funzionare

    grazie

  2. #2

  3. #3
    l'esempio migliore è quello sotto tramite le curl poichè quello con la socket è buono ma non sempre esatto (ad esempio se volessi postare una pagina su porta diversa dall' 80 potrebbe fallire).

    Usa quello, scorporandolo dalla classe, quindi senza il $this->url ma inviando l'url direttamente in funzione (quindi non usata come metodo) altrimenti, se non hai le curl abilitate, prova una cosa semplice tipo questa:
    codice:
    function checkUri($uri) {
    	$connection = null;
    	$result = false;
    	if(!preg_match("/^[ht|f]tp[s]?:\/\/[^\[[:space:]]+]/", $uri))
    		$uri = "http://".$uri;
    	if(@$connection = fopen($uri, "r")) {
    		$result = true;
    		fclose($connection);
    	}
    	return $result;
    }
    
    echo checkUri("www.3site.it") ? "OK" : "NO";



    P.S. se l'host non ha abilitata la lettura di pagine esterne mi sa che non vai lontano ne così, ne con le curl, ne con le socket
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Originariamente inviato da andr3a
    prova una cosa semplice tipo questa:
    codice:
    function checkUri($uri) {
    	$connection = null;
    	$result = false;
    	if(!preg_match("/^[ht|f]tp[s]?:\/\/[^\[[:space:]]+]/", $uri))
    		$uri = "http://".$uri;
    	if(@$connection = fopen($uri, "r")) {
    		$result = true;
    		fclose($connection);
    	}
    	return $result;
    }
    
    echo checkUri("www.3site.it") ? "OK" : "NO";



    P.S. se l'host non ha abilitata la lettura di pagine esterne mi sa che non vai lontano ne così, ne con le curl, ne con le socket
    grazie antrea
    ma questo funziona bene tanto quanto le curl?
    comunque sull'host attuale funzia
    poi quando sposto vedo

  5. #5
    Originariamente inviato da andrea.paiola
    ma questo funziona bene tanto quanto le curl?
    a parte che non l'ho testato, solo scritto al volo, quindi controlla più di un sito (scrivine alcuni con http, ftp o https, vedi se la preg funziona bene e se la funzione da il risultato sperato) cmq si basa sulla presunta presenza dell'indirizzo.

    Se riesce a leggerlo significa che l'indirizzo è valido, se non riesce ti dice che l'indirizzo non è valido.

    I controlli sono inesistenti ma non è semplice farli perfetti per questo le curl sono sicuramente una soluzione più idonea.

    Ad esempio con questa non verifichi redirect o altro, con le curl potresti gestire anche altri stati diversi dal 200.

    Vedi tu insomma se ti va bene
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Originariamente inviato da andr3a
    a parte che non l'ho testato
    mai fidarsi di antrea

    , solo scritto al volo, quindi controlla più di un sito (scrivine alcuni con http, ftp o https, vedi se la preg funziona bene e se la funzione da il risultato sperato) cmq si basa sulla presunta presenza dell'indirizzo.

    Se riesce a leggerlo significa che l'indirizzo è valido, se non riesce ti dice che l'indirizzo non è valido.

    I controlli sono inesistenti ma non è semplice farli perfetti per questo le curl sono sicuramente una soluzione più idonea.

    Ad esempio con questa non verifichi redirect o altro, con le curl potresti gestire anche altri stati diversi dal 200.

    Vedi tu insomma se ti va bene
    loool allora devo testarlo tutto

    voglio solo testare se esiste la pagina collegata... dei redirect me ne frego... l'importante è che la pagina ci sia

    provo a vedere se ste curl funziano

  7. #7
    Originariamente inviato da andrea.paiola
    provo a vedere se ste curl funziano
    mmm mi sa di no Fatal error: Call to undefined function: curl_init() in...
    vabbè niente userà l'antrea function

  8. #8
    Originariamente inviato da andrea.paiola
    loool allora devo testarlo tutto
    devi solo verificare se la preg fa bene il suo lavoro ... non devi fare altro
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Originariamente inviato da andr3a
    devi solo verificare se la preg fa bene il suo lavoro ... non devi fare altro
    ok grasias
    hasta la vista

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.