Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 10h12   #1
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Par défaut Problème n'arrive pas à vérifié si une URL est valide ou non

Bonjour,

J'ai fais un petit module pour faire une recherche par ID Site pour la boite dans laquel je travail.
Malheureusement, j'aimerai vérifié une condition, que l'url soit valide.
J'ai pondu une page , mais le controle de l'url renvoi toujours une erreur, voici la source



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/* Correction de l'id site possible suite à faute de frappe ou copier coller */
  $search = array(' ', '.');
  $replace = array('', '');
/* Si l'id site à été posté par le formulaire, on corrige les fautes de frappes */
  if( isset($_POST['idsite']) )
  {
    $idsite = $_POST["idsite"];
    $idsite = str_replace($search, $replace, $idsite);
  }
?>
    <!-- Je crée un formulaire qui postera sur cette même page -->
    <FORM action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
      <table width="300" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="60" align="right" valign="middle">
            ID Site :
          </td>
          <td width="60" valign="top">
            <!-- si un idsite à déjà été poster je le garde dans la text bar -->
            <INPUT name="idsite" type="text" id="idside" value="<?php if( isset($idsite) ) echo $idsite ;?>" size="8">
          </td>
          <td>
            <input type="submit" value="Recherche" class="submit">
          </td>
        </tr>
      </table>
	</FORM>
    <?php
	  /* Si un idsite à été posté je vérifie qu'il existe bien */
      if(isset($_POST['idsite']))
	  {
	    if (!isset($url)) $url = "http://www.monsite.com/site.do?indexItem=0&idItem=".$idsite."&oldId=0"; 
	    $fp = fsockopen($url, 80, &$errno, &$errstr, 30); 
	    /* Si l'idsite n'existe pas, je renvoi un message d'erreur */
	    if (!$fp) { 
	    echo "Erreur: <B>$errstr</B> ($errno)<BR>"; } 
	    /* Si l'idsite existe, je l'affiche dans un iframe */
	    else { fputs($fp,"GET / HTTP/1.0nn"); 
	    $reponse = fgets($fp, 128); 
	    echo '<iframe src="http://www.monsite.com/site.do?indexItem=0&idItem=".$idsite."&oldId=0" width="1500" height="900" frameborder=no></iframe>';
	    fclose($fp); } 
	  }
	  /* Si aucun idsite n'a été posté j'affiche un message */
	  else
	  {
	    echo 'Module de recherche par ID site';
	  }
    ?>
Tout fonctionne correctement sauf la vérification d'url qui me renvoi ce message même quand l'url est bien valide :
Citation:
Erreur: Unable to find the socket transport "http" - did you forget to enable it when you configured PHP? (5)

Si quelqu'un à une idée, vois une erreur dans la méthode merci d'avance de me faire savoir.

kopax
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h13   #2
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Autre question concernant le str_replace, mon idsite ne comporte que des chiffres, j'aimerai savoir comment faire pour supprimer toute lettres (fautes de frappes) qui peuvent être insérer dans ce champs, sans trop alourdir mon fichier.
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h15   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fsockopen ouvre un socket pas un lien http, regarde la doc, utilise file_get_content, je te conseil de mettre a jour aussi, puisque visiblement tu est en PHP 5.3, donc code est plutôt orienté PHP 4
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h20   #4
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Citation:
Envoyé par stealth35 Voir le message
fsockopen ouvre un socket pas un lien http, regarde la doc, utilise file_get_content, je te conseil de mettre a jour aussi, puisque visiblement tu est en PHP 5.3, donc code est plutôt orienté PHP 4
Salut et merci pour ta réponse,

Excuse moi mais, j'ai l'impression que cela ne fonctionnera pas avec filegetcontent, j'ai besoin de m'authentifié sur le site de la boite, forcement il ne trouvera pas l'url. Il y a un cookie.
Je ne comprends pas pourquoi tu dis que mon code est orienté php 4 ?
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h25   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par kopax Voir le message
Salut et merci pour ta réponse,

Excuse moi mais, j'ai l'impression que cela ne fonctionnera pas avec filegetcontent, j'ai besoin de m'authentifié sur le site de la boite, forcement il ne trouvera pas l'url. Il y a un cookie.
Je ne comprends pas pourquoi tu dis que mon code est orienté php 4 ?
tu ne fais aucune authentification ici,
pourquoi PHP 4 ? parce que t'ouvre une url avec fsockopen, qui est la méthode php 4
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h30   #6
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Citation:
Envoyé par stealth35 Voir le message
tu ne fais aucune authentification ici,
pourquoi PHP 4 ? parce que t'ouvre une url avec fsockopen, qui est la méthode php 4
Merci pour l'info

Non effectivement, en faite je n'ai pas besoin d'authentification dans ma page, car de toute façon quand je poste le premier idsite, je ne peux pas accédé au contenu sans être authentifié, le serveur me renvoi sur la page de login.
Une fois les idents rentrés et le cookie stocké, le module fonctionne normalement.

Avec file_get_content, je ne peux pas vérifié si la page existe, automatiquement il me renverra sur la page de login, le serveur web en question n'étant jamais connecté au site.
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h32   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
si t'as besoin de cookies le plus simple c'est d'utiliser cURL
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h39   #8
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Citation:
Envoyé par stealth35 Voir le message
si t'as besoin de cookies le plus simple c'est d'utiliser cURL
je vois pas ce que ça va changé avec curl, le problème reste entier !
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h41   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par kopax Voir le message
je vois pas ce que ça va changé avec curl, le problème reste entier !
cURL gère les cookies plus facilement ...
de toutes façon tu va toujours avoir deux requêtes a faire, une pour l'auth et l'autre pour le reste
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 13h16   #10
Invité de passage
 
Dimitri
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Dimitri

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 4
Points : 4
Citation:
Envoyé par stealth35 Voir le message
cURL gère les cookies plus facilement ...
de toutes façon tu va toujours avoir deux requêtes a faire, une pour l'auth et l'autre pour le reste
Ok, merci de ta réponse, justement je ne veux pas faire comme ca, je vais abandonné l'idée de faire une vérification.
kopax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h13.


 
 
 
 
Partenaires

Hébergement Web