Pages: 1
|
![Spitfire 95](http://cdl95.superforum.fr/users/2413/33/47/88/avatars/118-65.png)
Membre
|
Bonjour. Je suis bloqué quand mon code.
Un long et compliqué discours n'étant pas très pratique, je vous donne le lien vers une page de référence : http://free-apps.evoconcept.net/logiciels/antares/index.php
Et le code de ma popup (dl.php) :
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True)
{ ?><b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?}
else{?>
<?if($_POST['submit']) {
if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript"><!--
width = 350; height = 180;
if(window.innerWidth)
{ var left = (window.innerWidth-width)/2;
var top= (window.innerHeight-height)/2;}
else
{ var left = (document.body.clientWidth-width)/2;
var top= (document.body.clientHeight-height)/2;}
window.open("dl.php?deb=True","Information paquet debian","menubar=no,scrollbars=no,top="+top+",left="+left+",width="+width+",height="+height+"");}
--></script>
<?}
if(isset($_POST['choix'])){?>
<script type="text/javascript">this.close()</script>
<? header('Location: '.$_POST['choix']);
}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
</div>
<?}?>
</body>
</html>
Donc les problèmes :
- La popup d'aide ne s'ouvre pas
- La popup en cour ne se ferme pas ( this.close() )
Je pense que les problèmes viennent de if($_POST['submit']) qui doit empêcher d'écrire dans la page (me demandez pas pourquoi je pense ça parce que ça me semble pas très logique), et de la redirection. Pourtant même en déplaçant le code de cette dernière, ça marche pas. Donc je reste sur l'hypothèse que mes scripts js ne sont pas écrits lors de la soumussion du formulaire.
Merci pour votre aide.
|
![ybouane](http://www.supportduweb.com/ftp/ybouane/avatar.png)
Admin
|
Bonjour,
Un des problèmes, c'est que ton header(Location.... doit être mis avant tout code html:
http://php.net/manual/fr/function.header.php
Ce qui se passe, c'est que la redirection s'effectue, mais ta page ne s'affiche pas(car il y a une redirection).
La solution serait donc d'ouvrir une nouvelle pop-up avec le lien de téléchargement. et après, fermer la page actuelle.
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True)
{ ?><b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?}
else{?>
<?if($_POST['submit']) {
if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript"><!--
width = 350; height = 180;
if(window.innerWidth)
{ var left = (window.innerWidth-width)/2;
var top= (window.innerHeight-height)/2;}
else
{ var left = (document.body.clientWidth-width)/2;
var top= (document.body.clientHeight-height)/2;}
window.open("dl.php?deb=True","Information paquet debian","menubar=no,scrollbars=no,top="+top+",left="+left+",width="+width+",height="+height+"");}
--></script>
<?}
if(isset($_POST['choix'])){?>
<script type="text/javascript">window.open('<?php echo $_POST['choix']); ?>', '_blank');
this.close()</script>
<?
}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
</div>
<?}?>
</body>
</html>
Cordialement![:)](http://www.webestools.com/page/designs/9/images/yform/smileys/1.gif)
![Image](http://www.supportduweb.com/ftp/ybouane/banniere_signature.png)
|
![Spitfire 95](http://cdl95.superforum.fr/users/2413/33/47/88/avatars/118-65.png)
Membre
|
Merci. Donc voici mon code avec quelques améliorations et corrections :
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True){ ?>
<b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?if($_GET['dl']==True){?><script type="text/javascript">window.location="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb";</script>
<?}}else{?>
<?if($_POST['submit']) {
if(isset($_POST['choix'])){?>
<? if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript">window.location="dl.php?deb=True&dl=True";</script>
<?} else {?><script type="text/javascript">window.location="<? echo$_POST['choix'];?>";this.close()</script><?}}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
<?}?>
</div>
</body>
</html>
Je n'ai finalement conservé qu'une pop-up. Le seul problème qui me reste est pour fermer les fenêtres.
<script type="text/javascript">window.location="<? echo$_POST['choix'];?>";this.close()</script>
Il ferme la fenêtre avant que la page ne soit chargé, donc le téléchargement ne se fait pas. La solution serait de dire au navigateur : while(True){ if(page_chargée) { this.close(); break;}}
Mais sur internet je n'ai pas trouvé de solution (claire) pour détecter si la page est bien chargée.
Quand à l'installation d'une balise onload sur body, ça me semble lourd pour mon système.
Merci pour votre aide.
|
![ybouane](http://www.supportduweb.com/ftp/ybouane/avatar.png)
Admin
|
Bonjour,
lorsque tu redirige la page plus aucun script ne s'exécutera. c'est donc normal que quand tu essaye de fermer la fenêtre après l'avoir redirigée, ça ne fonctionne plus. c'est pour ça que dans le code que je t'ai donné, j'ai ouvert une nouvelle fenêtre et ensuite j'ai fermer la fenêtre de téléchargement.
Le problème, c'est qu'en fermant la fenêtre de téléchargement, le celle que je viens d'ouvrir se ferme aussi.
Il font donc ouvrir le téléchargement, sur la page de la fiche du logiciel.
Bref, je sais que c'est pas très clair, mais voici le code à utiliser:
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True)
{ ?><b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?}
else{?>
<?if($_POST['submit']) {
if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript"><!--
width = 350; height = 180;
if(window.innerWidth)
{ var left = (window.innerWidth-width)/2;
var top= (window.innerHeight-height)/2;}
else
{ var left = (document.body.clientWidth-width)/2;
var top= (document.body.clientHeight-height)/2;}
window.open("dl.php?deb=True","Information paquet debian","menubar=no,scrollbars=no,top="+top+",left="+left+",width="+width+",height="+height+"");}
--></script>
<?}
if(isset($_POST['choix'])){?>
<script type="text/javascript">window.opener.open('<?php echo $_POST['choix']); ?>', '_blank');
this.close()</script>
<?
}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
</div>
<?}?>
</body>
</html>
Cordialement![:)](http://www.webestools.com/page/designs/9/images/yform/smileys/1.gif)
![Image](http://www.supportduweb.com/ftp/ybouane/banniere_signature.png)
|
![Spitfire 95](http://cdl95.superforum.fr/users/2413/33/47/88/avatars/118-65.png)
Membre
|
Mais cela pose tout de même deux problèmes :
-Le navigateur tolérera une pop-up, mais deux il propose déjà de bloquer les pop-ups du site (Google Chrome 10 Linux me le propose en tous cas).
-Une pop-up vide n'est pas agréable pour le visiteur, et même en mettant les dimensions 0x0+0+0 (donc 0px de l, 0px de L, placé en haut à gauche, dit comme en Python-Tkinter), celle ci ne prend pas ces dimensions extrêmes et reste visible. Y-a-t-il une propriété pour la rendre invisible ?
Sinon je changerais le code de /download.php pour que if($_GET['close']==1){ echo '<script type="text/javascript">this.close()</script>
|
![ybouane](http://www.supportduweb.com/ftp/ybouane/avatar.png)
Admin
|
Bonjour,
le code que je t'ai donné fonctionne avec la firefox, opera.. mais pas avec chrome, voici un code qui fonctionne aussi avec chrome:
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True)
{ ?><b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?}
else{?>
<?if($_POST['submit']) {
if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript"><!--
width = 350; height = 180;
if(window.innerWidth)
{ var left = (window.innerWidth-width)/2;
var top= (window.innerHeight-height)/2;}
else
{ var left = (document.body.clientWidth-width)/2;
var top= (document.body.clientHeight-height)/2;}
window.open("dl.php?deb=True","Information paquet debian","menubar=no,scrollbars=no,top="+top+",left="+left+",width="+width+",height="+height+"");}
--></script>
<?}
if(isset($_POST['choix'])){?>
<script type="text/javascript">window.opener.open('<?php echo $_POST['choix']); ?>', '_self');
this.close()</script>
<?
}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
</div>
<?}?>
</body>
</html>
Cordialement![:)](http://www.webestools.com/page/designs/9/images/yform/smileys/1.gif)
![Image](http://www.supportduweb.com/ftp/ybouane/banniere_signature.png)
|
![Spitfire 95](http://cdl95.superforum.fr/users/2413/33/47/88/avatars/118-65.png)
Membre
|
J'ai réussi en reprenant mon code puis en changeant par la ligne que vous avez changé, et ça fonctionne parfaitement et en ne nuisant pas à la navigation (contrairement aux doubles popups).
<? require('../../head.php');?>
</head>
<body>
<div id="div_header" style="border-radius:15px;padding:5px;margin:5px;">
<?if($_GET['deb']==True){ ?>
<b>Mises à jour du paquet</b><br>
Pour bénéficier des mises à jour de Antares installé par paquet Debian en même temps que les autres logiciels,
par le biais de votre gestionnaire de paquets (apt-get, synaptic, ubuntu software center...),
veuillez executer les commandes suivantes dans un terminal (en ayant les droits d\'administrateur) :<br>
<div style="background:#000000;color:#ffffff;overflow-x:auto;border-radius:5px;margin:5px;padding:2px 3px 2px;white-space:nowrap;">
echo "deb http://ppa.launchpad.net/aurelien-riv/free-apps/ubuntu lucid main" | sudo tee -a /etc/apt/sources.list<br>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7F3730A9
</div>
<?if($_GET['dl']==True){?><script type="text/javascript">window.location="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb";</script>
<?}}else{?>
<?if($_POST['submit']) {
if(isset($_POST['choix'])){?>
<? if($_POST['choix']=='https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb'){?>
<script type="text/javascript">window.location="dl.php?deb=True&dl=True";</script>
<?} else {?><script type="text/javascript">window.opener.open('<?echo$_POST['choix'];?>','_self');this.close()</script><?}}}?>
<form action="" method="post">
<? if($_GET['src']==0){ ?>
<input type="radio" name="choix" value="https://launchpad.net/~aurelien-riv/+archive/free-apps/+files/antares_7.0.2_all.deb"><img src="/images/common/mime/deb.png" alt='paquet debian'> Paquet deb<br>
<? } else {?>
<input type="radio" name="choix" value="http://free-apps.evoconcept.net/download.php?file=/logiciels/antares/antares.tar.gz"><img src="/images/common/mime/tar-gz.png" alt='archive tar.gz'> Archive tar.gz<br>
<?}?>
<br><input type='submit' name='submit' value='Télécharger'>
</form>
<?}?>
</div>
</body>
</html>
Merci.
|
Pages: 1
|