begin process at 2012 05 31 05:24:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Ouvrir popup en boucle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ouvrir popup en boucle

dimanche 20 septembre 2009 à 17:46:51 | Ouvrir popup en boucle

zlatan40

Bonjour
Je réalise un petit script qui ouvre une popups pour chaque lien se situant dans un fichier texte. J'ai réalisé ce code mais seul le dernier lien de la liste s'ouvre en popup lorsque j'éxécute le script.
Comment puis-je faire ?
Merci de d'avance !

Code PHP :
<SCRIPT type="text/javascript">

function ouvre_popup(page) {
window.open(page,"nom_popup","menubar=no, status=no, scrollbars=no, menubar=no");
}
</SCRIPT>
<?php
$monfichier = fopen('liste.txt', 'r+');

echo '<script type="text/javascript">';
while($lien = fgets($monfichier))
{
$lien = substr($lien, 0, 37);
echo 'ouvre_popup("'.$lien.'");';
}
echo '</script>';

fclose($monfichier);
?>

dimanche 20 septembre 2009 à 19:30:38 | Re : Ouvrir popup en boucle

DarkM60

Déjà rajoute à la fin de ton echo 'ouvre_popup("'.$lien.'");'; un petit \n pour avoir un retour à la ligne (echo 'ouvre_popup("'.$lien.'");',"\n";)

Si ma mémoire est bonne en fait... Fgets récupère aussi le saut de ligne à la fin de chaque ligne dans ton fichier.

Donc pour chaque lien il prend le lien ET le saut de ligne. Mais pas pour le dernier. Donc seul le dernier est bon.

Essaye ça pour voir :

Code PHP :

while($lien = fgets($monfichier))
{
$lien = substr($lien, 0, 37);
$lien = str_replace("\n","",$lien);
echo 'ouvre_popup("'.$lien.'");';
}


(Et le substr sert à quoi ? Et pense à indenter ton code :p)

dimanche 20 septembre 2009 à 19:52:52 | Re : Ouvrir popup en boucle

zlatan40

merci pour ta réponse mais le problème ne vient pas de là, en fait le substr réglait déjà le problème du \n car tout mes liens font 37 caractères.
Mais je vais quand même prendre ta solution.
Donc le problème n'est pas réglé, je n'est toujours que le dernier lien qui se lance.

dimanche 20 septembre 2009 à 20:39:50 | Re : Ouvrir popup en boucle

kohntark

Membre Club
Réponse acceptée !


Salut,

Je pense plutôt que tes liens s'ouvrent correctement, le problème est qu'ils le sont dans une même fenêtre (qui s'appelle ici nom_popup)
Si tu veux ouvrir chaque lien ds une fenêtre différente il faut la nommer différemment.
Soit tu passes un second argument à ta fonction pour le nom de la fenêtre, soit tu gères ça à l'intérieur de ta fonction. Tout dépends le but en fait (si tu veux contrôler la fenêtre une fois ouverte par exemple)

Cordialement,


Kohntark -

dimanche 20 septembre 2009 à 21:23:45 | Re : Ouvrir popup en boucle

DarkM60

Oh, je n'avais pas fait attention au nom du popup ! Bien vu Kohntark !

dimanche 20 septembre 2009 à 21:32:21 | Re : Ouvrir popup en boucle

zlatan40

Merci Kohntark !
C'était bien cela, j'ai rajouté un argument à la fonction et le tour est joué.
Cependant j'ai un nouveau soucis, je voudrais en ouvrir 1 toute les 10 sec par exemple. J'utilise pour cela la fonction time() mais rien ne s'ouvre avec ce code :

Code PHP :
<script type="text/javascript">

function ouvre_popup(page,nom_popup)
{
window.open(page,nom_popup,"menubar=no, status=no, scrollbars=no, menubar=no");
}

<?php
$temps = time();
$monfichier = file('liste.txt');
foreach($monfichier as $lien)
{
while(time()-$temps <= 10)
{
$temps = time();
$lien = str_replace("\n","",$lien);
echo "\n".'ouvre_popup("'.$lien.'","'.$lien.'");';
}
}
?>
</script>

lundi 21 septembre 2009 à 11:33:00 | Re : Ouvrir popup en boucle
lundi 21 septembre 2009 à 15:09:40 | Re : Ouvrir popup en boucle

DarkM60

Tu dois bien comprendre que PHP est éxécuté côté SERVEUR et que javascript est exécuté côté CLIENT.

En gros, ton time() ne te sert à rien ici, il va juste faire "attendre" le serveur, mais les popups seront tous affichés en même temps.

Si tu veux vraiment faire une attente entre les popups il faut utiliser les fonctions d'attente en javascript (Renseigne toi sur setTimeout, ça créé une minuterie)


Tu pourrais tenter quelque chose comme ça :

Code PHP :

<script type="text/javascript">
function ouvre_popup(page,nom_popup)
{
window.open(page,nom_popup,"menubar=no, status=no, scrollbars=no, menubar=no");
}

<?php
$i = 0;
$monfichier = file('liste.txt');
foreach($monfichier as $lien)
{
$milisecondes = ($i * 10000);
$lien = str_replace("\n","",$lien);
echo "\n".'setTimeout("ouvre_popup()",'.$milisecondes.',"'.$lien.'","'.$lien.'");';
$i++;
}
?>

</script>


Dis moi ce que ça donne, je n'ai pas testé, mais l'idée c'est d'utiliser setTimeout.

lundi 21 septembre 2009 à 18:03:54 | Re : Ouvrir popup en boucle

kohntark

Membre Club



ton time() ne te sert à rien ici, il va juste faire "attendre" le serveur


Heu, non, il ne va rien faire attendre du coup. time() retourne un timestamp unix, rien d'autre. Il aurait fallu utiliser sleep, mais c'est une mauvaise idée.

Je ne connais pas le contexte mais il y a de fortes chances que ces ouvertures de popups soient également une mauvaise idée :
- tu vas faire fuir tes visiteurs avec des popups non sollicitées
- tel que tu procèdes n'importe quel anti popup va les bloquer


Cordialement,


Kohntark -

mardi 22 septembre 2009 à 21:51:30 | Re : Ouvrir popup en boucle

zlatan40

Merci pour vos réponses, j'ai trouvé en fait c'est en JS avec settimeout() que cela fonctionne.
Pour info ce script n'a pas pour but de diffuser des pubs donc cela ne fera pas fuir les visiteurs :)
Je souhaiterai maintenant fermer la popup qui est ouverte avant d'en réouvrir une nouvelle. J'ai essayer avec le nom de la popup mais ce n'est pas bon.

Code PHP :
$temps = 0;

$i = 0;
$monfichier = file('liste.txt');
foreach($monfichier as $lien)
{
$i++;
$lien = trim($lien);
echo "\n".'setTimeout(\'ouvre_popup("'.$lien.'","fenetre'.$i.'");\','.$temps.');'."\n";
$temps+=10000;
echo 'fenetre'.$i.'.close();';
}



Cette discussion est classée dans : ouvrir, ouvre, code, lien, popup


Répondre à ce message

Sujets en rapport avec ce message

Popup [ par panpan ] Hello, une petite question...Mon probleme est que sur me page j'ai un lien qui ouvre une popup, mais ce que j'aimerai c'est que quant la personne cliq Ouvrir une autre fenêtre avec une redirection. [ par jbaudin ] Bonjour à tous !Je chercher comment faire pour créer une redirection qui ouvre une autre fenêtre ?ex :1 - L'utilisateur clique sur un lien2 - Affichag Popup [ par flasher_13 ] Bonjour à tous, j'ai posté ce même message sur javascriptfr mais personne n'a répondu, alors je tente maintenant de trouver un code en PHP à l'aide de ouvre une popup en PHP [ par Anthotill ] Bonjour à tous !je suis paumé avec tous ces '"''"'"' et donc je n'arrive pas a ouvrir une popup simple avec php :s :sur ce liens : Imprimermettre ce lecture lien [ par jojo545 ] Suite à mon ancien message, je n'ai pas trop compris:Existe il un code en php qui puisse récupérer les liens d'une page quelqonque ( ex :<A href="http popup : lien qui "pop" pas [ par crazykamel ] Soit ce lien : <A tabindex="0" href="#" onclick="window.open('include/popMailFinal.php','Aper&ccedil;u de l'invitation','toolbar=0, location=0, direc Un clic = un lien + une popup [ par mike501 ] bonjour je voudrai un script qui me permet quand un personne clique sur un lien cela ouvre une autre fenetre sur une autre pagecela pour mettre dans u mail [ par rich25200 ] bonjour, je veux envoyé un mail a partir de la fonction mail mais j'ai un prob voial mon code : $to = "xxxxx@hotmail.com";         $subject = 'Activ lien fichier local avec easyphp [ par toineekikil ] Bonjour, Alors voila je fais un site intranet et j'utilise easyphp. J'ai besoin de consulter un fichier excel, j'ai donc commencé par faire un lien vers document [ par edclaire ] Bonjour,  j'ai 2 gros problèmes. Mon premier est au niveau du navigateur :   Voila je lance mon code dans une fenêtre Firefox puis quand je clique sur


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales