Rechercher : dans
Par :

Php Socket

Dernière réponse le 16 mar 2009 à 12:44:01 Gloubi, le 7 jui 2004 à 13:59:51 
 Signaler ce message aux modérateurs

Salut à tous !

Ce script Php permet d'effectuer une requête HTTP et d'afficher le résultat de celle ci en utilisant la fonction fsockopen, feof, etc ...

<?php
$fp = fsockopen("www.php.net", 80, &$errno, &$errstr, 30);
if(!$fp) 
{    
          echo "$errstr ($errno)<br>\n";
}
else 
{    
          fputs($fp,"GET / HTTP/1.0\n\n");    
          while(!feof($fp)) 
          {       
                    echo fgets($fp,128);    
          }    
          fclose($fp);
}
?>


Il fonctionne parfaitement, le problême et que si je veux par exemple envoyer un mail, je remplace le port 80 par 25, et le site par smtp.wanadoo.fr par exemple.
La requête HTTP je la transforme également en requête SMTP : Helo, mail from, rcpt to, datz etc ...
Cependant, ça ne fonctionne pas, et je ne comprend pas ! voici le script que j'ai fait puor envoyer un mail par exemple :

<?php
$fp = fsockopen("smtp.wanadoo.fr", 25, &$errno, &$errstr, 30);

$request = "HELO Googleman\n\n" or die ("marche pas");
$request .= "MAIL FROM: <blabla@wanadoo.fr>\n\n";
$request .= "RCPT TO: <blibli@wanadoo.fr>\n\n";
$request .= "DATA\n\n";
$request .= ".\n\n";
$request .= "quit\n\n";

if(!$fp) 
{    
	echo "$errstr ($errno)<br>\n";
}
else 
{    
	fputs($fp,$requete);    
	while(!feof($fp)) 
	{        
		echo fgets($fp,1024);    
	}    
	fclose($fp);
}
?>


Merci de m'expliquer là ou ç va pas, car je suis désespérer :( !

Merci beaucoup ++

Meilleures réponses pour « Php Socket » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
Les fonctions de l'API Socket VoirLes fonctions des sockets en détail La fonction socket() La création d'un socket se fait grâce à la fonction socket() : int socket(famille,type,protocole) famille représente la famille de protocole utilisé (AF_INET pour TCP/IP utilisant une...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Gloubi, le 7 jui 2004 à 14:03:50

Dans le deuxième code les variables $request et $requete devraient avoir le mm nom, dsl de cette faute d'inattention, mais ça ne marche toujours pas de toute façon !

Répondre à Gloubi

2

kalamit, le 7 jui 2004 à 14:19:21

Salut,
Il te manquerait pas une identification pour envoyer du courrier par Wanadoo ?

Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)

Répondre à kalamit

3

DJ-Matthieu, le 29 jui 2004 à 15:07:32

Salut,

il faudrait pour que ton mail passe que tu fasse une pause de qq secondes (sleep(4);) entre chaque envoi de la variable "request"

j'espèque que tu m'as compris...

Matt.

Répondre à DJ-Matthieu

4

fat_cartman, le 29 jui 2004 à 15:47:30

En fait le probleme vient pas du temps, mais du fait qu'il faut que tu lises ce qu'on t'envoie par la socket à la fin de chaque ligne, pour:
- recupérer les codes d'erreur
- vider la socket
Il ne faut pas tout envoyer d'un coup.

Fat_cartman,
Ass-Kicked by ASP

Répondre à fat_cartman

5

Dj-Matthieu, le 29 jui 2004 à 15:59:01

Il ne faut pas tout envoyer d'un coup. <-- c'est ce que j'entendais pas un temps entre chaque envoi.

Matt.

Répondre à Dj-Matthieu

6

Gloubi, le 29 jui 2004 à 19:33:42

Ouais ok j'ai compris mais comment je fais ça moi, récupérer pour chaque ligne lescodes d'erreur et vider la socket ? Tu pourrais me mettre un bout de code stp ce serait sympa :)
Merci de vos réponses

Répondre à Gloubi

7

fat_cartman, le 30 jui 2004 à 09:14:12
  • +1

Ben tu vides la socket entre chaque commande avec:

truc=fgets($fp,1024);

Et ensuite tu t'assures que la réponse (truc) commence bien par le code de succès. Sinon tu affiches ce qui est retourné pour avoir la description de l'erreur.
Petite remarque, ton "or die (...)" m'a l'air pas du tout à sa place.

Fat_cartman,
Ass-Kicked by ASP

Répondre à fat_cartman

8

 imaday, le 16 mar 2009 à 12:44:01

Please;
si vous pouvez me guider pour telecharger une appllication chat multiutilisateur en php qui utilise les sockets .
et merci bcp.

Répondre à imaday