• User Attivo

    verificare che il sito sia valido con php

    Salve!Volevo chiedervi:esiste un modo, con php, di scoprire che un indirizzo web esista veramente?
    Ovvero, quando un visitatore inserisce il suo sito in un form, php puo verificare che questo sito esista veramente o si tratta di uno scherzo?


  • User

    [PHP]
    function url_exists($url){
    return (bool)@file_get_contents($url);
    }
    [/PHP]
    oppure
    [PHP]
    function url_exists($url){
    return (bool)@fsockopen($url, 80, $errno, $errstr, 30);
    }
    [/PHP]

    stai attento a cosa passi alle funzioni per
    la menata dei link attivi non ti riesco a fare un esempio

    file_get_contents vuole l'url completo fsockopen no

    :ciauz:


  • User Attivo

    Ho provato, ma mi da un errore 500, quindi del server:
    Nel file che processa i dati, ho scritto questo codice:sapresti dirmi dove ho sbagliato?
    [PHP]<?php
    include ('controlla.php');
    $url=$_GET['url'];
    $save = "s";// con questa s specifico che il file deve essere salvato dopo la chiusura
    $controlla=url_exists;
    if ($controlla==TRUE){
    print("Sito inserito correttamente!");
    $fp = @fopen($url, 'r');
    if ($fp) {
    $headers = stream_get_meta_data($fp);
    print_r($headers);
    }
    if("$save == s"){
    $fp = fopen("log.txt","a")or die("Errore nell'apertura del file");//Qui viene stampato a video un errore personalizzato se non si riesce ad aprire il file
    fwrite($fp,"$url\n")or die("Errore nella scrittura del file");//Qui viene stampato a video un errore personalizzato se non si riesce a scrivere nel file
    fclose($fp);//Chiudo il file di testo e salvo
    };
    } else {
    print ("sito errato");
    };
    ?>[/PHP]

    Nel file controlla.php c'è lo script che mi hai dato tu.
    [PHP]function url_exists($url){
    return (bool)@file_get_contents($url);
    } [/PHP]
    Scusa se ti ho risposto in ritardo


  • User Attivo

    [php]$controlla=url_exists;//sbagliato alla linea 5
    $controlla = url_exists($url);[/php]


  • User Attivo

    Ragazzi, ho provato a cambiare script con questo ma mi da sempre un errore 500:

    [PHP]<?php
    $url=$_GET['url'];
    $fp = fopen($url, "r");
    flus();
    if (!$fp) {
    print "L'url non esiste!";
    } else {
    fclose($fp);
    print "Sito inserito correttamente!";
    $save = "s";// con questa s specifico che il file deve essere salvato dopo la chiusura
    if("$save == s"){
    $fp = fopen("log.txt","a")or die("Errore nell'apertura del file");//Qui viene stampato a video un errore personalizzato se non si riesce ad aprire il file
    fwrite($fp,"$url\n")or die("Errore nella scrittura del file");//Qui viene stampato a video un errore personalizzato se non si riesce a scrivere nel file
    fclose($fp);//Chiudo il file di testo e salvo
    };
    ?>[/PHP]
    Prima ero riuscito a far funzionare l'altro script, ma ogni volta che trovava un sito che esisteva realmente, mi scriveva, poi, una serie di caratteri strani e parole senza senso.
    Grazie


  • User Attivo

    ma questo che hai postato ora non fa nulla... apre un file con il nome dell'url passato get, flus(); non so... magari volevi usare flush(); poi controlla se è riuscito ad aprire il file se non lo apre dice che l'url non esiste... altrimenti chiudi il file poi stampi sito inserito correttamente e poi manca una parentesi graffa e il ; finale non ci va.


  • User Attivo

    Ragazzi, ho risolto!Ho tolto il flush , ma ogni qualvolta che provavo lo script, quando inserivo un sito sbagliato, mi comparivano 2 warning.Ho risolto così, inserendo un error_reporting:
    [PHP]<?php error_reporting (E_ERROR);
    /NetSite-2008-Il Netsurfer/
    $url=$_GET['url'];
    $fp = fopen($url, "r");
    if (!$fp) {
    print "L'url non esiste!";
    } else {
    fclose($fp);
    print "Sito inserito correttamente!";
    $save = "s";// con questa s specifico che il file deve essere salvato dopo la chiusura
    if("$save == s"){
    $fp = fopen("log.txt","a")or die("Errore nell'apertura del file");//Qui viene stampato a video un errore personalizzato se non si riesce ad aprire il file
    fwrite($fp,"$url\n")or die("Errore nella scrittura del file");//Qui viene stampato a video un errore personalizzato se non si riesce a scrivere nel file
    fclose($fp);//Chiudo il file di testo e salvo
    }
    }
    ?>[/PHP]
    Ciao!


  • User Attivo

    ma quello script non fa niente di ciò che ti serve...
    hai una cartella con il nome di tutti i siti?