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

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    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 expérimenté 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
    Points : 1 388
    Points
    1 388
    Par défaut
    Je crois pas que tu puisses appeler une url autre que sur ton site en Ajax

  6. #6
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    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]
    11001.00101.10010.10000.00111

  7. #7
    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...

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    google + "ajax tuto siddh developpez"
    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 !

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ok merci. Je m'en vais essayer tout ça.

  10. #10
    Membre confirmé 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
    Points : 455
    Points
    455
    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

  11. #11
    Membre expérimenté
    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
    Points : 1 419
    Points
    1 419
    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 ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Le format d'une URL est assez simple et standardisé :

    PROTOCOLE://USERASSWORD@HOSTNAMEORT/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 ?
    Le but n'est pas de vérifier si l'url est valide mais bien si elle existe

  13. #13
    Membre expérimenté
    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
    Points : 1 419
    Points
    1 419
    Par défaut
    Pas quand je lis le premier message... Alors désolé si ce n'était pas clair dès le début

  14. #14
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    pour le coup là c'est du français et ça m'avait l'air tout à fait clair ...

    extrait du premier post :

    Avant quand l'utilisateur entre une url dans un champs, il aurait la possibilité d'appuyer sur un bouton pour tester si le lien existe.
    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 !

  15. #15
    Membre expérimenté
    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
    Points : 1 419
    Points
    1 419
    Par défaut
    Quoiqu'il en soit, si l'utilisateur entre un mauvais format d'url (ce qui arrive assez souvent si j'en crois mes logs), autant faire la vérification déjà au niveau du client, avant d'aller ennuyer le serveur avec des requêtes inutiles

    Et puis, si on parle de français clair et correct, la première phrase (qui est la seule que j'ai lue, je l'accorde) ne contenait pas un résumé clair et concis du problème, puisque celui-ci continuait dans le paragraphe suivant.

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