LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 19/11/2008 à 20:52
Utiliser du javascript avec php
Personnellement, je ne vois pas pourquoi tu as besoin de javascript pour faire cela.

Pourquoi ne pas afficher carrément des boutons radios avec à coté une image ?
Si tu attribues une valeur adéquate à chaque radio (sous entendu te permettant de "retrouver l'image"), en récupérant la valeur du radio, tu "sais" quelle image le visiteur a choisi.

Ensuite, pour tes images, tu souhaites stocker uniquement le chemin de l'image en base de données ? Ou carrément le code binaire de l'image ?
Prenons l'exemple ou tu stockes en base le chemin de tes images (bien sur, il faut que l'image existe sur ton disque dur, sinon, c'est mort).

Autre question : ton code JS, il est directement inclue dans ta page PHP avec un <script type="text/javascript">ton code JS</script>, ou bien est ce un .js externe ?

Si tu es dans le premier cas, il te suffit de faire, avant d'afficher ton javascript, une requete SQL sélectionnant le chemin de tes images, puis de faire dans ta partie de code javascript un simple :

this.Oui = Oui ? Oui : "<?php echo $chemin_image; ?>";


Si tu as un fichier externe, il va te falloir le renommer en .php, puis, au tout début du fichier, y placer un header javascript.
Comme ceci :

<?php
header('Content-type: application/x-javascript; charset=utf-8');
?>
le code JS du fichier


(je te rappelle que PHP peut générer du HTML, mais pas que ca, il peut générer du Javascript, des images, des PDF, voir rien du tout).

Puis dans ce fichier, tu feras ta requête SQL avant d'afficher le code JS, tout comme dans le premier cas que j'ai exposé.

Enfin, dans la page qui appelle ton JS, il faudra la modifier en conséquence pour appeler ce script PHP avec un <script type="text/javascript" src="mon_nouveau_js.php"></script>.
LA GLOBULE
le 19/11/2008 à 17:48
Validation W3C: petits problèmes
Il suffit de lire l'erreur pour la comprendre :)

All attribute names must be in lower case:


Ecrit ton onload en minuscules et ca passera.

PS : pour valider tes pages, utilise le service du W3C plutôt que total validator.
LA GLOBULE
le 18/11/2008 à 11:36
thumbgen : screenshot de sites web
Ton .php, ca devait être une image. Genre un jpeg ou png.
Il n'y a pas de cryptage de code.

Et ce n'est pas parce qu'un fichier a une extension .php qu'il s'agit de code PHP :)
LA GLOBULE
le 17/11/2008 à 23:53
thumbgen : screenshot de sites web
Pour l'annuaire du site, je me les génère personnellement, et je n'utilise pas de site tiers pour obtenir ces vignettes.

On peut facilement se bricoler une solution qui marche si on a pas besoin de millions de vignettes (car ma solution bug sur quelques sites et je suis obligé d'intervenir à la main) : il suffit d'installer un serveur Xorg, et par un script, d'ouvrir firefox sur ce serveur X, et de prendre un screenshot (oui, je l'ai fais sous linux, je n'ose même pas envisager faire ca sous windows).

PS : soit plus précis dans tes requêtes, il m'a fallu 3mn pour comprendre de quoi tu parlais, j'ai modifié ton titre de sujet en conséquence.
LA GLOBULE
le 13/11/2008 à 00:31
tableau en fpdf
FPDF, ca reste du "dessin" les mecs.

Avec les méthode setX et setY, vous pouvez positionner "le pinceau" ou bon vous semble et ensuite écrire.

Donc si vous voulez mettre deux tableaux cote à cote, limiter la largeur du premier tableau, dessiner ce premier tableau (en stockant la position X et Y du haut de ce premier tableau), repositionner votre pinceau à ce Y, et à ce X + la largeur du premier tableau + 5 pts, puis redessiner votre second tableau.
LA GLOBULE
le 13/11/2008 à 00:21
recuperer l'id d'un enregistrement
Si, il y a plein de techniques.
Dans tous les cas, tu vas devoir gicler l'auto_increment et calculer ton id avant de faire ton INSERT.

Technique 1 : générer une clé unique

Pour cette solution, tu vas utiliser une clé primaire que tu vas générer au préalable.
Il te suffit en fait de générer une clé "unique". PHP fait la même pour générer des identifiants de session PHP.

Pour cela, tu peux par exemple utiliser la fonction uniqid. Voir te créer une fonction génératrice d'identifiant unique.

Tu obtiens alors ton identifiant à utiliser pour ton INSERT.

Technique 2 : utiliser une table SQL contenant le dernier id utilisé

Tu vas, par exemple, te créer une table 'generation_id' ou tu auras juste une seule ligne d'une seule colonne. Appelons ce champs de type numérique 'id'.
Le but du jeu, c'est de sélectionner la valeur de ce chiffre pour connaitre le dernier 'id' utilisé, l'augmenter de 1 et mettre à jour ce chiffre pour les utilisations futures.
Pour éviter le problème de concurrence d'accès à cet 'id', il faut faire un SELECT FOR UPDATE (je te conseille de lire la documentation MySQL à ce sujet).

Exemple de marche à suivre :

Tu vas lancer une première requete qui va vérouiller ton champs 'id' (aucune autre requete ne pourra accéder à ce champ tant que tu ne l'auras pas modifié) :

<?php
$sql = 'SELECT id FROM generation_id FOR UPDATE';
?>


Tu récupères la valeur dans une variable PHP genre $id, ensuite, dans ton PHP tu l'incrémentes, et enfin tu mets à jour le compteur :

<?php
$sql = 'UPDATE generation_id SET id = '".intval($id)."'';
?>


Tu as alors dans $id l'identifiant unique que tu souhaitais obtenir. Il te suffit de l'utiliser pour ton INSERT.

Pour info, la technique 1 n'est pas sure à 100% (toutefois, je l'ai déjà employé, je n'ai jamais eu de problème de génération de deux id identiques, la base était les données d'un webmail de 4 000 000 de comptes mails, la base pesant plus de 1To et se prenant plus de 1000 req/seconde), la technique 2 est sure, mais tu fais plus de requêtes SQL, et tu peux "locker" ton id si ton script plante. A toi de choisir.
LoadingChargement en cours