Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 23-02-2008 13:17:56

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 80
Site web

Verification D'une Adresse Web

Bonjour,

Je me suis lancer dans la création d'un script d'annuaire, mais le je tombe sur un petit problème, je voudrait verifier la validité d'une adresse web, la verification me dis sistématiquement que l'adresse n'est pas valide, même si elle l'est!!

J'ai essayé avec plusieurs méthode, en voisi une a titre d'exemple :

Code:

if(eregi('^http(s)?://[_a-z0-9-]+(\.[_a-z0-9-]+)+(\.[a-z0-9-]+)$', $url_site))//si l'url est valide
        {

            if(mysql_query("INSERT INTO site_propulsite VALUES('', '$prenom_site', '$mail_site', '$titre_site', '$url_site', '$description_courte', '$description_longue_site', '$clic_site', '$note_site', '$nombre_vote_site', '$newlester', '$affiche_site')"))
            {
            $enregistrement_ok = 
            'index.php?form=ok&'.
            $url_submit.
            '&';
            echo '<meta http-equiv="refresh" content="0; URL='.$enregistrement_ok.'">';
            }
        }

cela fait plusieurs jour que je bloque la dessus, si qq1 pourrait me corriger se petit bout de code ou bien me donner une autre solution, sa serait simpas!

Cette solution , c'est bien, sa verifie la sintaxe de l'adresse web, dans un premier temps c'est bien, mais ensuite, je voudrait verifier si l'adresse existe bien, je sait que s'est possible, mais je ne vois pas trop comment faire, j'ai entendu parler de fopen() mais cela ne fonctionne pas pour des adresse provenant d'une adresse distante, des qu'il y a un "http" dans la fonction, sa me renvoi une erreur!!!

Sinon, j'avais penser a uploader l'url, et si l'upload fonctionne, sa me renvoi true, c'est bon, si elle me renvoi false, c'est que l'adresse n'existe pas! mais il n'y aurait pas un risque de sécurité à faire cela?

Encors un question, commet verifier automatiquement la présence d'un lien de retour? j'ai aussi penser en uploadant la page, puis en l'analisant avec un genre de moteur de recherche, j'aurait juste besoin d'une piste merci! smile

Merci de vos réponse

Dernière modification par dechichulien (24-02-2008 11:33:45)

Hors ligne

 

#2 25-02-2008 03:28:39

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 566
Site web

Re: Verification D'une Adresse Web

hello,

tu dois avoir un problème dans ton expression régulière (et là, je suis moins calé)

pour fopen, c'est bien ça. Tu peux aller voir le manuel http://fr.php.net/fopen pour vérifier que tu utilises les bon paramètres.

pas bien compris ton histoire de lien de retour !

++

Hors ligne

 

#3 28-02-2008 08:13:13

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 80
Site web

Re: Verification D'une Adresse Web

merci de ta réponse,
Pour l'expression régulière, c'est bon sa marche, mais pour le fopen(), sa ne marche pas, dès qu'il y a une url de type http://, c'est a dire d'un autre site, je reçoi un message d'erreur de type gci ou cgi cannot modifi header paramettre ou un truc du genre, je ne sait plus, c'est surement due a la configuration de mon serveur!
N'y a t'il pas un autre moyen de verifier qu'une url existe? même une piste, je ne demande pas un script complet, juste une petite piste!
[cote]pas bien compris ton histoire de lien de retour ![/cote]
Je veut verifier automatiquement la présence d'un lien de retours, pour pouvoir effectuer une validation automatique des sites, mais je ne vois pas comment, avec fopen() et explode(), je pence que sa aurait été possible mais vue que fopen() ne fonctionne pas, je n'ai pas non plus d'idée!!
Merci de votre aide

Hors ligne

 

#4 29-02-2008 03:22:43

Jeef
Membre
Lieu: Liege, Belgique
Date d'inscription: 04-04-2007
Messages: 9
Site web

Re: Verification D'une Adresse Web

Salut

Et si au début de ta page tu rajoutes cette commande php ci?

Code:

<?php
ini_set ('allow_url_fopen', 'ON');
?>

De maniere à modifier la valeur de fopen si dans ta config si elle est a OFF ( a vérifier dans le phpinfo de ton serveur), le temps du script.

Attention si tu es chez un hébergeur, certains n'autorisent pas la modification des parametres php.

Bonne journée

Hors ligne

 

#5 29-02-2008 04:06:34

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 80
Site web

Re: Verification D'une Adresse Web

Merci encor de ton aide, je croi que je vais laisser tomber pour le moment, comme je l'ai dis plus haut, c'est pour un script d'annuaire que je compt mettre en téléchargement, il faut que sa marche sur tout les serveur, si sa ne marche pas sur le mien, sa marchera pas sur d'autre serveur non plus, et personne ne voudra du script, il n'auront cas verifier les liens manuellement ces faignant lol!!

a moin que je me soit tromper?

Voila le code que j'ai fait pour un teste :

Code:

<?php
ini_set ('allow_url_fopen', 'ON');
$handle = fopen("http://www.propulsite.com/", "r");
?>

rien que avec sa, j'ai se message d'erreur :

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Rien a faire, c'est toujour pareil!

La solution serait peut être de mettre l'url dans un formulaire avec un champ file :

<input name="url" type="file" />

Et ensuite, de traiter le champ comme un upload, de cette façon, si l'upload échou c'est que l'url n'exsiste pas, mais il y a deux chose qui me plaise pas dans cette solution, le bouton parcourir ne sert a rien, et a mon avis je ne peut pas mettre un champ texte normal pour se genre de chose, et ensuite, si un petit malin s'amuse a mettre un code dans sa page pour hacker le site, sa serait pas trop cool non?

à moin que un htmlspecialchars() suffirait pour éviter se genre de problème?

Merci encors de ton aide

Hors ligne

 

#6 29-02-2008 09:30:57

Jeef
Membre
Lieu: Liege, Belgique
Date d'inscription: 04-04-2007
Messages: 9
Site web

Re: Verification D'une Adresse Web

Salut Julien

en cherchant un petit peu avec ton message d'erreur, j'ai trouvé ceci :-)

http://www.asp-php.net/tutorial/asp-php … php?page=3

et la dedans il y a ceci qui pourrait te concerner ...

Bug

Il est arrivé à plusieurs personnes d'avoir un bug affichant ce message d'erreur :

L'application CGI spécifiée a mal fonctionné en ne renvoyant pas de jeu complet d'en-têtes HTTP. Les en-têtes renvoyés sont :...

ou en anglais :
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:...

C'est un bug de PHP, il est connu et présent dans la liste des bugs depuis 2001 (je ne suis pas remonté avant) et concerne bien l'utilisation de PHP avec IIS, et arrive parait-il aléatoirement.

Les causes

L'utilisation conjointe dans un script d'une connection à une base de données avec une commande d'header : location, avec PHP en module CGI.

Les remèdes

1. Dans votre PHP.ini, ajouter une ligne comme suit :
cgi.rfc2616_headers = 1;
A 0 par défaut, celà spécifie à PHP d'envoyer des headers compatibles avec Apache et *normallement* les autres serveurs web. Mis à 1, celà spécifie d'envoyer des headers répondant strictement à la norme RFC2616.
Par contre il se peut maintenant que les demandes d'authentification ne fonctionnent plus.

2. Utiliser PHP en module ISAPI (au lieu de CGI), pour çà :
- dans le panneau de gestion des sites web, clic droit sur un site puis propriétés du site
- onglet "Répertoire de base" puis "Configuration" (vers le bas)
- onglet "Mappages" puis "Ajouter"
- pour l'exécutable, cliquez "Parcourir", en bas dans le type de fichiers, mettez "bibliothèque dynamique : dll", puis allez dans votre répertoire d'installation de PHP, puis dans le répertoire "sapi" et prenez "php4isapi.dll"
- dans "extension", mettez ".php"
- validez et celà devrait fonctionner!

Je ne suis pas sur que ça puisse t'aider directement, mais ça devrait te donner une piste d'ou ça cloche, a supposer évidemment que tu sois hébergé sous windows server.

Désolé de ne pas pouvoir t'aider plus

Hors ligne

 

#7 29-02-2008 13:41:01

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 80
Site web

Re: Verification D'une Adresse Web

Merci de ta réponse,
ok c cool, maintenant je sait d'ou vien l'erreur, mais le problème, c'est que je n'est pas acces au PHP.ini vu que mon site est ébergé chez un serveur distant, et je n'est pas acces a ses fichier!
et je voudrait que sa fonctionne directement dès l'installation du script!
Merci quand même, mais je l'aisse tomber, j'ajouterais peut être cette fonction dans une mise a jour!
merci

Hors ligne