PHP et javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP et javascript

par captainstf » 02 mars 2009, 10:02

Désolé, j'avais la solution sous les yeux et pourtant...

Merci beaucoup pour votre aide !

@ bientôt !
Stéphane

par Ryle » 01 mars 2009, 14:06

C'est effectivement la variable (le tableau) qu'il te faut déclarer comme global, et pas une valeur de celui-ci (d'où le message d'erreur quand tu utilises les crochets :))
<?php 
//****************************************************************************** 
// Test mode maintenance 
//****************************************************************************** 
function mode_maintenance() { 

    global $G_config; // permet d'accéder à la variable $G_config qui est définie hors de la fonction

    if ( isset($G_config['ip_maintenance'])  
          && $G_config['ip_maintenance']!=='0.0.0.0' 
          && $G_config['ip_maintenance']!==get_ip()){ 
      echo '<SCRIPT language="JAVASCRIPT">'; 
        echo 'window.open("divers/maintenance.html","_self");'; 
        echo '</SCRIPT>'; 
      } 
} 
?>
C'est normalement tout ce que tu as à faire :)

par captainstf » 01 mars 2009, 02:26

Si je fais ça dans ma procédure ça ne fonctionne pas , $G_config est vide. Et dans la page appelante, je n'en vois pas trop l'intérêt, autant passer un paramètre.
Mais merci quand même !

par sylvaing26 » 28 févr. 2009, 16:58

si tu definit
$G_config = $G_config['ip_maintenance'];
et qu'ensuite tu fais 
global $G_config;

par captainstf » 28 févr. 2009, 16:47

Merci pour votre aide !!

Cela fonctionne avec passage de paramètre. Par contre la déclaration de mon tableau :
global $G_config['ip_maintenance'];
Me donne le message d'erreur :

Code : Tout sélectionner

Parse error: syntax error, unexpected '[', expecting ',' or ';' in proc_php.php on line 6
Pourtant j'aurais préféré cette solution que je trouvais plus propre !

Si vous avez un dernier tuyau ?? Je prends !!

Merci
@++
Stéphane

par Ryle » 27 févr. 2009, 18:22

Tout simplement parce qu'à l'intérieur de ta fonction, la variable $G_config n'est pas définie.

Il te faut soit la passer en paramètre de ta fonction, soit la déclarer comme "global" à l'intérieur de cette dernière :)

Nota : PHP n'exécute pas du code javascript. PHP génère du code html qu'ensuite le navigateur interprête et va le cas échéant, exécuter la partie javascript ;)

par sylvaing26 » 27 févr. 2009, 18:22

Et comme ca ?
require_once "proc_php.php"; 
mode_maintenance($G_config['ip_maintenance'])); 
<?php 
//****************************************************************************** 
// Test mode maintenance 
//****************************************************************************** 
function mode_maintenance($G_config['ip_maintenance'])) { 
    if ( isset($G_config['ip_maintenance'])  
          && $G_config['ip_maintenance']!=='0.0.0.0' 
          && $G_config['ip_maintenance']!==get_ip()){ 
      echo '<SCRIPT language="JAVASCRIPT">'; 
        echo 'window.open("divers/maintenance.html","_self");'; 
        echo '</SCRIPT>'; 
      } 
} 
?>
[/php]

PHP et javascript

par captainstf » 27 févr. 2009, 18:10

Salut à tous j'ai un petit soucis pour exécuter un code javascript grâce à php :

Lorsque j'ai ceci :
if ( isset($G_config['ip_maintenance']) 
      && $G_config['ip_maintenance']!=='0.0.0.0'
      && $G_config['ip_maintenance']!==get_ip()){
  echo"<SCRIPT language='JAVASCRIPT'>";
	echo 'window.open("divers/maintenance.html","_self");';
	echo"</SCRIPT >";
}
Le code fonctionne et je suis redirigé vers ma page de maintenance

Par contre si je place ce code dans une fonction php dans un fichier de procédure et que j'execute ceci :
<?php
require_once "proc_php.php";
mode_maintenance();
avec le fichier proc_php.php comme ceci :
<?php
//******************************************************************************
// Test mode maintenance
//******************************************************************************
function mode_maintenance() {
    if ( isset($G_config['ip_maintenance']) 
          && $G_config['ip_maintenance']!=='0.0.0.0'
          && $G_config['ip_maintenance']!==get_ip()){
      echo '<SCRIPT language="JAVASCRIPT">';
    	echo 'window.open("divers/maintenance.html","_self");';
    	echo '</SCRIPT>';
  	}
}
?>
Et bien là ça ne fonctionne plus !!!
Quelqu'un pourrait il m'expliquer pour quelle raison, y a un truc qui m'échappe là !!

Merci d'avance !
@++
stf