Ses derniers messages sur les forums
reuh ...
Fais un wall de TOUTE ta page si tu veux qu'on t'aide ...
Warning: Cannot modify header information - headers already sent by (output started at /mnt/141/sdc/b/e/didipc/gen/index.php:1) in /mnt/141/sdc/b/e/didipc/gen/index.php on line 9
ça veut dire que t'envoies une sortie html avant le header jpg ... on envoie jamais rien avant un header.
@+...
One Love, One Heart, One Unity.
reuh ...
Je t'ai filé la solution alors réfléchis un peu ... si je te dis qu'il faut marquer le chemin relatif vers le fichier .ttf (true type font) c'est pas pour m'amuser.
Si t'as pas ce fichier .ttf (ou un autre) dans le répertoire du script ça fonctionnera pas.
@+...
One Love, One Heart, One Unity.
Hello.
il faut donner le chemin relatif de la police ttf :
<?php
$fontname="./tahoma.ttf";
?>
P.S : LA GLOBULE, il craint le wall, si on copie/colle les numéros de ligne viennent avec. :-/
@+...
One Love, One Heart, One Unity.
Hello.
Ben fais un
wall de ton fichier index.php et donne-nous le lien qu'on voit le code.
@+...
One Love, One Heart, One Unity.
Hello.
Le résultat me donne pleins de caractère au lieu d'une image ....
Auriez vous une solution a mon problème ?
Certes ...
En fait il faut que tu ajoutes :
<?php
header("Content-type: image/jpeg");
?>
Juste avant de générer ton image (
ImageJpeg($im);) pour que PHP envoie les bons headers (type de document) au navigateur.
@+...
One Love, One Heart, One Unity.
Hello.
Si ce sont toujours les mêmes 10 produits tu peux faire une colonne client, une colonne produits.
Ensuite dans ton formulaire tu auras un champ pour le nom du client et 10 champs pour tes 10 produits.
Dans chaque champ produit tu mets 1 checkbox avec un name="choix1...10" (cochée = 1, non cochée = 0).
Quand ton client valide ça envoie les données sur un page de traitement en $_GET ou $_POST et cette page reçoit 11 variables : 1 pour le nom du client, 10 pour les produits.
Donc tu récupères normalement $client et tes 10 $choix.
Ensuite tu fais une concaténation des 10 variables $choix séparées par un point :
<?php
$produits = '.'.$choix1.'.'.$choix2'.'...'.'.$choix10;
?>
(ce qui donne une chaine comme 1.0.0.1...1 par exemple).
Tu insères $client et $produits dans ta table.
Pour récupérer les données tu te sers de la fonction explode :
<?php
$tableau_produits = explode('.',$produits);
?>
et tu obtiens un tableau $tableau_produits que tu peux exploiter sans souci :
<?php
for($i = 0;$i < count($tableau_produits)-1;$i++)
{
echo $tableau_produits[$i];
}
?>
@+...
One Love, One Heart, One Unity.
Hello.
Voilà comment je fais, c'est assez commenté tu devrais facilement pouvoir adapter à tes besoins :
<?php
include('./base_connexion.php');
/*Préparation de la requête qui vide la table*/
/*pas forcément nécessaire, peut être commenté*/
$sql = 'TRUNCATE TABLE ma_table';
/*on exécute la requête*/
$result = mysql_query($sql);
/*on définit le fichier .csv*/
$fichier = "./fichier.csv";
/*On ouvre le fichier à importer en lecture seulement*/
if (file_exists($fichier)) {
$fp = fopen("$fichier", "r");
}
else {
/*le fichier n'existe pas*/
echo "Fichier introuvable !<br />Importation stoppée.";
exit();
}
while (!feof($fp)) {
/*Tant qu'on n'atteint pas la fin du fichier on lit une ligne*/
$ligne = fgets($fp,4096);
/*On récupère les champs séparés par , dans liste*/
$liste = explode( ",",$ligne);
/*On assigne les variables*/
$variable1 = $liste[0];
$variable2 = $liste[1];
$variable3 = $liste[2];
$variable4 = $liste[3];
$variable5 = $liste[4];
/*Ajouter un nouvel enregistrement dans la table*/
$sql = "INSERT INTO ma_table VALUES('$variable1','$variable2','$variable3','$variable4','$variable5')";
$result= mysql_query($sql);
if(mysql_error()) {
/*Erreur dans la base de donnees, sûrement la table qu'il faut créer*/
print "Erreur dans la base de données : ".mysql_error();
print "<br />Importation stoppée.";
exit();
}
else {
/*Tout va bien*/
print "$variable1 | $variable2 | $variable3 | $variable4 | $variable5<br />";
/*Fermeture du fichier*/
fclose($fp);
echo '<br /><b>TABLE A JOUR ...</b><br />';
/*Préparation de la requête d'optimisation*/
$sql = 'OPTIMIZE TABLE ma_table';
/*on exécute la requête*/
$result = mysql_query($sql);
echo '<br /><b>TABLE OPTiMiSEE ...</b><br />';
/*THE END*/
echo '<br /><b>O.K ! ALL DONE.</b><br />';
}
else {
echo'<br /><b>UPDATE FAiLURE !</b><br />';
}
?>
Par contre si tu as des caractères spéciaux comme des virgules dans tes champs, des apostrophes, des points ou que sais-je pense à protéger tes variables (avec un string_replace ou une regex sur $liste ou $variable1-5 par exemple) ...
@+...
One Love, One Heart, One Unity.
One Love, One Heart, One Unity.
One Love, One Heart, One Unity.
hello.
Bon y'a un principe de base quand on veut coder quelque chose : ne pas réinventer la roue ...
$chaine = str_replace('à','à;',$chaine);
ça veut dire en PHP : remplace 'à' par 'à;' dans $chaine ...
il existe la fonction
htmlentities($chaine); qui fait exactement ça.
@+...
One Love, One Heart, One Unity.