Aide pour script CRON PHP et wget [CRON PHP] - PHP - Programmation
Marsh Posté le 07-03-2012 à 10:59:34
Salut, c'est un login via un formulaire ou un htaccess ?
Ça m’intéresse aussi et je crois qu'on peut simuler le submit d'un formulaire en php avec CURL
http://www.seoblackout.com/2008/02 [...] ormulaire/
Marsh Posté le 07-03-2012 à 11:20:14
Formulaire
J'ai réussi à résoudre le problème de simulation de connexion (je peux te l'envoyer si tu le souhaites) mais maintenant je sèche car en cURL j'aimerais télécharger le csv et le stocker sur le ftp, le soucis c'est que le csv est généré en appelant une page aspx, j'ai testé un bet wget (donc pas cURL) et il me télécharger un fichier vide nommé CSV.aspx ...
Une idée pour la commande et comment faire avec cette histoire de page aspx qui génère le csv ?
Marsh Posté le 07-03-2012 à 11:35:41
php et wget sont comme 2 clients, l'un authentifié mais pas l'autre
après l'authentification avec curl en php, peut être avec :
$fichier_csv=file_get_contents('http://www.example.com/CSV.apx');
file_put_contents("fichier.csv",$fichier);
Marsh Posté le 07-03-2012 à 11:39:55
En fait c'est vraiment bizarre car l'authentification j'ai l'impression qu'elle fonctionne mais à moitié. Lorsque je teste mon script il me charge la page de mon compte (donc bien loggué) mais par exemple les image ne s'affichent pas car elles ont une url du genre "(Mon serveur).com/(et là plein de lettres et chiffres/nom de l'image.jpg".
Voici mon code pour l'authentification :
<?php
$fp = fopen("cookies.txt",'wb');
fclose($fp);
$postfields = array();
$postfields["username"] = "XXXX";
$postfields["password"] = "XXXX";
$postfields["submit"] = "Log On";
$postfields["rememberMe"] = "true";
$url = "http://xtract.bascomputers.nl:4040/Account/LogOn?ReturnUrl=%2f";
$useragent = "Mozilla/5.0";
$referer = $url;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt" );
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt" );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
$fichier_csv=file_get_contents('http://www.example.com/CSV.apx');
file_put_contents("fichier.csv",$fichier);
echo $result;
?>
Tu vois quelques chose de mauvais dans ma méthode ?
Marsh Posté le 07-03-2012 à 11:42:14
et avec la bonne url du fichier aspx à la place de example.com ? il faut modifier file_put_content et mettre $fichier_csv à la place de $fichier
pour les images etc c'est normal je pense car en réalité c'est le navigateur firefox, wget etc qui les télé charge après avoir recu les liens
Marsh Posté le 07-03-2012 à 13:02:16
J'avais pas vu l'édition, j'ai changé les url et le nom du fichier mais rien, vraiment bizarre, je vais essayer de trouver plus d'info sur le téléchargement et le stockage en cas de fichier généré via cURL et je reviens si je trouve
Marsh Posté le 07-03-2012 à 09:52:14
Bonjour à tous,
Le titre ne me parait pas clair même après 10min à essayer de l'écrire !
Je vous explique donc mon problème :
Tout d'abord sachez que le site correspondant se trouve sur un serveur OVH Mutualisé.
Afin de mettre à jour automatiquement du CMS de Boutique en ligne j'exécute, grâce aux tâches planifiées qu'OVH met à disposition, un script PHP qui parse un .csv et qui mets à jour la DB.
Jusque-là cela fonctionne très bien avec le .csv disponible sur le serveur et la tâche planifié se passe bien.
C'est maintenant que cela se corse...
Ce .csv je le télécharge chez un fournisseurs mais pour cela je dois me loguer avec mes identifiants (le fichier est toujours disponible à la même url).
Donc tout d'abord ma question est, est-ce qu'il est possible dans mon script PHP (ou un autre script lancé avant celui de la mise à jour de la DB) de loguer le serveur sur cette page et de télécharger le fichier .csv sur le ftp ?
J'ai une piste avec une commande WGET en post-data mais je sèche et pas facile de trouver des explications concrètes sur le fonctionnement avec un serveur mutualisé.
Je suis donc à l'écoute de vos idées, si vous voulez bien m'aider bien entendu
D'avance merci à tous !