Aller au contenu
charline

Calculateur par checkbox

Noter ce sujet :

Recommended Posts

Bonjour à touts et toutes.


Je suis une vraie débutante et je n'arrive pas à résoudre un problème qui doit être tout simple.

icon_redface.gif

J'aimerai faire fonctionner un calculateur qui additionne et soustrait en activant ou désactivant des checkbox

 

Ci-dessous, mon script. Il fonctionne bien avec des espaces de texte, mais pas avec les checkbox...?


Merci pour votre aide.

 

Charline



###########


<script language="JavaScript" type="text/javascript">


<!--



/* This script is Copyright (c) Paul McFedries and

 

Logophilia Limited (http://www.mcfedries.com/).


Permission is granted to use this script as long as

 

this Copyright notice remains in place.*/



function CalculateTotal(frm) {


var order_total = 0



// Run through all the form fields


for (var i=0; i < frm.elements.length; ++i) {



// Get the current field


form_field = frm.elements[i]



// Get the field's name


form_name = form_field.name



// Is it a "product" field?


if (form_name.substring(0,4) == "PROD") {



// If so, extract the price from the name


item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))



// Get the quantity


item_quantity = parseInt(form_field.value)



// Update the order total


if (item_quantity >= 0) {


order_total += item_quantity * item_price


}


}


}



// Display the total rounded to two decimal places


document.getElementById("order_total").firstChild.data = "CHF" + round_decimals(order_total, 2)


}



function round_decimals(original_number, decimals) {


var result1 = original_number * Math.pow(10, decimals)


var result2 = Math.round(result1)


var result3 = result2 / Math.pow(10, decimals)


return pad_with_zeros(result3, decimals)


}



function pad_with_zeros(rounded_value, decimal_places) {



// Convert the number to a string


var value_string = rounded_value.toString()



// Locate the decimal point


var decimal_location = value_string.indexOf(".")



// Is there a decimal point?


if (decimal_location == -1) {



// If no, then all decimal places will be padded with 0s


decimal_part_length = 0



// If decimal_places is greater than zero, tack on a decimal point


value_string += decimal_places > 0 ? "." : ""


}


else {



// If yes, then only the extra decimal places will be padded with 0s


decimal_part_length = value_string.length - decimal_location - 1


}



// Calculate the number of decimal places that need to be padded with 0s


var pad_total = decimal_places - decimal_part_length



if (pad_total > 0) {



// Pad the string with 0s


for (var counter = 1; counter <= pad_total; counter++)

 

value_string += "0"


}


return value_string


}



function totalcheckbox() {


document.checkbox.TOTAL.value = ''; //I set the value of all the checkboxes equal to nothing


var total = 0;


//For loop iterates through all the checkboxes. ++ adds one each time to i.


for (i=0;i<document.checkbox.select.length;i++) {


if (document.checkbox.select[i].checked) {


total = total + parseInt(document.checkbox.select[i].value); //take whatever they selected and make it into an integer


}


}


document.checkbox.TOTAL.value = total; //total value box equal to the sum


}


//-->


</script><script language="JavaScript" type="text/javascript">


<!--



/* This script is Copyright (c) Paul McFedries and

 

Logophilia Limited (http://www.mcfedries.com/).


Permission is granted to use this script as long as

 

this Copyright notice remains in place.*/



function CalculateTotal(frm) {


var order_total = 0



// Run through all the form fields


for (var i=0; i < frm.elements.length; ++i) {



// Get the current field


form_field = frm.elements[i]



// Get the field's name


form_name = form_field.name



// Is it a "product" field?


if (form_name.substring(0,4) == "PROD") {



// If so, extract the price from the name


item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))



// Get the quantity


item_quantity = parseInt(form_field.value)



// Update the order total


if (item_quantity >= 0) {


order_total += item_quantity * item_price


}


}


}



// Display the total rounded to two decimal places


document.getElementById("order_total").firstChild.data = "CHF" + round_decimals(order_total, 2)


}



function round_decimals(original_number, decimals) {


var result1 = original_number * Math.pow(10, decimals)


var result2 = Math.round(result1)


var result3 = result2 / Math.pow(10, decimals)


return pad_with_zeros(result3, decimals)


}



function pad_with_zeros(rounded_value, decimal_places) {



// Convert the number to a string


var value_string = rounded_value.toString()



// Locate the decimal point


var decimal_location = value_string.indexOf(".")



// Is there a decimal point?


if (decimal_location == -1) {



// If no, then all decimal places will be padded with 0s


decimal_part_length = 0



// If decimal_places is greater than zero, tack on a decimal point


value_string += decimal_places > 0 ? "." : ""


}


else {



// If yes, then only the extra decimal places will be padded with 0s


decimal_part_length = value_string.length - decimal_location - 1


}



// Calculate the number of decimal places that need to be padded with 0s


var pad_total = decimal_places - decimal_part_length



if (pad_total > 0) {



// Pad the string with 0s


for (var counter = 1; counter <= pad_total; counter++)

 

value_string += "0"


}


return value_string


}



function totalcheckbox() {


document.checkbox.TOTAL.value = ''; //I set the value of all the checkboxes equal to nothing


var total = 0;


//For loop iterates through all the checkboxes. ++ adds one each time to i.


for (i=0;i<document.checkbox.select.length;i++) {


if (document.checkbox.select[i].checked) {


total = total + parseInt(document.checkbox.select[i].value); //take whatever they selected and make it into an integer


}


}


document.checkbox.TOTAL.value = total; //total value box equal to the sum


}


//-->


</script>


<form action="" class="freemailform" method="post">


<p><span style="font-size:smaller;">Veuillez vous assurer de fournir une adresse email valide, afin que nous puissions vous répondre dans les meilleures conditions.</span></p>



<table align="left" height="526" width="63%">


<tbody>


<tr>


<td class="left" height="22" style="display:none" valign="middle" width="216"><span>subject:</span></td>


<td height="22" width="0"><input class="input text" name="subject" size="30" style="display:none" type="text" value="Demande offre" /></td>


</tr>


<tr>


<td class="left" height="35" valign="middle" width="216"> </td>


<td height="35"> </td>


</tr>


<tr>


<td bgcolor="#c0c0c0" class="left" width="216"><b>Quantité</b></td>


<td bgcolor="#c0c0c0"><b>Désignation</b></td>


<td bgcolor="#c0c0c0" style="text-align: right;"><b>Prix par pièces</b></td>


</tr>


<tr>


<td align="left" height="30" valign="middle" width="216"><input name="PROD_1_1" onselect="CalculateTotal(this.form)" type="checkbox" value="10.00" /></td>


<td height="30" valign="middle">Choice 1</td>


<td align="RIGHT" height="30" valign="middle">10.00</td>


</tr>


<tr>


<td align="left" height="30" valign="middle" width="216"><input name="PROD_2_1" onselect="CalculateTotal(this.form)" type="checkbox" value="20.00" /></td>


<td height="30" valign="middle">Choice 2</td>


<td align="RIGHT" height="30" valign="middle">20.00</td>


</tr>


<tr>


<td height="36" valign="middle" width="216"> </td>


<td height="36" valign="middle">


<p align="right"><b>TOTAL</b></p>


</td>


<td height="36" valign="middle">


<p align="right"><span id="order_total" style="text-align: right; font-weight: 700;">CHF 0.00</span></p>


</td>


</tr>


<tr>


<td class="left" height="22" valign="middle" width="216"><span>Nom:</span></td>


<td height="22"><input class="input text" name="Nom" size="35" type="text" /></td>


</tr>


<tr>


<td class="left" height="22" valign="middle" width="216">Prénom:</td>


<td height="22"><input class="input text" name="Prenom" size="35" type="text" /></td>


</tr>


<tr>


<td class="left" height="22" valign="middle" width="216"><span>Adresse email:</span></td>


<td height="22"><input class="input text" name="email" size="35" type="text" value="" /></td>


</tr>


<tr>


<td class="left" height="22" valign="middle" width="216">Date d'arrivée<span style="font-size:smaller;">:   (jj/mm/aaaa</span>)</td>


<td height="22"><font color="#000000" face="Verdana" size="3"><select name="Date_Arrivee_jour" size="1"><option value="0">0</option><option value="1">1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select><select name="Date_Arrivee_mois" size="1"><option selected="selected">0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option></select><select name="Date_Arrivee_Annee" size="1"><option selected="selected" value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option></select></font></td>


</tr>


<tr>


<td class="left" height="22" valign="middle" width="216">Nombre de personnes:</td>


<td height="22"><font color="#000000" face="Verdana" size="3"><select name="Nombre_personnes" size="1"><option selected="selected">0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option></select></font></td>


</tr>


<tr>


<td class="left" height="64" valign="middle" width="216"><span>Informations supplémentaires:  </span></td>


<td height="64">


<p><textarea cols="20" name="message" rows="5" style="width: 310px; height: 64px;"></textarea></p>


</td>


</tr>


<tr>


<td class="left" height="19" width="216"> </td>


<td height="19">[CAPTCHA]</td>


</tr>


<tr>


<td class="left" height="26" width="216"> </td>


<td height="26"><input name="fmf_nonce" type="hidden" value="[NONCE]" /><input name="cmd" type="hidden" value="send_fmf" /><span><input class="submit" name="aaa" type="submit" value="Envoyer le message" /></span></td>


</tr>


</tbody>


</table>



<p> </p>


<input name="verified" type="hidden" value="b9958a5d82" /> <input name="verified" type="hidden" value="b9958a5d82" /> </form>

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour Charline,

 

Je vois que la source de ton script a été dupliquée... du moins les premières fonctions.

La mise en page un peu brouillonne et non formatée ne donne pas vraiment envie de se plonger dans ce code. :(

 

En voici une version nettoyée et formatée pour ceux qui se sentent le courage de s'y plonger.

Au premier coup d'oeil, il manque des "value=..." à la liste des <option> ....
 

<script language="JavaScript" type="text/javascript">
    <!--


    /* This script is Copyright (c) Paul McFedries and
    Logophilia Limited (http://www.mcfedries.com/).
    Permission is granted to use this script as long as
    this Copyright notice remains in place.*/

    function CalculateTotal(frm) {
        var order_total = 0

        // Run through all the form fields
        for (var i = 0; i < frm.elements.length; ++i) {

            // Get the current field
            form_field = frm.elements[i]

            // Get the field's name
            form_name = form_field.name

            // Is it a "product" field?
            if (form_name.substring(0, 4) == "PROD") {

                // If so, extract the price from the name
                item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))

                // Get the quantity
                item_quantity = parseInt(form_field.value)

                // Update the order total
                if (item_quantity >= 0) {
                    order_total += item_quantity * item_price
                }
            }
        }

        // Display the total rounded to two decimal places
        document.getElementById("order_total").firstChild.data = "CHF" + round_decimals(order_total, 2)
    }

    function round_decimals(original_number, decimals) {
        var result1 = original_number * Math.pow(10, decimals)
        var result2 = Math.round(result1)
        var result3 = result2 / Math.pow(10, decimals)
        return pad_with_zeros(result3, decimals)
    }

    function pad_with_zeros(rounded_value, decimal_places) {
        // Convert the number to a string
        var value_string = rounded_value.toString()
        
        // Locate the decimal point
        var decimal_location = value_string.indexOf(".")

        // Is there a decimal point?
        if (decimal_location == -1) {
            // If no, then all decimal places will be padded with 0s
            decimal_part_length = 0

            // If decimal_places is greater than zero, tack on a decimal point
            value_string += decimal_places > 0 ? "." : ""
        } else {

            // If yes, then only the extra decimal places will be padded with 0s
            decimal_part_length = value_string.length - decimal_location - 1
        }

        // Calculate the number of decimal places that need to be padded with 0s
        var pad_total = decimal_places - decimal_part_length

        if (pad_total > 0) {
            // Pad the string with 0s
            for (var counter = 1; counter <= pad_total; counter++)
                value_string += "0"
        }
        return value_string
    }

    function totalcheckbox() {
        document.checkbox.TOTAL.value = ''; //I set the value of all the checkboxes equal to nothing
        var total = 0;
        //For loop iterates through all the checkboxes. ++ adds one each time to i.
        for (i = 0; i < document.checkbox.select.length; i++) {
            if (document.checkbox.select[i].checked) {
                total = total + parseInt(document.checkbox.select[i].value); //take whatever they selected and make it into an integer
            }
        }

        document.checkbox.TOTAL.value = total; //total value box equal to the sum
    }
    //-->
</script>

<form action="" class="freemailform" method="post">
    <p><span style="font-size:smaller;">Veuillez vous assurer de fournir une adresse email valide, afin que nous puissions vous répondre dans les meilleures conditions.</span>
    </p>
    <table align="left" height="526" width="63%">
        <tbody>
            <tr>
                <td class="left" height="22" style="display:none" valign="middle" width="216"><span>subject:</span>
                </td>
                <td height="22" width="0">
                    <input class="input text" name="subject" size="30" style="display:none" type="text" value="Demande offre" />
                </td>
            </tr>
            <tr>
                <td class="left" height="35" valign="middle" width="216"> </td>
                <td height="35"> </td>
            </tr>
            <tr>
                <td bgcolor="#c0c0c0" class="left" width="216"><b>Quantité</b>
                </td>
                <td bgcolor="#c0c0c0"><b>Désignation</b>
                </td>
                <td bgcolor="#c0c0c0" style="text-align: right;"><b>Prix par pièces</b>
                </td>
            </tr>
            <tr>
                <td align="left" height="30" valign="middle" width="216">
                    <input name="PROD_1_1" onselect="CalculateTotal(this.form)" type="checkbox" value="10.00" />
                </td>
                <td height="30" valign="middle">Choice 1</td>
                <td align="RIGHT" height="30" valign="middle">10.00</td>
            </tr>
            <tr>
                <td align="left" height="30" valign="middle" width="216">
                    <input name="PROD_2_1" onselect="CalculateTotal(this.form)" type="checkbox" value="20.00" />
                </td>
                <td height="30" valign="middle">Choice 2</td>
                <td align="RIGHT" height="30" valign="middle">20.00</td>
            </tr>
            <tr>
                <td height="36" valign="middle" width="216"> </td>
                <td height="36" valign="middle">
                    <p align="right"><b>TOTAL</b>
                    </p>
                </td>
                <td height="36" valign="middle">
                    <p align="right"><span id="order_total" style="text-align: right; font-weight: 700;">CHF 0.00</span>
                    </p>
                </td>
            </tr>
            <tr>
                <td class="left" height="22" valign="middle" width="216"><span>Nom:</span>
                </td>
                <td height="22">
                    <input class="input text" name="Nom" size="35" type="text" />
                </td>
            </tr>
            <tr>
                <td class="left" height="22" valign="middle" width="216">Prénom:</td>
                <td height="22">
                    <input class="input text" name="Prenom" size="35" type="text" />
                </td>
            </tr>
            <tr>
                <td class="left" height="22" valign="middle" width="216"><span>Adresse email:</span>
                </td>
                <td height="22">
                    <input class="input text" name="email" size="35" type="text" value="" />
                </td>
            </tr>
            <tr>
                <td class="left" height="22" valign="middle" width="216">Date d'arrivée<span style="font-size:smaller;">:   (jj/mm/aaaa</span>)</td>
                <td height="22"><font color="#000000" face="Verdana" size="3">
                  <select name="Date_Arrivee_jour" size="1">
                    <option value="0">0</option>
                    <option value="1">1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                    <option>11</option>
                    <option>12</option><
                    <option>13</option>
                    <option>14</option>
                    <option>15</option>
                    <option>16</option>
                    <option>17</option>
                    <option>18</option>
                    <option>19</option>
                    <option>20</option>
                    <option>21</option>
                    <option>22</option>
                    <option>23</option>
                    <option>24</option>
                    <option>25</option>
                    <option>26</option>
                    <option>27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                 </select>
                 <select name="Date_Arrivee_mois" size="1">
                    <option selected="selected">0</option>
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                    <option>10</option>
                    <option>11</option>
                    <option>12</option>
                 </select>
                 <select name="Date_Arrivee_Annee" size="1">
                    <option selected="selected" value="2016">2016</option>
                    <option value="2017">2017</option>
                    <option value="2018">2018</option>
                 </select>
               </font>
               </td>
            </tr>
            <tr>
                <td class="left" height="22" valign="middle" width="216">Nombre de personnes:</td>
                <td height="22">
                  <font color="#000000" face="Verdana" size="3">
                    <select name="Nombre_personnes" size="1">
                      <option selected="selected">0</option>
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                    </select>
                  </font>
                </td>
            </tr>
            <tr>
                <td class="left" height="64" valign="middle" width="216"><span>Informations supplémentaires:  </span>
                </td>
                <td height="64">
                    <p>
                        <textarea cols="20" name="message" rows="5" style="width: 310px; height: 64px;"></textarea>
                    </p>
                </td>
            </tr>
            <tr>
                <td class="left" height="19" width="216"> </td>
                <td height="19">[CAPTCHA]</td>
            </tr>
            <tr>
                <td class="left" height="26" width="216"> </td>
                <td height="26">
                    <input name="fmf_nonce" type="hidden" value="[NONCE]" />
                    <input name="cmd" type="hidden" value="send_fmf" /><span><input class="submit" name="aaa" type="submit" value="Envoyer le message" /></span>
                </td>
            </tr>
        </tbody>
    </table>
    <p> </p>
    <input name="verified" type="hidden" value="b9958a5d82" />
</form>

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par fredxhaflaire
      Bonjour
       
      j'ai téléchargé sur le web un script de dédicace il est assez complet juste il manque d'une administration c'est-à-dire que j'aimerais ajouter un bouton Supprimer bloquer l ip ou affiché  le message recu sur mon site j'ai fait un tour sur le web mais je ne trouve pas où je n'y arrive pas du tous a modifier je vous envoie les code ci-dessous du script complet  si possible de m'aider ça me ferait super plaisir merci
       
       
      Config.php
      <?php /*------------------------------------------------- | A MODIFIER | -------------------------------------------------*/ /*Variables pour la connexion a la base de donnée */ $host = ""; //L'adresse du serveur MySql $username_sql = ""; //Le nom d'utilisateur $password_sql = ""; //Le mot de passe $nom_bd_sql = "radiobe2_site"; //Le nom de la base de donnée (Database) /*Variables pour le systeme de dédicace*/ $nombre_limiter_pseudo_mini = '3'; //nombre minimum de caractere pour le pseudo $nombre_limiter_pseudo_maxi = '103'; //nombre maximum de caractere pour le pseudo $nombre_limiter_message_mini = '2'; //nombre minimum de caractere pour le message $nombre_limiter_message_maxi = '40000'; //nombre maximum de caractere pour le message $tempsantiflood = '30'; //Nombre de secondes entre chaque message pour l'antiflood /*------------------------------------------------- | ! NE PAS MODIFIER ! | -------------------------------------------------*/ session_start(); mysql_connect($host, $username_sql, $password_sql) or die('Impossible de se connecter au serveur '.$host.'. veuillez verifier votre configuration'); mysql_select_db($nom_bd_sql) or die('Impossible de se connecter a la base de donnée '.$nom_bd_sql.''); ?> Lire.php
      <center> <?php include ('config.php'); //A inserer sur chaques pages d'envoie et d'affichage des dédicaces include ('envoi.php'); //A insérer seulement sur la page d'envoie des dédicaces ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Lire message - radio</title> <style type="text/css"> h1 { font-size: 26px; color: #333; text-align:center; } h2 { font-size: 22px; color: #69F; text-align:center; } h3 { font-size: 18px; color: #333; } p{ display:inline; } .titre { font-weight: bold; color: #69F; } .pseudo { font-weight: bold; color: #69F; } .dedicace { font-style: italic; margin-right: 30px; } .err { color:#F00; font-weight: bolder; } .ok { color:#0C3; font-weight: bolder; } </style> </head> </center> <marquee width=1240 height=32 direction=left> <?php /*On cherche les 10 dernière dédicaces dans la base de donnée*/ $retour_dedi = mysql_query('SELECT * FROM message ORDER BY id DESC limit 0,10')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'message'</b> ")); while($donnes_dedi = mysql_fetch_array($retour_dedi))//On fais une boucle { $pseudo_dedicace = htmlspecialchars($donnes_dedi['pseudo']); //On récupère le pseudo $message_dedicace = htmlspecialchars($donnes_dedi['message']); // On récupère la dédicace echo '<p class="pseudo">'.$pseudo_dedicace.'</p> <p class="dedicace">'.$message_dedicace.'</p>'; //On affiche la dédicace } ?> </marquee> <br /><br /><br /> Envoi.php
      <?php // Si l'auditeur à cliquer sur envoyer if (isset($_POST['envoyer_dedi'])) { $pseudo_post = mysql_real_escape_string($_POST['pseudo_poster']); //On récupère le pseudo $message_post = mysql_real_escape_string($_POST['message_poster']); // on récupère le message // Si l'auditeur n'a pas mis de pseudo if ($_POST['pseudo_poster']==null) { echo "<p class='err'>Vous n'avez pas renseigné de pseudo</p><br />"; } // Si l'auditeur n'a pas mis de message else if ($_POST['message_poster']==null) { echo "<p class='err'>Vous n'avez pas renseigné de message</p><br />"; } //Si l'auditeur à renseigner le pseudo + le message else if ($_POST['pseudo_poster']!=null && $_POST['message_poster']!=null) { // Si le pseudo est plus grand ou plus petit que les limites mis dans config.php if(strlen($pseudo_post) < $nombre_limiter_pseudo_mini || strlen($pseudo_post) > $nombre_limiter_pseudo_maxi) { echo "<p class='err'>Votre pseudo doit être compris entre ".$nombre_limiter_pseudo_mini." et ".$nombre_limiter_pseudo_maxi." caractères</p><br />"; } // Si le message est plus grand ou plus petit que les limites mis dans config.php else if(strlen($message_post) < $nombre_limiter_message_mini || strlen($message_post) > $nombre_limiter_message_maxi) { echo "<p class='err'>Votre message doit être compris entre ".$nombre_limiter_message_mini." et ".$nombre_limiter_message_maxi." caractères</p><br />"; } // Si il n'y a pas d'erreurs else { //On calcul de temps d'envoie entre l'ancienne dédicace (antiflood) $tempsrestant = time() - $_SESSION['time']; $tempsatt = $tempsantiflood-$tempsrestant; //Si le temps est inférieur à la limite d'antiflood du config.php if($_SESSION['time']!=null && $tempsrestant < $tempsantiflood) { echo "<p class='err'>Veuillez attendre ".$tempsatt." secondes <br />avant d'envoyer un nouveau message</p><br />"; } //Si le temps est supérieur à la limite d'antiflood else { $ip = $_SERVER['REMOTE_ADDR']; // On récupère l'ip $date = 'le : '.date('d/m/Y').' a '.date('H:i').''; //On récupère la date //On insère les infos dans la base MySql mysql_query("INSERT INTO message(pseudo, message, ip, date) VALUES('".$pseudo_post."', '".$message_post."', '".$ip."', '".$date."')")or die(mysql_error("Impossible d'envoyer les données dans la base de donnée!")); //On met le message comme quoi la dédicace à bien été envoyé echo "<p class='ok'>Votre message à bien été envoyé !.</p><br />"; $_SESSION['time'] = time();//On récupère l'heure à la quel le message à été envoyé $pseudo_post = ""; $message_post = ""; } } } } ?>  
      Admin.php
      <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Admin - radio</title> <style type="text/css"> h1 { font-size: 26px; color: #333; text-align:center; } h2 { font-size: 22px; color: #69F; text-align:center; } h3 { font-size: 18px; color: #333; } p{ display:inline; } .titre { font-weight: bold; color: #69F; } .pseudo { font-weight: bold; color: #69F; } .dedicace { font-style: italic; margin-right: 30px; } .err { color:#F00; font-weight: bolder; } .ok { color:#0C3; font-weight: bolder; } </style> </head> <center> <?php include ('config.php'); //A inserer sur chaques pages d'envoie et d'affichage des dédicaces include ('envoi.php'); //A insérer seulement sur la page d'envoie des dédicaces ?> <center> <!--Formulaire d'envoie de la dédicace--> <h3>Envoi un message</h3> <form method="post" action="#"> <p>Pseudo</p><br /><input type="text" maxlength="20" name="pseudo_poster" <?php echo 'value="'.$pseudo_post.'"';?> /><br/><br/> <p>Message</p><br /><textarea cols="30" rows="5" name="message_poster"><?php echo $message_post;?></textarea><br/><br/> <input type="submit" name="envoyer_dedi" value="envoyer" /> </form> <center> <h3>Message reçu</h3> <table width="900" border="1"> <tr> <td width="150" align="center"> Pseudo / IP </td> <td align="center"> Message / Date </td> </tr> <?php /*On cherche les 20 dernière dédicaces dans la base de donnée*/ $retour_dedi = mysql_query('SELECT * FROM message ORDER BY id DESC limit 0,20')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'message'</b> ")); while($donnes_dedi = mysql_fetch_array($retour_dedi))//On fais une boucle { $pseudo_dedicace = htmlspecialchars($donnes_dedi['pseudo']); //On récupère le pseudo $message_dedicace = htmlspecialchars($donnes_dedi['message']); // On récupère la dédicace $date_dedicace = htmlspecialchars($donnes_dedi['date']); //On récupère la date d'envoie $ip_dedicace = htmlspecialchars($donnes_dedi['ip']); // On récupère l'ip echo ' <tr> <td width="150"> <p class="pseudo">'.$pseudo_dedicace.'</p><br /><br /><p><i>'.$ip_dedicace.'</i></p> </td> <td> <p class="dedicace">'.$message_dedicace.'</p><br /><br /><p>=> Envoyé '.$date_dedicace.'</p> </td> </tr>'; //On affiche la dédicace } ?> </table> </body> </html>  
      SQL
      -- phpMyAdmin SQL Dump -- version 4.7.3 -- https://www.phpmyadmin.net/ -- -- Hôte : localhost:3306 -- Généré le : mer. 06 déc. 2017 à 20:03 -- Version du serveur : 10.1.24-MariaDB-cll-lve -- Version de PHP : 5.6.30 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de données : `radiobe2_site` -- -- -------------------------------------------------------- -- -- Structure de la table `message` -- CREATE TABLE `message` ( `valide_stat` int(11) NOT NULL, `id` int(11) NOT NULL, `pseudo` text NOT NULL, `message` text NOT NULL, `ip` text NOT NULL, `date` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Déchargement des données de la table `message` -- INSERT INTO `message` (`valide_stat`, `id`, `pseudo`, `message`, `ip`, `date`) VALUES (0, 14, 'Fred', 'Bienvenue ', '1', 'le : 11/11/2017 a 20:55'); -- -- Index pour les tables déchargées -- -- -- Index pour la table `message` -- ALTER TABLE `message` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT pour les tables déchargées -- -- -- AUTO_INCREMENT pour la table `message` -- ALTER TABLE `message` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=33;COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    • Par rogertafo
      bonjour tous,
      je sus roger et je m’apprête a mettre sur pied un site d'offre d'emploi et de petite annonces
      j'ai besoin d'un script (agrégateur) qui me permettra de copier les offre des autres site pour publier sur mon site
       
      merci
      Cordialement
    • Par Théophraste
      Coucou, je gère quelques sites scientifiques associatifs qui s'autofinancent grâce à l'affichage de sponsors et d'un peu d'adsence, j'ai découvert il y a qq semaine le service anti adblock de http://adunblock.com/



      Je cite :






      Pour info, çà marche bien chez moi, sur un wiki, sur un joomla (il y a un plugin), sur un forum IPB (plugin), j'ai les stats des pages vues avec bloqueur de pub (Adblock et autres), et la possiblité d'afficher une bannière pédagogique sensibilisant les utilisateurs de bloqueur au fait que le site visité à besoin de cela pour exister. Il aide à convaincre les internautes de désactiver leur bloqueur de publicité et à récupérer des statistiques.



      J'ai tous les jours des désactivations de bloqueur depuis plusieurs semaines.



      Il y a aussi un plugin wordpress.



      Ce qui est sympa, c'est que c'est simple à utiliser, il existe par exemple le script anti adblock http://antiblock.org/, fait par des allemands, cela semble très efficace, tout est à mettre sur votre site, c'est plus compliquer à installer, adunblock est un service service SaaS (gratuit pour les options dispo à ce jour), çà prend qq minutes à mettre en place.



      A terme, il sera possible d'afficher au choix soit tjs la bannière pédagogique, soit un pop up pleine page, pour ceux qui souhaitent décourager la visite de leur site aux utilisateurs de bloqueurs de pubs.



      Bloquer adblock, cela peut être un choix pour un webmaster .

×