IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Débutant]Tester la validité d'une URL


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [Débutant]Tester la validité d'une URL
    Bonjour,

    Je voudrais savoir s'il est possible de tester la validité d'une URL en javascript.

    Quand l'utilisateur entre une url dans un champs, il aurait la possibilité d'appuyer sur un bouton pour tester si le lien existe.

    Merci d'avance !
    Dernière modification par Invité ; 13/03/2008 à 15h24.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    eventuellement lancer un ajax et tester le readystatus ou le responsetext ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'aurais peut être du ajouter que je suis un méga débutant PHP...


    [edit]
    hum hum.... méga débutant javascript.... hum hum.... je sais pas ce que j'ai aujourd'hui...
    Dernière modification par Invité ; 13/03/2008 à 14h38.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ça tombe bien c'est du javascript ^^
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Je crois pas que tu puisses appeler une url autre que sur ton site en Ajax

  6. #6
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Voici un proxy php pour "router" ta requête XHR (class_http.php + proxy.php) en mode cross domain
    et voici le code JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function getXhr(){
    	var xhr = null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest();
    	else if(window.ActiveXObject){ // Internet Explorer
    		try{xhr = new ActiveXObject("Msxml2.XMLHTTP");}
    		catch(e){try{xhr = new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}
    	}else{ // XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHttpRequest...");
    		xhr = false;
    	}
    	return xhr;
    }
     
    function testURL(url){
    	var xhr=getXhr();
    	xhr.open("GET", 'proxy.php?url='url, true);
    	xhr.onreadystatechange = function(){
    		if(xhr.status==404){ //404 Error
    			alert(url+' is down');
    		}
    	} 
    	xhr.send(data);
    }
    Edit : ajoute xhr.abort(); dans le if(xhr.status==404){} c'est plus propre

  7. #7
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    je crois qu'il est pas possible de lancer une requête ajax sur un autre serveur.
    Mais indirectement, tu peux créer un script php qui vérifie la validité de l'url et lancer la requête ajax sur ce script.

    [edit]oups le temps que j'écrive DoubleU l'a déjà dit[/edit]

  8. #8
    Invité
    Invité(e)
    Par défaut
    Vous pourriez me donner le lien vers un tuto pour lancer une requête ajax ? Je dois avouer que c'est un peu du chinois pour moi...

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Le format d'une URL est assez simple et standardisé :

    PROTOCOLE://USER:PASSWORD@HOSTNAME:PORT/RESOURCE

    PROTOCOLE peut être n'importe quel protocole : http, https, ftp, ftps, irc, etc. Il doit cependant être connu du client et du serveur.
    HOSTNAME est le nom du serveur vers lequel pointer (ex: www.google.com).
    PORT est le port du serveur auquel l'application doit se connecter (ex: 80, 23, 165, ...)
    RESOURCE est le lien vers la ressource du serveur.
    USER est utilisé en cas de besoin d'identification.
    PASSWORD est utilisé en cas de besoin d'identification.

    Deux éléments sont réellement obligatoire dedans : PROTOCOLE (pour dire comment on parle) et HOSTNAME (pour dire à qui on parle). Le reste est assez facultatif, donc.

    Typiquement, une URL peut être résolue par la regex suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var protocole = "[a-z]+";
    var user = "[a-zA-Z0-9_-]+";
    var password = "[a-zA-Z0-9_-]+";
    var hostname = "[a-z0-9-\.]+";
    var port = "[0-9]+";
    var resource = ".*";
    var regex = new Regex(protocole + "://("+user+"(:"+password+")?@)?" + hostname + "(:"+port+")?" + "(/"+resource+")?");
     
    alert(regex.test(monUrl));
    Pourquoi utiliser le serveur quand le client a déjà tout ce qu'il faut ?

Discussions similaires

  1. [PHP 5.0] Tester la validité d'une URL Scheme
    Par Fooshi dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2012, 13h12
  2. [Réseau] Tester la validité d'une URL
    Par dajij dans le forum Langage
    Réponses: 3
    Dernier message: 09/09/2007, 12h04
  3. Tester la validité d'une url d'un site web
    Par italiasky dans le forum Langage
    Réponses: 21
    Dernier message: 28/02/2007, 15h39
  4. Comment tester la validité d'une adresse mail
    Par jmoez dans le forum Oracle
    Réponses: 1
    Dernier message: 19/04/2006, 13h00
  5. [web] tester la validiter d'une URL
    Par zebiloute dans le forum Web
    Réponses: 4
    Dernier message: 25/11/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo