CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Erreur incompréhensible [php, librai gd]

Zaxid
Zaxid
Niveau 8
13 octobre 2007 à 23:01:21

Salut a tous, voila je viens d´avoir le pire message d´erreur que j´ai chopé (enfin c´est soit ça soit un message extraterrestre intercepté par erreur :p )
Voici l´erreur en question :

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\progrimage\tests\test.php:2) in C:\wamp\www\progrimage\tests\test.php on line 3
‰PNG  ���
IHDR���ú��&#655
33;ú���õ‚²®��

PLTEú���ú��&#65
533;È€¢º���—IDATxœíÑ1 ƒ0€áPpÉlï
ž¢Üê}Š£§´É)k{„„RJ¿oÉô“¼¼øom;§44×ñz+ìÇišóëúPÚ
Ïi®|ÿPu}Ÿ*þ¯Ïý¥{ñü�ðÓòžcìmÏe}¼,ëÚ…c_ _ës
¿åš÷÷]Økî¯íc¶Òþ½¿W_8?���&#65
533;�����&#6553
3;�� ð°«0Ü´ƒ8å��&#655
33;�IEND®B`‚

Et non il ne s´agit pas d´un bug ou d´un flood, ce charabia fait bien partie de mon erreur.
Si ça peut aider voici a peu prêt comment marche mon script : Un page Formulaire.php est composé de formulaire envoyé a text1.php sur text1.php il y a ceci :

<?php
$titre = htmlspecialchars ($_POST[´titre´]);
$progrimage = fopen(´test.php´, ´a+´);
$code = "
<?php
header (´Content-type: image/png´);
\$largeur = htmlspecialchars($_POST[largeur]);
\$hauteur = htmlspecialchars($_POST[hauteur]);
\$RVB1 = htmlspecialchars($_POST[RVB1]);
\$RVB2 = htmlspecialchars($_POST[RVB2]);
\$RVB3 = htmlspecialchars($_POST[RVB3]);
\$txt1RVB1 = htmlspecialchars($_POST[txt1RVB1]);
\$txt1RVB2 = htmlspecialchars($_POST[txt1RVB2]);
\$txt1RVB3 = htmlspecialchars($_POST[txt1RVB3]);
\$spolice = htmlspecialchars($_POST[spolice]);
\$x = htmlspecialchars($_POST[x]);
\$y = htmlspecialchars($_POST[y]);
[...]
imagepng(\$image); ?> ";
fputs($progrimage, $code);
fclose($progrimage);
?>

Comme vous voyez grace a Fopen j´enregistre un fichier test.php qui est une page utilisant la librairie GD, j´ai regardé le de cette page en question il me semble bien être transmit.

Bref si quelqu´un y comprend quelque chose il est le bienvenue :D

Mith55
Mith55
Niveau 8
13 octobre 2007 à 23:42:55

l´imagerie GD doit etre utilisé au meme titre que session_start, que header(); etc.

en tout debut de page! Donc tu devrai tout créer en debut de page sans q´un code (meme html) y soit placé avant !

Euh si c´est le cas je n´ai peut etre pas bien compris ton fichier alors!

Zaxid
Zaxid
Niveau 8
13 octobre 2007 à 23:49:15

C´est le cas étant donné le fonctionement de mon script.
Enfait dans l´extrait de script qui est là tout le code relatif a l´utilisation de la librairie gd fait partie de la variable "$code" et est considéré comme du texte (a ceci près que les variables $_POST sont remplacé par leurs valeurs), et le contenue de la variable $code est écrit dans le fichier "test.php" qui est créer pour l´occasion grâce a fopen.
Donc le fichier test.php (celui ou apparaît l´erreur) ne contient donc que le contenue de la variable $code qui est le code utilisant l´imagerie GD.

LeLion-67
LeLion-67
Niveau 10
14 octobre 2007 à 00:05:03

Ce n´est pas le cas.
Tu as du html envoyé avant de generer l´image :
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\progrimage\tests\test.php:2) in C:\wamp\www\progrimage\tests\test.php on line 3

Dans le fichier test.php à la ligne 3

deepblue
deepblue
Niveau 16
14 octobre 2007 à 00:17:35

1- $_POST[\"y\"]
2- dans ton test.php, tu as un saut de ligne avant <?php donc interprétation html
3- la France a perdu ce soir :snif2:

Zaxid
Zaxid
Niveau 8
14 octobre 2007 à 09:44:56

C´était bien le saut de ligne avant <?php qui posé problème, j´y avait pas pensé ^^

Pour ce qui est du $_POST[\"y\"] bah moi aussi j´avais pensé faire ça mais pour une raison que je ne comprend pas ça ne marche pas avec (je sais absolument pas pourquoi) mais ça marche sans donc je laisse comme ça arf :p)

:merci: beaucoup a vous !

deepblue
deepblue
Niveau 16
14 octobre 2007 à 11:36:51

\$y = htmlspecialchars(\$_POST[\"y\"]);

Zaxid
Zaxid
Niveau 8
17 octobre 2007 à 13:22:49

Re :-p
j´ai encore un prob mais ça a rien avoir ce coup ci.
C´est toujours pour le même code, voila enfait sur ma page formulaire.php j´ai un formulaire qui envoi $_POST[´txt´] sur text1.php, je voudrais que sur cette page §timestamp (j´ai bien dit § pas $ !) renvois le timestamp, que §ip renvois l´ip et que §amenant renvois la page qui fait arrivé sur ste page, enfin bref je m´y suis pris avec une fonction que j´ai créer mais ça a pas l´air de bien marché, en effet le texte est bien envoyé a test.php (vous vous rappellez ? le fichier créer par Fopen) mais les §machins ne sont remplacé par ... rien ...

Voila mon code :

$titre = htmlspecialchars ($_POST[´titre´]);
$progrimage = fopen(´pi/´ . $_POST[´titre´] . ´.php´, ´w+´);
$code = "<?php header (´Content-type: image/png´);
/* Variable progrimage = vaprog (§) */
\$timestamp = time();
\$amenant = \$_SERVER[´HTTP_REFERER´];
\$ip = \$_SERVER[´REMOTE_ADDR´];
function vaprog(\$texte)
{
\$texte1 = str_replace(´§timestamp´, \$timestamp, \$texte);
\$texte2 = str_replace(´§amenant´, \$amenant, \$texte1);
\$texte3 = str_replace(´§ip´, \$ip, \$texte2);
return \$texte3;
}

[...]

\$y = htmlspecialchars($_POST[y]);
\$txt = htmlspecialchars(vaprog(´$_POST[txt]´));
\$txt2RVB1 = htmlspecialchars($_POST[txt2RVB1]);

:merci: d´avance

MilesVorkosigan
MilesVorkosigan
Niveau 5
17 octobre 2007 à 13:34:53

:gne: c´est quoi cette utilisation de § :question:

P.S. : plutôt que "amenant", j´aurai utilisé le terme "origine" ou "référent" (comme le HTTP_REFERER)

Zaxid
Zaxid
Niveau 8
17 octobre 2007 à 13:54:26

Enfaite je veus utilisez § comme un signe de signalisation pour indiquer des variables qui sont remplacé par autre chose (comme [ et ] dans le BBcode).

Pour ce qui est des termes utilisé j´ai mit amenant pour l´instant mais je changerai peut être après c´est juste pour faire en sorte que ça marche pour l´instant le reste je fairais après.

deepblue
deepblue
Niveau 16
17 octobre 2007 à 14:59:18

Hm, avant de tenter de trouver une solution, une chose m´échappe : quel est le but de ton script ?

Zaxid
Zaxid
Niveau 8
17 octobre 2007 à 17:09:52

C´est le même script que celui plus haut, le but est de l´integrer dans un site internet que je suis entrain de créer ce qui permetra au utilisateur de ce créer des images programers dont ils pourront disposé comme il le souhaite.
Avec un url rewriting qui transformera les .php et .gif ils pourront même les intégrés sur certain plat-forme de blog et en signature sur les forum punBB-like.

deepblue
deepblue
Niveau 16
17 octobre 2007 à 17:19:03

Sérieusement : soit je suis débile et je ne comprend pas l´esprir quand lequel tu es, soit je ne suis pas débile et ton script n´a aucun interet :/

Tu va créer des fichiers php qui generont des images non ? Pourquoi ne pas avoir qu´une seule page php ? Pourquoi créer des images ? Quel est l´interet de tes § ?

Je crois que ton concept est à revoir :/

Zaxid
Zaxid
Niveau 8
17 octobre 2007 à 17:46:09

J´explique mon concept en détail je veus faire en sorte de donné a l´utilisateur la possibilité de se créer une image avec des variables qui change sur celle-ci (comme l´ip de celui qui lit l´image, le lien qui l´a amener sur la page ou se trouve l´image, le timestamp et plein d´autre que je n´ai pas encore mit comme la date, l´heure, l´os du visiteur ex ...) qui puisse leur servir de signature, d´image pour un blog ou autre. Et je souhaite rendre cela accessible pour un visiteur lambda n´ayant aucun notion de programation, juste en remplissant des formulaires (et en étant inscrit sur le site pour évité une saturation volontaire du serveur par un boot).
Une fois celle-ci créer le lien lui est automatiquement fournit (le lien en .gif grace a l´url rewriting) et ainsi il n´a plus qu´a l´inséré sur un forum, un blog ou un autre site avec un simple script BBcode ou Html (les deux lui seront fournit sur une autre page ou il pourra visualisé les images qu´il a créer).
L´interet du § est donc d´être un signe de "signalisation" permetant a l´utilisateur n´ayant pas de connaissance en php d´inséré par exemple l´heure sur son image (tout les $machins seront décrit sur une page d´aide).

Pour ce qui est du nombre de page j´ai fait le plus simple possible (ou du moins ce qui me semble le plus simple) : une page pour le formulaire, une page qui remplace tout les variables de formulaire et qui crée grace a Fopen une nouvelle page (qui a pour titre $_POSTE[titre].php, le titre étant en effet choisit par l´utilisateur sur la page des formulaire).

Je sais que c´est un peu "étrange" comme projet mais je pense vraiment que ça peut servir.

deepblue
deepblue
Niveau 16
17 octobre 2007 à 17:59:06

J´ai compris mais tu n´as pas besoin de créer des pages php à la volés...
Il te faut créer UNE SEULE page en php qui envoie, suivant des variables passé en parametre, une image. Si tu veux du .gif, un coup de rewrite tu explique au visiteurs comment ajouter des données dans l´image : en insérant des variables :

image.gif?afficher=ip;date,so;navigateur ...
Tu coté de la page en php, tu recupères $_GET["afficher"], tu decoupes la chaines en utilisant les ";" (explode()) et tu as les paramètres que veux le mec. Après, ce sont des conditions à faire.

Zaxid
Zaxid
Niveau 8
17 octobre 2007 à 18:12:15

Hum ... je suis pas sur du tout d´avoir tout compris mais si c´est le cas avec ta technique ce serait au visiteur de compléter l´url de l´image et celle ci serait sous forme image.gif?afficher=ip;date,so;navigateur.
Si c´est le cas je préfére faire un truc compliquer et lourd et plusieurs page car je veus vraiment que ça ai l´air super-simple même pour quelqu´un qui touche un ordinateur que tout les 36 du mois.
De plus ta technique a un gros désavantage pour moi si l´url a cette forme là l´image ne finissant pas juste par .gif ne pourra être inséré sur les forum/blog qui utilise le BBcode ou des variantes.

deepblue
deepblue
Niveau 16
22 octobre 2007 à 21:26:00

tu faus un $texte = vaprog($texte); ?

Zax
Zax
Niveau 9
23 octobre 2007 à 13:59:54

?
Il me faut que la fonction vaprog s´applique a mon $_POST[´txt´] si c´est ça ta question, mais ça ne semble pas bien marcher.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment