Ouvrir une page dans une nouvelle fenêtre

Ouvrir une page dans une nouvelle fenêtre - PHP - Programmation

Marsh Posté le 10-01-2013 à 23:19:54    

Bonjour à tous,
 
Dans le traitement d'un formulaire en php, j'ai besoin, en plein milieu de ma fonction, d'ouvrir automatiquement une page dans une nouvelle fenêtre.
Pas de problème pour y arriver via ceci:

Code :
  1. echo "<script language='JavaScript'>window.open('".$sms_frm_message."','_blank','width=200, height=100');</script>";


Mais mon soucis est que IE me bloque comme un popup. Il faut autoriser la page etc, mais y a-t-il moyen d'éviter ça?
Je pense bien que php ne permet d'ouvrir une page dans une nouvelle fenêtre. Y aurait-il alors une autre solution?
 
Merci d'avance!


Message édité par bingojm le 10-01-2013 à 23:20:18
Reply

Marsh Posté le 10-01-2013 à 23:19:54   

Reply

Marsh Posté le 11-01-2013 à 16:02:13    

Déjà, tu mélange tout et du coup tu ne poste pas vraiment au bon endroit.
Là, tu n'utilise du php que pour écrire du javascript. C'est ton javascript qui ouvre ta popup et non pas ton php.
Ton post devrait donc plutôt se trouver dans la section HTML / CSS / JavaScript.

 

A part ça, tout les navigateurs bloquent l'ouverture de popup au chargement de la page étant donné tout les abus qui on été fait de cette fonctionnalité à des fins publicitaire.

 

Tu peux ouvrir une popup suite à une action de la part de ton utilisateur sur la page. Un clique par exemple. Il n'y a pas vraiment de solution pour bypasser ce fonctionnement et c'est tant mieux !

 

Tu peux t'orienter vers une popin (je déteste ce terme mais je n'en connais pas d'autre...).


Message édité par dwogsi le 11-01-2013 à 16:03:35

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 11-01-2013 à 18:16:36    

Et un <a target="_blank"></a> ca fait pas l'affaire ?

Reply

Marsh Posté le 12-01-2013 à 11:05:14    

Bonjour,
Vous souhaitez que lorsque la fonction PHP se lance, une fenêtre HTML se lance pour afficher un message de résultat?


---------------
Besoin d'aide pour votre projet? agence web
Reply

Marsh Posté le 15-01-2013 à 12:22:25    

Bonjour.
Merci pour votre aide. En fait, je dois lancer une fonction php via un webCron. Je viens de le tester. Le webcron se lance bien, mais la fonction javascript ne fonctionne pas. J'imagine qu'une fenêtre ne peut pas s'ouvrir vu que c'est un cron qui gère...
Pour info, c'est une fonction qui permet d'envoyer des sms automatiquement. Je dois envoyer les infos à envoyer par sms vers le serveur concerné. Je pourrais alors y arriver avec un header? Sinon comment faire pour envoyer ces infos en _GET?

Reply

Marsh Posté le 15-01-2013 à 13:58:56    

Il faut bien différencier traitement serveur de traitement client.

 

Le php est exécuté sur le serveur. Pour lui le javascript c'est juste du texte qu'il va transmettre au client.

 

Le javascript est exécuté sur le client. C'est lui qui va interprêter les commandes, et, dans ce cas précis ouvrir une popup.

 

Le truc c'est que dans le cas de webcron (je ne connais pas, mais j'imagine que c'est un site/programme qui permet de programmer l'appel d'une page à interval régulier, avec des paramètres pré-définis), le client n'est pas un navigateur web traditionnel et il y a peu de chance que le javascript soit exécuté.


Message édité par x1fr le 15-01-2013 à 14:00:32

---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 15-01-2013 à 14:05:10    

ok ok. cela dit, j'ai une solution?

Reply

Marsh Posté le 15-01-2013 à 15:04:43    

Ben quelle est la fonction de la popup? Afficher des infos?
 
Si oui, tu peux, au lieu de les afficher, les envoyer par mail ou les enregistrer en base par exemple


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 15-01-2013 à 15:40:22    

non en fait le but est d'envoyer des infos en variable url.
ex: www.mapage.php?gsm=0478123456&msg=salut
Comment puis-je faire dans ce cas?

Reply

Marsh Posté le 15-01-2013 à 16:59:51    

Je ne suis pas sûr de comprendre.
 
Le but de la popup est d'aller appeler ta page à l'url donnée en exemple?
 
Si c'est ça, tu peux utiliser curl (à condition que l'extension soit activée sur le serveur web)
 
Voir peut être directement appeler cette page depuis le webcron, mais ça implique que les arguments soient statiques, ce qui n'est pas le cas je pense


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 15-01-2013 à 16:59:51   

Reply

Marsh Posté le 15-01-2013 à 21:05:49    

x1fr a écrit :

Je ne suis pas sûr de comprendre.
 
Le but de la popup est d'aller appeler ta page à l'url donnée en exemple?
 
Si c'est ça, tu peux utiliser curl (à condition que l'extension soit activée sur le serveur web)
 
Voir peut être directement appeler cette page depuis le webcron, mais ça implique que les arguments soient statiques, ce qui n'est pas le cas je pense


Merci, je crois que c'est exactement ca que je cherche!
Mais il semble y avoir un problème. En lisant la doc, voici ce que j'ai fait:

Code :
  1. $mon_url='www.mapage.php?gsm=0478123456&msg=salut';
  2.  $ch = curl_init();
  3.  curl_setopt($ch, CURLOPT_URL, $mon_url);
  4.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5.  $recup_html = curl_exec ($ch);
  6.  echo $recup_html;


Mais voilà le message d'erreur que j'ai:

Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string.
--------------------------------------------------------------------------------
Apache/1.3.37 Server at ns36972.ovh.net Port 80


Est-ce que j'ai fait une erreur ou est-ce que ca veut dire que ca n'ira pas sur mon serveur???
 
Merci encore pour votre aide!

Reply

Marsh Posté le 15-01-2013 à 23:21:48    

Est ce que tu as bien mis une url correcte?
 
parce celle que tu mets www.mapage.php?gsm=0478123456&msg=salut n'est pas valide par exemple


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 16-01-2013 à 10:37:02    

j'ai bien une url correcte. Elle commence bien par http://www.etc
si je mets cette adresse dans le navigateur directement, l'envoi du sms (vu que c'est son but) s'effectue correctement.
Une idée?

Reply

Marsh Posté le 16-01-2013 à 11:27:38    

D'apres ce qu'on peut trouver sur le net (ici par exemple), ça viendrait du serveur.
 
Tu as accès au log du serveur web (pas celui qui lance le cron, mais celui qui contient la page qui envois le sms)?


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 16-01-2013 à 11:40:24    

Non pas d'accès. c'est un service payant qui ne donne aucun accès.
Pour que le sms s'envoie, j'ai juste besoin de leur envoyer une url qui contient les différentes valeurs en GET c'est tout.
Donc là, je sèche complètement pour envoyer des sms automatiquement avec un cron.
Ton idée avec curl_init avait l'air d'être vraiment ce qu'il fallait, mais je ne comprends pas pq ca bloque...

Reply

Marsh Posté le 16-01-2013 à 12:18:37    

essaye de remplacer cette ligne :

Code :
  1. curl_setopt($ch, CURLOPT_URL, $mon_url);


 
par:

Code :
  1. curl_setopt($ch, CURLOPT_URL, urlencode($mon_url));


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 16-01-2013 à 12:37:43    

plus de message d'erreur, mais cela ne fonctionne pas...

Reply

Marsh Posté le 16-01-2013 à 12:44:22    

J'ai trouvé l'erreur grâce à toi!
En fait c'est dans l'url que ca bloque, mais curl_init c'est nikel.
Peux tu me dire ce que ne va pas?
Dans mon url, j'ai mis:
"http://www.monsite.be/envoi.php?auteur=1&Message=Nous vous souhaitons un très joyeux anniversaire";
Si je ne mets qu'un mot après Message, ça passe, mais pas quand j'en mets plusieurs... avec espaces?
Par contre si je colle directement ce lien dans l'url, ca passe.


Message édité par bingojm le 16-01-2013 à 12:45:27
Reply

Marsh Posté le 16-01-2013 à 14:05:02    

Et si tu remplaces les espaces par des %20, ça donne quoi? (si ca fonctionne, il faudra utiliser rawurlencode à la place de urlencode)


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 16-01-2013 à 14:15:32    

c'est super.
J'ai oublié de précisé tout à l'heure. Cela fonctionne avec curl mais pas avec urlencode.
donc je dois simplement remplacer les espaces par %20 et c'est nickel. Un tout grand merci!!!

Reply

Marsh Posté le 16-01-2013 à 14:39:26    

Pas uniquement remplacer les espaces par %20, tous les caractères non alpha-numériques sont concernés, par exemple si ton message sms contient un "/" tu va avoir le même genre de soucis, c'est pour ça qu'il faut utiliser rawurlencode


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed