/etc/HELP : Comment lier deux scripts sous php ?

ViPHP
ViPHP | 3607 Messages

29 déc. 2006, 23:22

j'ai eu beau chercher, je n'ai pas trouvé la ligne qui permet d'écrire le code d'ouverture de la popup, ensuite, tu n'as pas fait les modifications dans upload.php, pour permettre d'envoyer les infos en javascript à la page post.php qui d'ailleur ne contient pas de div permettant de receuillir une tite phrase d'information...

en attendant la valid
Invité n'ayant pas de compte PHPfrance

29 déc. 2006, 23:54

Ha oui, pour un souci de clareté, j'ai mis les pages d'origine.

Par la suite. J'ai ajouté ces lignes :


post.php et dans les <? ?> :

Code : Tout sélectionner

print "<a href=\"#\" onclick=\"window.open('upp.html');return false\">photo</a>";
post.php et après ?>

Code : Tout sélectionner

<div id=infos>

dans upp.html :

rien du tout

et dans upload.php, tout en bas et après le ?> :

Code : Tout sélectionner

<html> <head> <script language="javascript"> <!-- function enregistrer(){ window.opener.getElementById('infos').innerHTML="<?php echo ($up ? 'fichier bien uploadé' : 'erreur durant l\'upload'); ?>"; self.close(); } --> </script> </head> <body onLoad="enregistrer()"> </body> </html>
Et lorsque le fichier est uploadé, je ne réussi pas à informer post.php du nom du fichier uploadé :cry:

ViPHP
ViPHP | 3607 Messages

29 déc. 2006, 23:57

attention, dans ton fichier post.php, il ne faut pas écrire <div id=infos> mais
<div id="infos"></div>
refait des essais et reviens me dire... ;-)
d'autres part si tu travail avec firefox ou opéra, tu as une console d'erreur javascript... sert t'en !

en attendant la valid
Invité n'ayant pas de compte PHPfrance

30 déc. 2006, 00:09

Ca y est :-)

Firefox me dit :

Erreur : window.opener.getElementById is not a function
Fichier source : upload.php
Ligne : 6

en attendant la valid
Invité n'ayant pas de compte PHPfrance

30 déc. 2006, 13:41

Sinon ça va :D

Je continue à taffer là-dessus. Y'a un truc qu j'ai pas du réussir à comprendre car j'y arrive toujours pas :roll:

ViPHP
ViPHP | 3607 Messages

30 déc. 2006, 13:47

bien déguisé le "up" :langue:
mais sinon je ne comprend pas l'erreur qui peut se passer...
j'ai du faire une bourde dans la transcription de mon location.reload, en getElementById
car dans un de mes sites, j'ai mis ceci:
<?php
//traitement php
?>
<html>
<head>
  <script language="javascript">
  <!--
  function enregistrer(){
	window.opener.location.reload(true);
	self.close();
}
-->
</script>
</head>
<body onLoad="enregistrer()">
</body>
</html>
et voici comment j'appel cette popup
<img onClick="detail(arguments)" src="..." alt="..." />
et la fonctions detail:
function detail(arguments){
    msg=window.open("page.html","","width=560px,height=620px,toolbar=no,location=no,directories=no,statusbar=no,status=no,menubar=no,scrollbars=yes,resizable=no");
  }
EDIT: au fait c'est un sujet qui se rapporte à javascript désormais...
Appel à modos, pour déplacer se sujet dans javascript....

en attendant la valid
Invité n'ayant pas de compte PHPfrance

30 déc. 2006, 13:56

J'"up" comme je peux :-)

Je vais reprendre mot pour mot ton code et tenter de faire le test tout de suite (j'ai mes beaux-parents de passage + je dois voir les miens après).

Sinon, mon problème est peut-être le suivant :

post.php, fenêtre appelante, ouvre un pop-up, upp.html, qui lui même va ouvrir une troisième fenêtre, upload.php, lorsque le fichier est uploader. Ca fait donc 3 pages. Enfin, c'est une idée mais en attendant, je vais rereretester. Merci encore pour ton aide!

bien déguisé le "up" :langue:
mais sinon je ne comprend pas l'erreur qui peut se passer...
j'ai du faire une bourde dans la transcription de mon location.reload, en getElementById
car dans un de mes sites, j'ai mis ceci:
<?php
//traitement php
?>
<html>
<head>
  <script language="javascript">
  <!--
  function enregistrer(){
	window.opener.location.reload(true);
	self.close();
}
-->
</script>
</head>
<body onLoad="enregistrer()">
</body>
</html>
et voici comment j'appel cette popup
<img onClick="detail(arguments)" src="..." alt="..." />
et la fonctions detail:
function detail(arguments){
    msg=window.open("page.html","","width=560px,height=620px,toolbar=no,location=no,directories=no,statusbar=no,status=no,menubar=no,scrollbars=yes,resizable=no");
  }
EDIT: au fait c'est un sujet qui se rapporte à javascript désormais...
Appel à modos, pour déplacer se sujet dans javascript....

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 déc. 2006, 14:01

EDIT: au fait c'est un sujet qui se rapporte à javascript désormais...
Appel à modos, pour déplacer se sujet dans javascript....
Je n'ai pas tout lu... je fait confiance :wink:

Modération :
en attendant la valid, les "up" sont interdits sur PHPFrance.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 3607 Messages

30 déc. 2006, 14:52

merci pour le déplacement, donc je vais résumer au nom de notre amis qui attend sa validation (tu devrais te réinscrire d'ailleur, car je pense que la validation n'arrivera plus)
...
donc le problème est le suivant...
Nous sommes sur une page post.php, qui sert à répondre à un post sur un forum, sur cette page se trouve plus sieurs champq blablabla... ces champs ne nous interessent pas :langue:.
Par contre, il y a un petit lien, comme suit
<a href="#" onclick="window.open('upp.html');return false">photo</a>
qui permet d'ouvrir une popup pour uploader un fichier..., et un div vide comme ceci:
<div id="infos"></div>
la popup contient alors:
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
     file: <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="send this">
</form> 
normal quoi, le problème ne vient pas de là... ensuite on arrive sur upload.php qui doit ressembler à quelquecchose comme ça:
<?php
// traitement php qui fonctionne, on récupère l'état de l'upload (réussit ou non) dans par exemple $up= true/false
?>
<html>
<head>
  <script language="javascript">
  <!--
  function informer_parente(up){
    window.opener.getElementByID('infos').innerHTML= (up ? 'upload réussit' : 'upload loupé');// c'est là que ça foire...
   //le window.opener permet bien d'atteindre la page parente, mais comment aller sur le document de la page parente ?
    self.close();
}
-->
</script>
</head>
<body onLoad="informer_parente(<?php echo $up;?>)">
</body>
</html> 
voilà j'espère que 'jai bien résumé ? :lol:

Petit nouveau ! | 9 Messages

30 déc. 2006, 23:25

Truc : bien noté pour les conditions d'utilisation du forum, j'ferai gaffe la prochaine fois.

Jojolapine :

Alors c'est bien ça. Et la dernière page,upload.php, attribue un nom aléatoire au fichier uploadé. Je souhaite que ce nom/variable soit envoyé à la première fenêtre appelante, post.php, afin de réutiliser ce nom pour la bdd ou pour un pré-affichage classique du fichier/photo).

Je suis rentré tout à l'heure et pour l'instant, nada :shock: mais pas de soucis, j'ai le moral :D et la ténacité :twisted:

Petit nouveau ! | 9 Messages

30 déc. 2006, 23:51

En même temps, je me rends compte que ce n'est pas très cohérent ce que je fais.

petit rappel car je suis brouillon : J'ai d'un côté un script qui post des messages et de l'autre un script qui upload des images et je souhaite lier les deux.

Seulement avec ce que je fais actuellement, j'upload d'abord l'image PUIS je tente de lier le nom du fichier uploadé au message qui n'est pas encore envoyé. Si jamais l'utilisateur abandonne son message, trop tard pour l'image qui est déjà sur le serveur.

...pas cohérent tout ça...

:evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:

...du tout...

:twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:

En fait, une fois que je réussi à récupérer le $nomdufichieruploadésurleserveur à renvoyer à la première page que je que je dev un petit script qui s'executera de manière régulière sur le serveur (grace à cron) et qui compare les fichiers sur le serveur et les noms de fichiers sur la bdd.

Un peu compliqué mais je verrais ça plus tard. Je vais déjà essayé de récupérer le $nomdufichieruploadésurleserveur...

Petit nouveau ! | 9 Messages

31 déc. 2006, 02:37

R-E-S-O-L-U !

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

Ouf!

Alors...

la question de l'upload du fichier AVANT de poster le message lui-même m'a beaucoup embêté et en testant gmail, j'ai remarqué que le fichier est uploadé lorsque le mail est envoyé, pas avant.

Donc j'ai repris le code de ma page et j'ai intégré le script d'upload afin que le message+le fichier soient uploadés en même temps.

Résultat, j'ai plus de problème avant la mise en place d'onLoad puisqu'il n'y a plus de fenêtre appelante ni de pop-up.

En fin de compte, le vieux dicton a raison : pour supprimer le problème, il suffit de supprimer la question :P

Je voudrais dire merci à mon papa et à ma maman sans qui je ne serais pas moi et ils sont là, dans la salle, ainsi qu'un gros merci à Jojolapine pour l'aide qu'il m'a apporté.

Bonne nuit et Génial, j'ai le droit de faire un break et je souhaite à tout le forum de passer un joyeux réveillon. See u en 2007 !

:wink:

ViPHP
ViPHP | 3607 Messages

31 déc. 2006, 11:58

de rien! bon réveillon à toi aussi :wink: :fete: :boire9: