- Home
- Categorie
- Coding e Sistemistica
- PHP
- verificare che il sito sia valido con php
-
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?
-
[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 esempiofile_get_contents vuole l'url completo fsockopen no
-
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
-
[php]$controlla=url_exists;//sbagliato alla linea 5
$controlla = url_exists($url);[/php]
-
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
-
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.
-
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!
-
ma quello script non fa niente di ciò che ti serve...
hai una cartella con il nome di tutti i siti?