Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
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 17/07/2006, 20h17   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
Par défaut [cURL] Comment utiliser libcurl et remplacer fopen

Bonjour,

voilà, j'ai un site entier qui marche nickel en local mais quand je l'ai passé sur un serveur chez mon hébergeur (oxito.com), j'ai eu le promblème avec le fopen qui ne marche pas car non sécurisé;

donc voilà pour ceux ayant eu ce problème, pouvez vous m'expliquer comment utiliser libcurl qui evite ce problème afin que mes fopen fonctionne correctement

d'avance merci
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 20h23   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Si tu souhaites simplement lire un fichier dans une variable et que tu es en PHP5, tu peux utiliser file_get_contents()
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 20h53   #3
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
heu en fait je souhaites que lorsque je clique sur un bouton d'envoi d'un formulaire ca me crée un fichier correspondant en ecriture ---> avec W

voilà le code qui ne "fonctionne pas" :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
 
// içi on crée le fichier de caractéristiques techniques plus précise du véhicule qu'on vient d'ajouter à la base de données
 
					$fp = fopen("ftp://mylogin:mypassword@garage-botton-villard.com/web/fich_tech/$leNewIdAnnonce.html","w"); //---> écriture depuis début du fichier avec le W
 
					// on met ça en commentaire car on est plus en LOCAL ---> $fp = fopen("C:\\Program Files\\EasyPHP1-8\\www\\site garage php sql\\fich_tech\\$leNewIdAnnonce.html","w"); //---> écriture depuis début du fichier avec le W
					fputs($fp, "<html>
								<head>
									<title>
										Fiche Technique Véhicule
									</title>
								</head>
								<body>
 
									<table border='2' bordercolor='#000000'>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MARQUE</td>
											<td align='center' width='40%'>$theMarque</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MODELE</td>
											<td align='center' width='40%'>$theModele</td>
										</tr>  
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>ANNEE MODELE</td>
											<td align='center' width='40%'>$theAnnee</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>CARROSSERIE</td>
											<td align='center' width='40%'>$theListeCarross</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>ENERGIE</td>
											<td align='center' width='40%'>$theListeEnergie</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>KILOMETRAGE</td>
											<td align='center' width='40%'>$theKm Kms</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PRIX</td>
											<td align='center' width='40%'>$thePrix €</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MENSUALITES</td>
											<td align='center' width='40%'>$theMensua €</td>
										</tr>
 
										<tr>
											<td width='60%'>&nbsp;</td>
											<td width='40%'>&nbsp;</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>DATE DE MISE EN CIRCULATION</td>
											<td align='center' width='40%'>$maDateDMCTab</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>COULEUR</td>
											<td align='center' width='40%'>$theCouleur</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PUISSANCE</td>
											<td align='center' width='40%'>$thePuiss cv</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>GARANTIE</td>
											<td align='center' width='40%'>$theListeGarantie</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>EQUIPEMENTS</td>
											<td align='center' width='40%'>$theEquipmts</td>
										</tr>
 
										<tr>
											<td width='60%'>&nbsp;</td>
											<td width='40%'>&nbsp;</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PHOTO</td>
											<td align='center' width='40%'><a href=\"#\" onClick=\"open('imag_vehic/FAUT_MODIF_ICI.JPG', 'Nix', 'width=660,height=508,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no')\">Voir</a></td>
										</tr>
 
 
 
 
 
 
 
								</body>
								</html>"); // on met le tableau de caractéristiques dans le fichier correspondant au nouveau véhicule ajouté dans la table VOITURE
								fclose($fp);
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 20h58   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Et file_put_contents() ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h20   #5
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
hihi c'est gentil tout ca; mais je dois faire quoi, télécharger quoi je ne connais rien a libcurl? une ame complaisante svp...

merci deja a toi Yogui
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h39   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Je ne te parle pas de libcurl mais de fonctions simples de PHP permettant de faire la même chose : file_get_contents() pour lire un fichier, file_put_contents() pour écrire dans un fichier. Pourquoi utiliser une bibliothèque complète si de simples fonctions te permettront de faire la même chose, plus rapidement et plus simplement ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h45   #7
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
"voilà, j'ai un site entier qui marche nickel en local mais quand je l'ai passé sur un serveur chez mon hébergeur (oxito.com), j'ai eu le promblème avec le fopen qui ne marche pas car non sécurisé;"
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h46   #8
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
de plus on me dit d'utiliser LIBCURL qui est bien supporté par mon hébergeur
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h50   #9
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par Skeud007
voilà, j'ai un site entier qui marche nickel en local mais quand je l'ai passé sur un serveur chez mon hébergeur (oxito.com), j'ai eu le promblème avec le fopen qui ne marche pas car non sécurisé;
Pourrais-tu préciser ? Vous parlez de allow_url_fopen mis à Off ? Parce que file_put_contents() et file_get_contents() ne serviront pas plus que fopen (voir la note). Vous avez la possibilité d'utiliser Curl ? Si oui, voyez les exemples sur cette page


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 19h57   #10
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
merci julp tu m'as compris! tout m'est bloquer

donc oui j'ai déjà découvert cette page que tu m'as mise en lien

ce que je voudrais savoir, c'est quuoi le PATH??? (= là où faut copier l'exe)

merci d'avance pour vos réponses fructifiantes
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 20h21   #11
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
oups je me suis trompé c'est ce lien que j'ai cliquer moi
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 21h00   #12
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
en fait julp je me fiche dinstaller curl sur mon ordi, peut tu me dire que faut il que je modifie sur mon 3eme post afin de remplacer les fopen par libcurl?

merci d'avance
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 00h42   #13
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Un "truc" dans ce style peut être :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$tmpname = tempnam('/tmp', 'tmp_');
$fp = fopen($tmpname, 'w');
fputs($fp, "...");
fclose($fp);
$fp = fopen($tmpname, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "ftp://mylogin:mypassword@garage-botton-villard.com/web/fich_tech/$leNewIdAnnonce.html");
curl_setopt($ch, CURLOPT_UPLOAD, TRUE);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpname));
$response = curl_exec($ch);
curl_close($ch);
fclose($fp);
unlink($tmpname);

Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 14h29   #14
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
c'est a dire? je le mets ou ca?ca sert a quoi?
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 17h21   #15
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
excuse moi javais vu que la premiere ligne ca jai regarder ca vite fait sur mon smartphone a mide...je teste merci bcp de ton temps
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 17h52   #16
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
marche toujours pas;

message d'erreur =

Code :
1
2
3
4
5
6
Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/phpmyadmin/:/home/httpd/vhosts/www.garage-botton-villard.com/:/home/httpd/vhosts/www.garage-botton-villard.com/tmp/:/usr/local/php4/lib/php/) in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 226
Warning: fputs(): supplied argument is not a valid stream resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 334
Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 339
Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 344
Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 348
Warning: unlink(): No such file or directory in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 349

meric bcp si tu peux encore m'aider julp..............
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 18h16   #17
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Bien, réessayons en remplaçant :
Code :
$tmpname = tempnam('/tmp', 'tmp_');
par :
Code :
$tmpname = tempnam('/home/httpd/vhosts/www.garage-botton-villard.com/tmp/', 'tmp_');

Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 20h02   #18
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
merci julp!!!

sauf que maintenant je n'ai plus de message d'erreur mais mon fichier ne se crée pas non plus???

voila le code qui n'affiche pas d'erreur (mais ne crée pas de fichier...) :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 
$tmpname = tempnam('/home/httpd/vhosts/www.garage-botton-villard.com/tmp/', 'tmp_');
					$fp = fopen($tmpname, 'w');
 
 
 
 
 
 
					//$fp = fopen("ftp://mylog:mypass@garage-botton-villard.com/web/fich_tech/$leNewIdAnnonce.html","w"); //---> écriture depuis début du fichier avec le W			HERRREEEEEEEEEEEEEE
 
					// on met ça en commentaire car on est plus en LOCAL ---> $fp = fopen("C:\\Program Files\\EasyPHP1-8\\www\\site garage php sql\\fich_tech\\$leNewIdAnnonce.html","w"); //---> écriture depuis début du fichier avec le W		HERRREEEEEEEEEEEEEE
					fputs($fp, "<html>				
								<head>
									<title>
										Fiche Technique Véhicule
									</title>
								</head>
								<body>
 
									<table border='2' bordercolor='#000000'>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MARQUE</td>
											<td align='center' width='40%'>$theMarque</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MODELE</td>
											<td align='center' width='40%'>$theModele</td>
										</tr>  
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>ANNEE MODELE</td>
											<td align='center' width='40%'>$theAnnee</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>CARROSSERIE</td>
											<td align='center' width='40%'>$theListeCarross</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>ENERGIE</td>
											<td align='center' width='40%'>$theListeEnergie</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>KILOMETRAGE</td>
											<td align='center' width='40%'>$theKm Kms</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PRIX</td>
											<td align='center' width='40%'>$thePrix €</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>MENSUALITES</td>
											<td align='center' width='40%'>$theMensua €</td>
										</tr>
 
										<tr>
											<td width='60%'>&nbsp;</td>
											<td width='40%'>&nbsp;</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>DATE DE MISE EN CIRCULATION</td>
											<td align='center' width='40%'>$maDateDMCTab</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>COULEUR</td>
											<td align='center' width='40%'>$theCouleur</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PUISSANCE</td>
											<td align='center' width='40%'>$thePuiss cv</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>GARANTIE</td>
											<td align='center' width='40%'>$theListeGarantie</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>EQUIPEMENTS</td>
											<td align='center' width='40%'>$theEquipmts</td>
										</tr>
 
										<tr>
											<td width='60%'>&nbsp;</td>
											<td width='40%'>&nbsp;</td>
										</tr>
 
										<tr>
											<td bgcolor='#FF0000' width='60%'>PHOTO</td>
											<td align='center' width='40%'><a href=\"#\" onClick=\"open('imag_vehic/FAUT_MODIF_ICI.JPG', 'Nix', 'width=660,height=508,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no')\">Voir</a></td>
										</tr>
 
 
 
 
 
 
 
								</body>
								</html>"); // on met le tableau de caractéristiques dans le fichier correspondant au nouveau véhicule ajouté dans la table VOITURE		HERRREEEEEEEEEEEEEE
 
 
 
								//fclose($fp);
fclose($fp);
$fp = fopen($tmpname, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "ftp://mylogin:mypass@garage-botton-villard.com/web/fich_tech/$leNewIdAnnonce.html");
curl_setopt($ch, CURLOPT_UPLOAD, TRUE);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpname));
$response = curl_exec($ch);
curl_close($ch);
fclose($fp);
unlink($tmpname);
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 21h34   #19
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
J'ai testé en local (avec EasyPHP-1.8) le script ainsi et il fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
$leNewIdAnnonce = uniqid();
$tmpname = tempnam(ini_get('upload_tmp_dir'), 'tmp_');
$fp = fopen($tmpname, 'w');
fputs($fp, $leNewIdAnnonce);
fclose($fp);
$fp = fopen($tmpname, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "ftp://login:password@host/$leNewIdAnnonce.html");
curl_setopt($ch, CURLOPT_UPLOAD, TRUE);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpname));
$response = curl_exec($ch);
curl_close($ch);
fclose($fp);
unlink($tmpname);	
?>
Ajouter éventuellement au script que vous avez copié/collé (au tout début) :
Code :
error_reporting(E_ALL);

Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 19h06   #20
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 98
Points : 12
Points : 12
merci julp mais je comprends pas ou il faut qjouter ce que vous mavez ecrit....cela remplace mon dernier copier coller qui ne me creeais pas le fichier?

encore merci
Skeud007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h49.


 
 
 
 
Partenaires

Hébergement Web