PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Javascript » Fichier de configuration ou ouverture de fichier » 22-11-2010 06:24:13

jojaba
Réponses : 0

Bonjour,

Le php je connais un peu, par contre le JS, je n'ai que quelques notions.
Il me faudrait pouvoir utiliser un fichier de configuration et par php et par Javascript. Pour php on peut récupérer les données avec [c]parse_ini_file[/c] mais je ne trouve pas le moyen de faire ça avec JS. Je me suis dit qu'on pourrait récupérer les données de configuration en lisant le fichier *.ini (méthode [c]openTextFile[/c]), mais il semblerait que cela ne puisse se faire que dans Windows, or moi, il faut que je le fasse ça sur apache.
Un coup de pouce, une autre solution ?

Merci d'avance wink

#2 Re : Javascript » Comment vérifier ce qui se trouve avant et après une sélection ? » 21-09-2010 05:23:18

Alors, j'ai un peu progressé dans ma réflexion sur le sujet. En fait, il faudrait que je parte de la sélection faite par l'utilisateur pour l'étendre en englobant le caractère juste avant et celui juste après cette sélection. Après cela je devrais pouvoir traiter la chaîne correctement. Je pense que j'utilise mal setSelectionRange...
Voici ce que j'ai fait pour obtenir ce résultat :

 if (window.ActiveXObject) { //For IE
                var textRange = document.selection.createRange();
                if (tagType == 'smiley') { //Change the textRange to include the previous and next character of the selection
                        textRange.moveStart('character', - textRange.length);
                        textRange.moveEnd('character', 1);
                }
                var currentSelection = textRange.text;
        } else { //For other browsers
                var startSelection   = field.value.substring(0, field.selectionStart);
                var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
                var endSelection     = field.value.substring(field.selectionEnd);
                 if (tagType == 'smiley') { //Change the textRange to include the previous and next character of the selection
                        field.setSelectionRange(-1, startSelection.length + currentSelection.length +1);
                        currentSelection = field.value;
                 }
        }

Bien entendu ça ne fonctionne pas, ni pour IE, ni pour les autres navigateurs...:(

#3 Javascript » Comment vérifier ce qui se trouve avant et après une sélection ? » 21-09-2010 05:23:18

jojaba
Réponses : 1

Bonjour smile

J'utilise une version personnelle du zcode proposé par thunderSeb sur le Site du Zéro. La sélection de texte est prise en compte comme suit :

if (window.ActiveXObject) { //Pour IE
                var textRange = document.selection.createRange();            
                var currentSelection = textRange.text;
        } else { //Pour d'autres navigateurs
                var startSelection   = field.value.substring(0, field.selectionStart);
                var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
                var endSelection     = field.value.substring(field.selectionEnd);              
        }

Il faudrait que je vérifie s'il y a un espace avant et après cette sélection. J'ai vite regardé dans le tutoriel Javascript de joSé2 (toujours sur le site du Zéro) et ai trouvé des fonctions qui permettaient de repérer des caractères à l'intérieur de la sélection mais apparemment on ne peut pas rechercher hors de cette sélection (j'aurais bien utilisé la valeur -1 avec la fonction charAt() pour trouver le caractère qui précède la sélection moi tongue ).
Ma question : existe-t-il une fonction permettant de faire ça ? Sinon, un petit coup de main pour que je trouve comment faire ?

Merci d'avance. ^^

#4 Re : Forum Général PHP » Ajout dynamique d'une ligne dans un fichier » 08-05-2010 20:58:04

jojaba a écrit :

Je pense que le problème vient de mon test :

if (strpos($header_lines[$i], '<title>'))

D'après le manuel php la fonction strpos() ne renvoie pas forcément "false", je pense que ça doit être la même chose pour "true".

Je vais approfondir cette piste...

Eh bien j'ai trouvé. C'est bien le test qui n'était pas bon. Il fallait remplacer ça :

if (strpos($header_lines[$i], '<title>'))

par ça :

(strpos($header_lines[$i], '<title>') !== false)

wink

Par contre ça ne marche pas avec foreach() puisqu'on travaille avec une copie, la modification n'est pas prise en compte lors de l'écriture...

#5 Re : Forum Général PHP » Ajout dynamique d'une ligne dans un fichier » 08-05-2010 20:58:04

Je pense que le problème vient de mon test :

if (strpos($header_lines[$i], '<title>'))

D'après le manuel php la fonction strpos() ne renvoie pas forcément "false", je pense que ça doit être la même chose pour "true".

Je vais approfondir cette piste...

#6 Re : Forum Général PHP » Ajout dynamique d'une ligne dans un fichier » 08-05-2010 20:58:04

mcAllan a écrit :

As tu bien un "error_reporting" à ALL ?

Dans mon fichier php.ini :

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

Je suppose que ça devrait être bon comme ça, ou dois-je ne mettre qu'E_ALL ?

mcAllan a écrit :

As tu vérifié les droits sur le fichier à écrire ?

Pendant mon test en local, j'éditais le fichier header.php dans jEdit (mon éditeur de texte) et à chaque fois que je lançais le script, jEdit m'indiquais que header.php a été modifié et me demandais si je voulais enregistrer les modifications intervenues. Donc, oui, le fichier a les droits suffisants apparemment.

Le chemin vers le fichier est bon ?

Voir réponse précédente...

Tout ceci car j'ai fait fonctionner ton script correctement...

Ah bon ?

D'autre part, tu peux quand même utiliser foreach.

Merci pour l'info. Je testerai dès que possible.

Merci pour ta réponse smile

#7 Forum Général PHP » Ajout dynamique d'une ligne dans un fichier » 08-05-2010 20:58:04

jojaba
Réponses : 4

Bonjour,
Je souhaiterais donc ajouter une ligne dans un fichier en utilisant php. Voilà ce que je me propose de faire. Je lis le fichier (dans lequel je souhaite insérer une nouvelle ligne) ligne par ligne en utilisant la fonction "file()". Ensuite je recherche l'endroit où je souhaite placer ma nouvelle ligne (avant la ligne qui comporte la balise <title>, je modifie la ligne "repère" en lui ajoutant la nouvelle ligne. Ensuite je relis le tableau et l'envoie vers le fichier (après l'avoir ouvert en écriture et mis à 0) header.php. Concrètement ça donne ça pour le code :

/<?php
* Reading the header file line by line to have an array that will be modify... */
    $header_lines = file(PUN_ROOT.'header.php');
    $lines_number = count($header_lines);
    //Reading each line to find the line containing the <title> tag
    for ($i = 0; $i < $lines_number; $i++) {
      if (strpos($header_lines[$i], '<title>')) {
        //Adding a line to include the Metadata core file
        $header_lines[$i] = '<?php include \'plugins/dcm/core/dcm.php\'; ?>'.$header_lines[$i];
      }
    }
    /*Opening the header file and replacing all the content by the new content (with the added line)*/
    //Deleting content of the file
    $fp = fopen(PUN_ROOT.'header.php', 'w');
    fwrite ($fp, '');
    fclose ($fp);
    //Writing back each line of the file
    $fp = fopen(PUN_ROOT.'header.php', 'a');
    for ($i = 0; $i < $lines_number; $i++) {
      fwrite($fp, $header_lines[$i]);
    }
    fclose ($fp);
    /*Replacing the data in the log file dcm.txt*/
    $dcm_data = file_get_contents(PUN_ROOT.'plugins/dcm/core/dcm.txt');
    $data = explode(';', rtrim($dcm_data));
    $install_data = ($data[0] != 0) ? $data[0] : time();
    $update_data = time();
    $data_plugin_status = 1;
    $all_data = $install_data.';'.$update_data.';'.$data_plugin_status;
    $fp = fopen(PUN_ROOT.'plugins/dcm/core/dcm.txt', 'w');
    fwrite($fp, $all_data);
    fclose($fp);
?>

Le fichier que je modifie s'appelle "header.php". J'ai utilisé une boucle "for" car, d'après ce que j'ai lu, en utilisant "foreach" on travaille sur une copie du tableau et non sur le tableau lui-même.
Or, en appliquant se script, rien ne se passe, même pas de message d'erreur. Par contre d'après mon éditeur de texte dans lequel j'éditais "header.php", ce fichier a bien été modifié...
Je ne suis pas sûr d'employer la bonne méthode, alors si vous avez une autre solution, n'hésitez pas à me la communiquer wink

Merci d'avance pour votre aimable aide smile

#8 Re : Forum Général PHP » Convertir url en lien cliquable [php - expressions rationnelles] » 21-04-2010 16:57:43

Merci Jc pour ces ressources (je connaissais la première mais la seconde m'a l'air pas mal du tout également). smile
Je sais que ça ne se fait pas, mais j'avais posé la même question sur plusieurs forums. C'est sur les forums d'Alsacréation que j'ai obtenu une réponse qui semble bien fonctionner : http://forum.alsacreations.com/topic-20 … egexp.html
Ça pourra peut-être utile à d'autres... wink

#9 Forum Général PHP » Convertir url en lien cliquable [php - expressions rationnelles] » 21-04-2010 16:57:43

jojaba
Réponses : 4

Bonjour,
Je sais qu'on trouve énormément de ressources sur le Web à ce sujet. Cependant, après avoir opté pour une solution qui me convenait, je me bute à un problème de mise en forme d'expression régulière. Explications...
Voici le code que j'utilise (en m'inspirant donc de la page vers laquelle pointe mon lien plus haut) :

function pxUrlToLink($commenttext) {
//motifs à repérer
  $in = array(
    '`((?:https?|ftp)://\\S+)`',
    '`;\)`'
    );
//remplacement des chaînes correspondant aux motifs
  $out = array(  
    '<a href="$1" title="$1">$1</a>',
    '<img src="xmedia/emoticones/clin_d_oeil.gif" alt="Clin d\'oeil" />'
  );
 // Exécution de l'expression régulière et envoi du texte formaté
 $commenttext = preg_replace($in, $out, $commenttext);  
 return $commenttext;
}

Les url sont bien remplacées par le lien mais, lorsqu'elles sont suivies d'une virgule ou d'un point également (puisque le motif repère les chaînes commençant par http, https et ftp et comportant une chaîne sans espaces) ! J'ai donc essayé d'arranger le motif permettant de reconnaître les url en ajoutant le fait qu'il ne faut pas prendre en compte une virgule, un point (éventuellement, j'ajouterai une parenthèse fermante, un crochet fermant, un point-virgule) qui se trouvent à la fin de l'expression capturée. J'ai tenté ça :

((?:https?|ftp)://\\S+[^,.])

Mais bien évidemment, cela ne fonctionne pas (d'ailleurs je ne sais pas trop pourquoi hmm) ! J'ai passé une semaine à essayer de trouver la solution, mais rien n'y fait, je sèche lamentablement.
Une idée, une piste ou mieux une solution ?


Merci d'avance smile

#10 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Bon ben, j'ai pas su faire bien entendu !
Par contre j'ai réessayé de soumettre une image sur le site (upload donc vers le serveur) et de récupérer cette image par FileZilla et, oh miracle, ça fonctionne !
J'ai en fait modifié le chmod du dossier contenant les images (j'ai mis ça à 0777) et pareil pour l'image uploadée. Je ne sais pas si la résolution est transitoire, je reviendrai ici si tout continue à bien se passer à l'avenir ou pas d'ailleurs...
Un truc qui me chiffonne quand-même : Voici une copie de la fenêtre listant les fichiers images distants dans FileZilla :
[img align=C]http://jojaba.free.fr/stockage/permissions-fichiers.png[/img]
Pour "Le déjeuner des canotiers", la nouvelle image uploadée, on a un autre chiffre dans la colonne Propriétaire/groupe (les autres images, je les avaient uploadés par l'intermédiaire de Filezilla, donc en ftp). C'est peut-être ça qui bloquait avant...
En tout cas, pour l'instant, c'est bon, on verra si ça continuera à aller lorsque d'autres utilisateurs soumettront.

#11 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Alnoss a écrit :

Lorsque je te parlais de "petit serveur@home", je pensais à une version de dev type wamp ou easyphp [rapide à mettre en place]

Ah d'accord, et bien ça, j'ai déjà (en l'occurrence wamp)...
On peut donc se connecter par ftp sur son site local c'est ça ? Je ne vois pas trop comment, mais je vais étudier ça.

#12 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Alnoss a écrit :

Outre un miracle ou un ami, tu t'attends à quoi ? Si c'est gratuit, c'est obligatoirement limité

Il y a des gens candides qui se bercent d'illusions parfois ! J'en fais partie ! roll

P.S : au pire, si tu veux te faire un aperçu, je te préconise un petit serveur@home... mais c'est simplement pour que tu t'en sortes... car les bandes passantes en UP sont toujours aussi pitoyablement asynchrones.

Non merci, je passe déjà beaucoup de temps à coder et à me former en même temps, je ne vais pas "m'amuser" à installer un serveur chez moi, juste pour vérifier quelque chose. Merci quand-même pour le tuyau wink

L'idéal serait donc d'investir dans un hébergement... Ton site perso est en domaine.info, c'est pas une solution gratuite ça ? Il me semble avoir vu quelque chose comme ça chez ovh, non ?

#13 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Bonjour smile
Donc, d'après ce que tu me dis, il faudrait que je contacte un administrateur gérant l'hébergement pour régler mon problème, c'est ça ?

Heu... lorsque je te parle de l'héberger ailleurs, je te parle chez un "VRAI" hébergeur ^^

Tu me proposes quelque chose de gratuit ?:P

#14 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Alnoss a écrit :

Bonsoir,

Ce qui me semble étrange, c'est que tu ne parviennes pas à accéder à tes images via FTP.

Elles se listent bien dans FileZilla mais dès que je veux les rapatrier en local, erreur 550...
Un fichier contenat 0 ko est rapatrié...

Aussi, la config php de ton serveur ne nous servira pas à grand chose :s

J'ai enlevé le lien dans mon message précédent.

La raison la plus probable est que ton accès est limité à certains dossiers et non à d'autres.

Je ne comprends pas ce que tu veux dire là. J'accède à tous les dossiers par ftp. Je peux modifier le [c]chmod[/c] sans problème pour tous les dossiers et fichiers (y compris les vignettes créées à partir des images uploadées) du site sauf pour les images envoyées par l'intermédiaire de mon formulaire. C'est pour ça que je pense que ça vient de mon script. Est-ce que la fonction [c]move_uploaded_file[/c] demande un argument spécial pour mettre à disposition l'image ?
Je me demandais si cela ne venait pas du fait que j'utilise l'image qui a été déplacée et renommée (dans le script [c]$nom_fichier_uploade[/c]) pour créer ma vignette et ensuite que je la détruise en fin de script (comme cela est demandé quand on travail sur une image), ça modifie peut-être quelque chose sur l'image originale... (c'est la première fois que je fais ce genre de manipulation sur des fichiers images et j'ai suivi scrupuleusement des démarches notées dans ma bible "PHP 5 avancé 4e édition"...)

Vu ton hébergement, je pense au besoin de sécurité et au verrouillage..

Tu peux préciser s'il te plaît ?

As-tu déjà tenté de l'héberger ailleurs que sur celui-ci ?

J'ai tenté d'installer sur les serveur free, mais là j'ai des problèmes avec mes [c]foreach[/c], en plus, impossible de modifier le chmod sur les serveurs Free... Franchement, je ne pense pas que ce soit une bonne alternative à l'hébergemlent que j'ai actuellement.

Histoire de voir de quoi on parle, je vous donne le lien vers le site en cours de développement et pleinement fonctionnel d'après les tests que j'ai fait (hormis ce souci de téléchargement ftp) :
http://www.ec-prot-weinbourg.ac-strasbo … khistoart/

Je vous laisse vous créer un compte (enseignant par exemple) pour pouvoir tester le formulaire, si ça vous chante...;)

Merci encore pour l'aide précieuse.:)

#15 Re : Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

Alnoss a écrit :

Salut,
1. j'ai viré le [problème] dans le titre : si tu postes ici, c'est que tu as un problème... donc évitons les lapalissades.
2. ensuite, si j'ai bien compris, tu cherches à faire une "sauvegarde" locale de fichiers "distants" ?

Si tel est le cas :
- Que se passe t il si tu le fais manuellement ?

D'abord merci pour ta réponse.
Alors, j'arrive à télécharger les images à partir du site (clic-droit, enregistrer la l'image sous...) sans problème, mais je suis obligé dans ce cas de le faire individuellement (je ne peux pas accéder au dossier contenant les images). C'est d'ailleurs comme ça que je les récupère pour l'instant. Le problème est que si le site commence à avoir du succès, j'aurai des soumissions d'images plus conséquentes, ce sera vraiment ingérable en faisant ainsi... le téléchargement ftp reste la méthode la plus pratique, surtout que j'ai une copie du site en local me permettant de faire évoluer l'outil en utilisant les fichiers du site en ligne.
Je me demande si l'hébergement que j'utilise est en cause. Je laisse ici un lien vers le fichier permettant d'afficher la configuration php de mon hébergement :
[lien supprimé pour raison de sécurité tongue]

#16 Forum Général PHP » Téléchargement ftp d'images sur serveur impossible » 07-10-2009 20:03:59

jojaba
Réponses : 11

Bonjour,

J'ai un problème avec les images que l'on envoie par l'intermédiaire d'un formulaire php sur le site dont je m'occupe. Je n'arrive pas à les télécharger en utilisant Filezilla (j'ai le même problème avec l'extension firefox FireFTP, donc ce n'est pas le logiciel ftp qui est incriminé) vers mon poste local (je souhaiterais pouvoir conserver une copie de ces images en local). Filezilla me parle d'erreur critique (FireFTP me dit : 550 Failed to open file.). Je pensais que c'était un problème de chmod, alors j'ai tenté de le modifier dans FileZilla (de toute manière, je le modifiais dans le script), mais cette opération est impossible (pourtant, je peux modifier le chmod sur d'autres fichiers sans problème). Je pense que ça vient de mon script, alors voici comment je fais pour modifier et stocker les images :
********************

<?php
if ($erreur_upload != 4) {//Si un fichier a bien été uploadé
  $chemin_image = 'images/originales/';
  $chemin_vignette = 'images/miniatures/';
  $nom_vignette = $nom_fiche.'-mini.jpg';
  switch ($extension_fichier) {
    case 'gif':
    $nom_fichier_uploade = $nom_fiche.'.gif';
    @move_uploaded_file($loc_temp_fichier,$chemin_image.$nom_fichier_uploade);
    @chmod($chemin_image.$nom_fichier_uploade, 0770);
    //Création de la vignette
    $taille_image = getimagesize($chemin_image.$nom_fichier_uploade);
    $largeur_vignette = 250;
    $hauteur_vignette = 250/$taille_image[0]*$taille_image[1];
    $image_a_modifier = imagecreatefromgif($chemin_image.$nom_fichier_uploade);
          $vignette = imagecreatetruecolor($largeur_vignette, $hauteur_vignette);
    imagecopyresampled($vignette, $image_a_modifier, 0, 0, 0, 0, $largeur_vignette, $hauteur_vignette, $taille_image[0], $taille_image[1]);
    imagejpeg($vignette,$chemin_vignette.$nom_vignette,85 );
    imagedestroy($vignette);
    imagedestroy($image_a_modifier);
    break;
//...
//J'arrête ma copie ici, c'est le même code mais pour les autres type de fichiers (jpg, png, ...)
?>

*************************************************

En ce qui concerne les vignettes créées, je n'ai pas ce problème :euh:

Merci d'avance pour vos pistes de recherche ou solutions smile

PS : je sais que ça ne se fait pas de poser la même question sur 2 forums différents et je préfère être honnête, j'ai déjà posé ma question sur le forum du site des Zéros, mais n'ai pas eu de réponse...

Pied de page des forums

Propulsé par FluxBB