IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

Ajax + Javascript + php


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 11
    Par défaut Ajax + Javascript + php
    Bonjour,

    Mon bouton javascript appel une fonction javascript qui à l'intérieur de la fonction il y a de l'ajax et l'ajax appelle un fichier script php, et le fichier php écrit dans un fichier text.

    Mon problème, tout fonctionne avec google chrome (chromium sous linux) la fonction ajax appelle le php qui écrit dans un fichier OK. par contre avec firefox le comportement change le résultat : la fonction ajax qui appelle un fichier script php n'écrit plus ou se ne déclenche plus.


    Voici mon code



    Les boutons :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <li><a href="javascript:callfunction('button Offre De Service');">Offre De Services</a></li>
     
    et
     
    <a href="javascript:callfunctions('connexionsecure','button Connection Secure');" class="bouton_rouge2">Connexion Sécurisée/Secure <img src="images/flecheblanchedroite.png" alt="flecheblanchedroite02" /></a>




    Voici mon script javascript et ajax :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    /**
     * Connexionsecure...
     */
    function logbutton(id)
    {
            // See logsecure.php
            // var VarJSCRIPT = 5;
            // $.get("logsecure.php", {VarPHP: VarJSCRIPT});
     
            var BCShttps = "";
            var ODShttps = "";
            var BCShttp = "";
            var ODShttp = "";
     
            BCShttps = "https Button Connection Secure";
            ODShttps = "https Button Offre De Service";
            BCShttp = "http Button Connection Secure";
            ODShttp = "http Button Offre De Service";
     
            if (window.location.protocol == "https:")
            {
                    switch (id)
                    {
                            case "button Connection Secure":
                                    var req = new XMLHttpRequest();
                                    req.open('POST', 'logbutton.php', true);
                                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                    var post = 'logbutton='+BCShttps; // post string
                                    req.onreadystatechange = logmessages(BCShttps);
                                    req.send(post);
                            break;
                            case "button Offre De Service":
                                    var req = new XMLHttpRequest();
                                    req.open('POST', 'logbutton.php', true);
                                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                    var post = 'logbutton='+ODShttps; // post string
                                    req.onreadystatechange = logmessages(ODShttps);
                                    req.send(post);
                            break;
                            default:
                    }
            }
            else if (window.location.protocol == "http:")
            {
                    switch (id)
                    {
                            case "button Connection Secure":
                                    var req = new XMLHttpRequest();
                                    req.open('POST', 'logbutton.php', true);
                                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                    var post = 'logbutton='+BCShttp; // post string
                                    req.onreadystatechange = logmessages(BCShttp);
                                    req.send(post);
                            break;
                            case "button Offre De Service":
                                    var req = new XMLHttpRequest();
                                    req.open('POST', 'logbutton.php', true);
                                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                    var post = 'logbutton='+ODShttp; // post string
                                    req.onreadystatechange = logmessages(ODShttp);
                                    req.send(post);
                            break;
                            default:
                    }
            }
    }

    Voici mon script PHP :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
            $button = $_REQUEST['logbutton'];
            if (isset($button))
            {
                    header("Expires: 0");
                    header("Cache-Control: no-cache");
                    header("Pragma: no-cache");
                    $file_log=fopen("1234/logbutton.txt", "a+");        
                    if($file_log == false) die("La cr�ation du fichier a �chou�");
                    $date_log = date("d/m/Y H:i:s");
                    $log = "Log Button --> " .$button. " " .$date_log."\r\n";
                    fwrite($file_log, $log);
                    fclose($file_log);
            }
            exit();
    ?>

    Si quelqu'un a une idée

    Cordialement

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 581
    Par défaut
    Salut,

    Que dit la console?
    On utilise plutôt fetch maintenant https://developer.mozilla.org/fr/doc...g_Fetchhttp:// .
    Quel est la version de firefox et chrome?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 11
    Par défaut
    Bonjour,

    Alors je suis sur Ubuntu 20.04 et pour firefox version 80.0.1 et chrome version 85.0.4183.121

    Pourriez-vous me montrer un petit example simple juste pour me guider avec fetch de mon exemple pour que je puisse comprendre ?

    Cordialement

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 11
    Par défaut
    Bonjour,

    Merci à kevin254kl qui m'a proposé de remplcer mon code ajax par de l'Ajax Fetch. Tout fonctionne sur chrome, et sur firefox j'ai 1 bouton sur 2 qui fonctionne sur firefox.

    voici mon code :

    Les boutons :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <body>
            <div id="bloc_page">
                <header>
                    <div id="titre_principal">
                        <div id="logo">
                            <a href="index.php"><img src="images/caisse.png" alt="caisse01" /></a>
                            <a href="index.php" style="text-decoration: none; color: #181818;"><h1>Caisse</h1></a>
                        </div>
                        <h2>Français</h2>
                    </div>
     
                    <nav>
                        <ul>
                            <li class="deroule"><a href="#"><br /><br /><br />Français<span class="fleche"></span></a>
                            ... code ...    
                            <li><a href="fr_avis.php"><br /><br /><br />Les Avis</a></li>
                            <li><a href="fr_licence.php"><br /><br /><br />Licence</a></li>
                            <li class="deroule"><a href="#">Offre<br />De<br />Services/<br />Blog<span class="fleche"></span></a>
                                <ul>
                                    <!-- KO <li><a href="fr_offre_de_services.php" onclick="javascript:logbutton('button Offre De Service');">Offre De Services</a></li> -->
                                    <!-- Call the Functions callfunction(id_logbutton) in javascript file scriptjs.js -->
     
    				CE BOUTON NE MARCHE PAS AVEC FETCH DANS FIREFOX...
     
                                    <li><a href="javascript:callfunction('button Offre De Service');">Offre De Services</a></li>
                                    <li><a href="fr_blog.php">Blog</a></li>
                                </ul>
                            </li>
                            <li><a href="contact.php"><br /><br /><br />Contact</a></li>
                        </ul>
                        <br /><br />
                    </nav>
                    <script src="/scriptMenujs.js" type="text/javascript"></script>
     
                </header>
    	<div id="banniere_image">
                    <div id="banniere_description">
                        Le pont de San Francisco.
                        <!-- Call the Functions toggle(id) and logbutton(id); in javascript file scriptjs.js -->
                        <!-- KO <a href="javascript:toggle('connexionsecure');javascript:logbutton('button Connection Secure');" class="bouton_rouge2">Connexion Sécurisée/Secure <img src="images/flecheblanchedroite.png" alt="flecheblanchedroite02" /></a> -->
                        <!-- Call the Functions callfunctions(id_toggle,id_logbutton) in javascript file scriptjs.js -->
     
    		    CE BOUTON MARCHE AVEC FETCH DANS FIREFOX...
     
    		    <a href="javascript:callfunctions('connexionsecure','button Connection Secure');" class="bouton_rouge2">Connexion Sécurisée/Secure <img src="images/flecheblanchedroite.png" alt="flecheblanchedroite02" /></a>
                        <a href="javascript:toggle('systemcaisse');" class="bouton_rouge">Système Caisse <img src="images/flecheblanchedroite.png" alt="flecheblanchedroite02" /></a>                           
                    </div>
                </div>
            </div>



    Voici mon script javascript et ajax fetch:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    /**
     * Connexionsecure...
     */
    function logbutton(id)
    {
    	// See logsecure.php
    	// var VarJSCRIPT = 5;
    	// $.get("logsecure.php", {VarPHP: VarJSCRIPT});	
     
    	var BCShttps = "";
    	var ODShttps = "";
    	var BCShttp = "";
    	var ODShttp = "";
     
    	BCShttps = "https Button Connection Secure";
    	ODShttps = "https Button Offre De Service";
    	BCShttp = "http Button Connection Secure";
    	ODShttp = "http Button Offre De Service";		
     
    	if (window.location.protocol == "https:")
    	{
    		switch (id)
    		{
    			case "button Connection Secure":				
    				fetch("logbutton.php", {
    					method: "POST",
    					headers: {"Accept": "application/json","Content-Type": "application/json"},					
    					body: JSON.stringify( {logbutton: BCShttps} )
    				})
    				.then(commits => logmessages(BCShttps));
    			break;
     
    			case "button Offre De Service":				
    				fetch("logbutton.php", {
    					method: "POST",
    					headers: {"Accept": "application/json","Content-Type": "application/json"},					
    					body: JSON.stringify( {logbutton: ODShttps} )
    				})
    				.then(commits => logmessages(ODShttps));
    			break;
     
    			default:
    		}			
    	}
    	else if (window.location.protocol == "http:")
    	{		
    		switch (id)
    		{
    			case "button Connection Secure":
    				fetch("logbutton.php", {
    					method: "POST",
    					headers: {"Accept": "application/json","Content-Type": "application/json"},					
    					body: JSON.stringify( {logbutton: BCShttp} )
    				})
    				.then(commits => logmessages(BCShttp));				
    			break;
     
    			case "button Offre De Service":				
    				fetch("logbutton.php", {
    					method: "POST",
    					headers: {"Accept": "application/json","Content-Type": "application/json"},					
    					body: JSON.stringify( {logbutton: ODShttp} )
    				})
    				.then(commits => logmessages(ODShttp));				
    			break;
     
    			default:
    		}
    	}
    }

    Voici mon script PHP :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php   
            $button = json_decode(stripslashes(file_get_contents("php://input")), true);    
            if (isset($button))
            {
                    header("Expires: 0");
                    header("Cache-Control: no-cache");      
                    header("Pragma: no-cache");     
                    $file_log=fopen("1234/logbutton.txt", "a+");        
                    if($file_log == false) die("La création du fichier a échoué");
                    $date_log = date("d/m/Y H:i:s");        
                    $log = "Log Button --> " .$button["logbutton"]. " " .$date_log."\r\n"
                    fwrite($file_log, $log);
                    fclose($file_log);
            }
            exit();
    ?>

    Si quelqu'un a une idée

    Cordialement

  5. #5
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 581
    Par défaut
    Quel est le soucis?
    Si tes variables sont en post utilise $_POST plutôt que file_get_content!

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 11
    Par défaut
    Le problème est dans firefox. J'ai un bouton qui ne marche pas, je ne sais pas pourquoi. Tout marche avec chrome, les deux boutons. Dans la desciption "les boutons" j'ai noté en majuscule le bouton qui ne marche pas.

    Le code dans javascript fetch marche trés bien avec chrome, et firefox j'ai 1 bouton sur 2 qui marche, sachant que j'ai le même code javascript fetch pour les deux boutons.

    Mystère. :-/

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/12/2018, 02h13
  2. [HTML/PHP/AJAX/JAVASCRIPT/XML/TMX/MYSQL/JAVA] Mémoire de traduction
    Par titoff85 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 04/08/2007, 08h20
  3. [AJAX] xml + php / javascript,problèmes de compréhension
    Par AsQuel dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/11/2006, 22h25
  4. [AJAX] Communication PHP ~ JavaScript
    Par TheBaeK1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/05/2006, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo