2011-09-03 5 views
0

Tout d'abord, je suis un débutant complet en tant que développeur web. J'ai une fonction PHP qui gère une requête post pour HTTP, et ça marche très bien. J'ai lu quelques endroits en ligne que tout ce que je dois faire pour faire la même fonction courrier à HTTPS est changer le port, je suis frappé du port 80 vers le port 443. Ainsi, au lieu de ressembler à ceci:Passer d'un post HTTP à un post HTTPS avec PHP

$fp = fsockopen($host, 80, $errno, $errstr, 30); 

Il ressemblerait à ceci:

$fp = fsockopen($host, 443, $errno, $errstr, 30); 

Malheureusement, ce changement ne semble pas fonctionner. Donc, mes questions sont les suivantes:

Est-il vrai que tout ce que je dois changer est le numéro de port?

S'il y a plus à faire, qu'est-ce que je dois encore faire?

S'il vous plaît, essayez de garder les choses aussi simples que possible, car je suis le premier à admettre que je suis très nouveau dans ce genre de choses.

Merci beaucoup à tous.

+0

Avez-vous lu les notes sur SSL dans le manuel PHP http: //php.net/manual/fr/function.fsockopen.php –

+0

duplicata possible de [Comment puis-je faire fonctionner SSL dans fsockopen?] (http://stackoverflow.com/questions/1757957/how-do-i-get -ssl-working-in-fsockopen) –

Répondre

4

Is it true that all I have to change is the port number?

Pas

If there is more to do, than what is it I still need to do?

Vous devez négocier une connexion SSL et le tunnel de la requête HTTP à travers elle. N'essayez pas de faire cela avec des douilles. Utilisez une bibliothèque conçue pour elle, telle que cURL.

+0

Je pense aussi que cURL est probablement une meilleure approche –

+0

Merci beaucoup, les gars, je vais aller droit dessus – JMecham

0

De php.net:

If OpenSSL support is installed, you may prefix the hostname with either ssl:// or tls:// to use an SSL or TLS client connection over TCP/IP to connect to the remote host.

Essayez préfixer ssl: // à votre hébergeur $ (mais en gardant le port 443,

+0

Donc j'ai ajouté le ssl: // devant le $ host chaîne. Maintenant, je peux frapper le serveur, mais je reçois une erreur: HTTP/1.1 400 Bad Request Serveur: nginx/1.0.4 Date: Sun, 04 Sep 2011 00:12:46 GMT Type de contenu: texte/html Content-Length: 10 Connexion: fermer, erreur 404 Ai-je besoin de formater différemment les données que j'envoie différemment parce que je passe maintenant à SSL? – JMecham

+0

Je ne suis pas sûr. Je vois "erreur 404" qui me fait penser que vous ne demandez pas la bonne URL. – Andrew