AnonSec Team
Server IP : 10.106.20.4  /  Your IP : 216.73.216.140
Web Server : Apache
System : Linux webm004.cluster106.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : sylvaineey ( 605664)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/sylvaineey/cosmo-qg_1/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/sylvaineey/cosmo-qg_1/cosmoqg.php_1
<?php

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );

/**
 * @package Cosmo_Qg
 */
/*
  Plugin Name: cosmo_qg
  Plugin URI: http://www.cosmospace.com
  Description: gestion de la QG
  Version: 1.0.0
  Author: cosmospace
  Author URI: http://www.cosmospace.com/
 */

function cosmoqg_install() {
  global $wpdb;
  $table_name = $wpdb->prefix . "questions";

  $sql = "
    CREATE TABLE $table_name (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `nom` varchar(50) NOT NULL,
      `prenom` varchar(50) NOT NULL,
      `date_naissance` date NOT NULL DEFAULT '0000-00-00',
      `sexe` varchar(1) NOT NULL,
      `prefixe` varchar(3) DEFAULT NULL,
      `email` varchar(100) NOT NULL,
      `telephone` varchar(13) DEFAULT NULL,
      `date_reception` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `question` text NOT NULL,
      `chiffre` varchar(20) DEFAULT NULL,
      `site` int(11) DEFAULT NULL,
      `pays` varchar(50) DEFAULT NULL,
      `theme` varchar(50) DEFAULT NULL,
      `tirage` varchar(50) DEFAULT NULL,
      `is_traiter` tinyint(1) DEFAULT '0',
      `provenance` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    );
";

  dbDelta($sql);
  add_option("cosmoqg_db_version", "1.0");
}

register_activation_hook(__FILE__, 'cosmoqg_install');

class cosmo_qgratuite {

  public $optionPlugin = 'cosmo_qgOptions';
  protected $optionsQg = array(
      'url_ws_qg' => 'http://www.orianna-voyance.com/ws_qgratuite/',
  );

  public function __construct() {
    // Rien pour l’instant
  }

  public function displayPageAdmin() {

    $options = get_option($this->optionPlugin);

    if (isset($_POST['cosmo_qgOptionUpdate'])) {
      if (isset($_POST['websiteid'])) {
        $options['websiteid'] = $_POST['websiteid'];
      }
      update_option($this->optionPlugin, $options);
    }
    // On affiche notre formulaire
    echo '<h2>Paramètres Question gratuite</h2>
        <form method="post" action="' . $_SERVER["REQUEST_URI"] . '">
         <label for="siteId">Id du site pour la QG :</label>
         <p><input type="text" name="websiteid" value="' . $options['websiteid'] . '" /></p>
         <input type="submit" name="cosmo_qgOptionUpdate" value="Mettre à jour" />
      </form>';
  }

  public function getWebsiteId() {
    $options = get_option($this->optionPlugin);
    
    if( isset($options['websiteid']) )
      if( $options['websiteid'] >= 1 )
        return $options['websiteid'];
    
    return 10;
  }

  public function getUrlWsQg() {
    return $this->optionsQg['url_ws_qg'];
  }

}

$cosmo_qgratuite = new cosmo_qgratuite();

function display_page_admin() {
  $cosmo_qgratuite = new cosmo_qgratuite();
  $cosmo_qgratuite->displayPageAdmin();
}

function cosmo_qgratuite_update() {
  add_options_page('Administration', 'cosmoqg', 1, 'cosmoqg', 'display_page_admin');
  //add_options_page('Administration', 'cosmoQgratuite', 9, basename(__FILE__), array($customtext, 'displayPageAdmin'));
}

add_action('admin_menu', 'cosmo_qgratuite_update');

function cosmo_qgratuite() {
  
}

// Initialisation
function cosmo_qgratuite_tinymce_addbuttons() {
  if (!current_user_can('edit_posts') && !current_user_can('edit_pages')) {
    return;
  }
  if (get_user_option('rich_editing') == 'true') {
    add_filter("mce_external_plugins", "cosmo_qgratuite_tinymce_addplugin");
    add_filter('mce_buttons_2', 'cosmo_qgratuite_tinymce_registerbutton');
  }
}

// ajoute les boutons dans TinyMCE
function cosmo_qgratuite_tinymce_registerbutton($buttons) {
  $clef = array_search('charmap', $buttons);
  if (false !== $clef) {
    array_splice($buttons, $clef, 0, "form_qgratuite");
    //die(print_r($buttons, true));
  }
  return $buttons;
}

// Ajoute le plugin dans TinyMCE
function cosmo_qgratuite_tinymce_addplugin($plugin_array) {
  $plugin_array['cosmoQgratuite'] = plugins_url('cosmo-qg/cosmo-qgratuite-plugin.js');
  return $plugin_array;
}

function render_form_qgratuite($atts, $content = null) {
  global $wpdb;
  $cosmo_qgratuite = new cosmo_qgratuite();
  $error = "";
  if (isset($_POST['qgratuite'])) {
    //die(print_r($_POST,true));
    if ($_POST['qgratuite']['firstname'] 
            && $_POST['qgratuite']['lastname'] 
            && preg_match('/^((0[1-79][0-9]{8})|(00[0-9]{7}[0-9]+))$/', $_POST['qgratuite']['phone_number']) 
            && preg_match('/^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+[a-zA-Z]{2,4}$/', $_POST['qgratuite']['email'])
        ) {
      
      $email = explode('@', $_POST['qgratuite']['email']);
      $birthday = \DateTime::createFromFormat('d/m/Y', $_POST['qgratuite']['birthday']);
      $dateJour = new \DateTime();
      $interval  = $dateJour->diff($birthday);   
      
      if (!checkdnsrr($email[1]) || $birthday->format('d/m/Y') != $_POST['qgratuite']['birthday']) {
        $error = "La question n'a pas été envoyée. Vérifier les données fournis (email, date de naissance...) et essayer à nouveau.";
      }
      elseif ($interval->format('%y') < 18 )
      {
        $error = "Il y a eu une erreur à l'anvoi de votre question: vous devez avoir plus de 18 ans.";
      }
      else
      {
        $post_data = array(
            "action" => "addQuestion",
            "token" => md5($_POST['qgratuite']['email']."cosmoqgratuite".$_POST['qgratuite']['firstname']), // Permet de contourner le check par IP du serveur QG, car les ips des micro sites changent...
            "question" => array(
                "firstname" => $_POST['qgratuite']['firstname'],
                "lastname" => $_POST['qgratuite']['lastname'],
                "sexe" => $_POST['qgratuite']['sexe'],
                "phone_number" => $_POST['qgratuite']['phone_number'],
                "pays" => $_POST['qgratuite']['pays'],
                "question" => $_POST['qgratuite']['message'],
                "email" => $_POST['qgratuite']['email'],
                "birthday" => $birthday->format('Y-m-d'),
                "site" => $cosmo_qgratuite->getWebsiteId()
            )
        );
        
        
        $table_name = $wpdb->prefix . "questions";
        $wpdb->insert( $table_name, array( 
                                  'prenom' => "{$_POST['qgratuite']['firstname']}", 
                                  'nom' => "{$_POST['qgratuite']['lastname']}",
                                  'sexe' => "{$_POST['qgratuite']['sexe']}",
                                  'telephone' => "{$_POST['qgratuite']['phone_number']}",
                                  'date_reception' => date("Y-m-d H:i:s"),
                                  'question' => "{$_POST['qgratuite']['message']}",
                                  'site' => $cosmo_qgratuite->getWebsiteId(),
                                  'question' => "{$_POST['qgratuite']['message']}",
                                  'date_naissance' => "{$birthday->format('Y-m-d')}",
                                  ));

//        //Écrit le résultat dans le fichier
//        $file = dirname(__FILE__) . '/csv/mail_' . date("Y_M") . '.csv';
//        $fp = fopen($file, 'a');
//        fputcsv($fp, array(date('d/M/Y H:i:s'), $_POST['qgratuite']['email'], $_POST['qgratuite']['phone_number'], $_POST['qgratuite']['firstname'], $_POST['qgratuite']['lastname'], $_POST['qgratuite']['message']));
//        fclose($fp);

        //return "<div>Votre question a bien été envoyée. Vous bénéficierez d'une réponse dans les 24h.</div>";
        /* post contact */
        $retourWs = http_post($cosmo_qgratuite->getUrlWsQg(), $post_data);

        $json = json_decode($retourWs);

        if ($json->error) {
          $error = "Une erreur s'est produite lors de l'envoie";
        } else {
          return "<div>Votre question a bien été envoyée. Vous bénéficierez d'une réponse dans les 24h.</div>";
        }
      }
    } else {
      $error = "Veuillez vérifier les informations saisies dans le formulaires";
    }
  }

  return <<<EOF
    
    <form method="POST" class="qgratuite-form" id="formQgGratis">
  
    <div class="error">$error</div>
         <div class="formulaire">
          <div class="form-field">
            <label for="qgratuite_sexe" class="required label">Vous êtes : *</label>
            <select id="qgratuite_sexe" name="qgratuite[sexe]" required="required" class="validate[required] input-large"><option value="">Sexe *</option><option value="F">Une femme</option><option value="M">Un homme</option></select>
          </div>
          <div class="form-field">
            <input type="text" id="qgratuite_firstname" name="qgratuite[firstname]" required="required" class="input-large validate[required]" placeholder="Prénom *" />
          </div>
          <div class="form-field">
            <input type="text" id="qgratuite_lastname" name="qgratuite[lastname]" required="required" class="input-large validate[required]" placeholder="Nom *" />
          </div>
            <div class="form-field">
            <input type="text" id="qgratuite_birthday" name="qgratuite[birthday]" required="required" class="input-large validate[required,funcCall[checkValidationDateFr]]" placeholder="Date de naissance *" />
            <p class="format">Format jj/mm/aaaa. Example : 23/06/1980 </p>
            </div>
            <div class="form-field">
            <label for="qgratuite_pays" class="required label">Pays *</label>
            <select id="qgratuite_pays" name="qgratuite[pays]" required="required" class="input-large"><option value="belgique">Belgique</option><option value="france" selected="selected">France</option><option value="luxembourg">Luxembourg</option><option value="suisse">Suisse</option><option disabled="disabled">-------------------</option><option value="afghanistan">Afghanistan</option><option value="afrique du sud">Afrique du Sud</option><option value="albanie">Albanie</option><option value="algérie">Algérie</option><option value="allemagne">Allemagne</option><option value="andorre">Andorre</option><option value="angola">Angola</option><option value="anguilla">Anguilla</option><option value="antarctique">Antarctique</option><option value="antigua-et-barbuda">Antigua-et-Barbuda</option><option value="antilles néerlandaises">Antilles néerlandaises</option><option value="arabie saoudite">Arabie saoudite</option><option value="argentine">Argentine</option><option value="arménie">Arménie</option><option value="aruba">Aruba</option><option value="australie">Australie</option><option value="autriche">Autriche</option><option value="azerbaïdjan">Azerbaïdjan</option><option value="bénin">Bénin</option><option value="bahamas">Bahamas</option><option value="bahreïn">Bahreïn</option><option value="bangladesh">Bangladesh</option><option value="barbade">Barbade</option><option value="belau">Belau</option><option value="belize">Belize</option><option value="bermudes">Bermudes</option><option value="bhoutan">Bhoutan</option><option value="biélorussie">Biélorussie</option><option value="birmanie">Birmanie</option><option value="bolivie">Bolivie</option><option value="bosnie-herzégovine">Bosnie-Herzégovine</option><option value="botswana">Botswana</option><option value="brésil">Brésil</option><option value="brunei">Brunei</option><option value="bulgarie">Bulgarie</option><option value="burkina faso">Burkina Faso</option><option value="burundi">Burundi</option><option value="côte d'ivoire">Côte d'Ivoire</option><option value="cambodge">Cambodge</option><option value="cameroun">Cameroun</option><option value="canada">Canada</option><option value="cap-vert">Cap-Vert</option><option value="chili">Chili</option><option value="chine">Chine</option><option value="chypre">Chypre</option><option value="colombie">Colombie</option><option value="comores">Comores</option><option value="congo">Congo</option><option value="corée du nord">Corée du Nord</option><option value="corée du sud">Corée du Sud</option><option value="costa rica">Costa Rica</option><option value="croatie">Croatie</option><option value="cuba">Cuba</option><option value="danemark">Danemark</option><option value="djibouti">Djibouti</option><option value="dominique">Dominique</option><option value="égypte">Égypte</option><option value="émirats arabes unis">Émirats arabes unis</option><option value="équateur">Équateur</option><option value="érythrée">Érythrée</option><option value="espagne">Espagne</option><option value="estonie">Estonie</option><option value="états-unis">États-Unis</option><option value="éthiopie">Éthiopie</option><option value="finlande">Finlande</option><option value="géorgie">Géorgie</option><option value="gabon">Gabon</option><option value="gambie">Gambie</option><option value="ghana">Ghana</option><option value="gibraltar">Gibraltar</option><option value="grèce">Grèce</option><option value="grenade">Grenade</option><option value="groenland">Groenland</option><option value="guadeloupe">Guadeloupe</option><option value="guam">Guam</option><option value="guatemala">Guatemala</option><option value="guinée">Guinée</option><option value="guinée équatoriale">Guinée équatoriale</option><option value="guinée-bissao">Guinée-Bissao</option><option value="guyana">Guyana</option><option value="guyane française">Guyane française</option><option value="haïti">Haïti</option><option value="honduras">Honduras</option><option value="hong kong">Hong Kong</option><option value="hongrie">Hongrie</option><option value="ile bouvet">Ile Bouvet</option><option value="ile christmas">Ile Christmas</option><option value="ile norfolk">Ile Norfolk</option><option value="iles cayman">Iles Cayman</option><option value="iles cook">Iles Cook</option><option value="iles féroé">Iles Féroé</option><option value="iles falkland">Iles Falkland</option><option value="iles fidji">Iles Fidji</option><option value="iles géorgie du sud et sandwich du sud">Iles Géorgie du Sud et Sandwich du Sud</option><option value="iles heard et mcdonald">Iles Heard et McDonald</option><option value="iles marshall">Iles Marshall</option><option value="iles pitcairn">Iles Pitcairn</option><option value="iles salomon">Iles Salomon</option><option value="iles svalbard et jan mayen">Iles Svalbard et Jan Mayen</option><option value="iles turks-et-caicos">Iles Turks-et-Caicos</option><option value="iles vierges américaines">Iles Vierges américaines</option><option value="iles vierges britanniques">Iles Vierges britanniques</option><option value="iles des cocos (keeling)">Iles des Cocos (Keeling)</option><option value="iles mineures éloignées des états-unis">Iles mineures éloignées des États-Unis</option><option value="inde">Inde</option><option value="indonésie">Indonésie</option><option value="iran">Iran</option><option value="iraq">Iraq</option><option value="irlande">Irlande</option><option value="islande">Islande</option><option value="israël">Israël</option><option value="italie">Italie</option><option value="jamaïque">Jamaïque</option><option value="japon">Japon</option><option value="jordanie">Jordanie</option><option value="kazakhstan">Kazakhstan</option><option value="kenya">Kenya</option><option value="kirghizistan">Kirghizistan</option><option value="kiribati">Kiribati</option><option value="koweït">Koweït</option><option value="laos">Laos</option><option value="lesotho">Lesotho</option><option value="lettonie">Lettonie</option><option value="liban">Liban</option><option value="liberia">Liberia</option><option value="libye">Libye</option><option value="liechtenstein">Liechtenstein</option><option value="lituanie">Lituanie</option><option value="macao">Macao</option><option value="madagascar">Madagascar</option><option value="malaisie">Malaisie</option><option value="malawi">Malawi</option><option value="maldives">Maldives</option><option value="mali">Mali</option><option value="malte">Malte</option><option value="mariannes du nord">Mariannes du Nord</option><option value="maroc">Maroc</option><option value="martinique">Martinique</option><option value="maurice">Maurice</option><option value="mauritanie">Mauritanie</option><option value="mayotte">Mayotte</option><option value="mexique">Mexique</option><option value="micronésie">Micronésie</option><option value="moldavie">Moldavie</option><option value="monaco">Monaco</option><option value="mongolie">Mongolie</option><option value="montserrat">Montserrat</option><option value="mozambique">Mozambique</option><option value="népal">Népal</option><option value="namibie">Namibie</option><option value="nauru">Nauru</option><option value="nicaragua">Nicaragua</option><option value="niger">Niger</option><option value="nigeria">Nigeria</option><option value="nioué">Nioué</option><option value="norvège">Norvège</option><option value="nouvelle-calédonie">Nouvelle-Calédonie</option><option value="nouvelle-zélande">Nouvelle-Zélande</option><option value="oman">Oman</option><option value="ouganda">Ouganda</option><option value="ouzbékistan">Ouzbékistan</option><option value="pérou">Pérou</option><option value="pakistan">Pakistan</option><option value="panama">Panama</option><option value="papouasie-nouvelle-guinée">Papouasie-Nouvelle-Guinée</option><option value="paraguay">Paraguay</option><option value="pays-bas">Pays-Bas</option><option value="philippines">Philippines</option><option value="pologne">Pologne</option><option value="polynésie française">Polynésie française</option><option value="porto rico">Porto Rico</option><option value="portugal">Portugal</option><option value="qatar">Qatar</option><option value="république centrafricaine">République centrafricaine</option><option value="république démocratique du congo">République démocratique du Congo</option><option value="république dominicaine">République dominicaine</option><option value="république tchèque">République tchèque</option><option value="réunion">Réunion</option><option value="roumanie">Roumanie</option><option value="royaume-uni">Royaume-Uni</option><option value="russie">Russie</option><option value="rwanda">Rwanda</option><option value="sénégal">Sénégal</option><option value="sahara occidental">Sahara occidental</option><option value="saint-christophe-et-niévès">Saint-Christophe-et-Niévès</option><option value="saint-marin">Saint-Marin</option><option value="saint-pierre-et-miquelon">Saint-Pierre-et-Miquelon</option><option value="saint-siège ">Saint-Siège </option><option value="saint-vincent-et-les-grenadines">Saint-Vincent-et-les-Grenadines</option><option value="sainte-hélène">Sainte-Hélène</option><option value="sainte-lucie">Sainte-Lucie</option><option value="salvador">Salvador</option><option value="samoa">Samoa</option><option value="samoa américaines">Samoa américaines</option><option value="sao tomé-et-principe">Sao Tomé-et-Principe</option><option value="seychelles">Seychelles</option><option value="sierra leone">Sierra Leone</option><option value="singapour">Singapour</option><option value="slovénie">Slovénie</option><option value="slovaquie">Slovaquie</option><option value="somalie">Somalie</option><option value="soudan">Soudan</option><option value="sri lanka">Sri Lanka</option><option value="suède">Suède</option><option value="suriname">Suriname</option><option value="swaziland">Swaziland</option><option value="syrie">Syrie</option><option value="taïwan">Taïwan</option><option value="tadjikistan">Tadjikistan</option><option value="tanzanie">Tanzanie</option><option value="tchad">Tchad</option><option value="terres australes françaises">Terres australes françaises</option><option value="territoire britannique de l'océan indien">Territoire britannique de l'Océan Indien</option><option value="thaïlande">Thaïlande</option><option value="timor oriental">Timor Oriental</option><option value="togo">Togo</option><option value="tokélaou">Tokélaou</option><option value="tonga">Tonga</option><option value="trinité-et-tobago">Trinité-et-Tobago</option><option value="tunisie">Tunisie</option><option value="turkménistan">Turkménistan</option><option value="turquie">Turquie</option><option value="tuvalu">Tuvalu</option><option value="ukraine">Ukraine</option><option value="uruguay">Uruguay</option><option value="vanuatu">Vanuatu</option><option value="venezuela">Venezuela</option><option value="viêt nam">Viêt Nam</option><option value="wallis-et-futuna">Wallis-et-Futuna</option><option value="yémen">Yémen</option><option value="yougoslavie">Yougoslavie</option><option value="zambie">Zambie</option><option value="zimbabwe">Zimbabwe</option><option value="ex-république yougoslave de macédoine">ex-République yougoslave de Macédoine</option></select>
            </div>
        <div class="form-field">
            <input type="text" id="qgratuite_phone_number" name="qgratuite[phone_number]" required="required" maxlength="15" pattern="((0[1-79][0-9]{8})|(00[0-9]{7}[0-9]+))" class="input-large validate[required,custom[phone2]]" placeholder="Telephone *" />
          </div>
          <div class="form-field">
            <input type="email" id="qgratuite_email" name="qgratuite[email]" required="required" class="input-large validate[required,custom[email]]" placeholder="Email *" />
          </div>
        <div class="align-center qgratuite-form-part2">
          <textarea id="qgratuite_message" name="qgratuite[message]" required="required" placeholder="Votre question"></textarea>
        </div>
        <div class="align-center qgratuite-form-part3">
         <label class="checkbox">
            <input type="checkbox" id="qgratuite_t_and_c" name="qgratuite[t_and_c]" required="required" value="1" class="validate[required]" />
            Je certifie avoir plus de 18 ans et reconnais avoir lu et <br />accepté les conditions générales du site  <span class="luetaccept"><a href="http://www.orianna-voyance.com" target="_blank">www.orianna-voyance.com</a></span>
          </label>
          <br/>
          <label class="checkbox">
            <input type="checkbox" id="qgratuite_rappel" name="qgratuite[rappel]" required="required" value="1" class="validate[required]" />            
		      J'accepte d'être recontacté par la société Cosmospace ou ses partenaires
          </label>
          <br/>
          <div class="zone-btn-qgratuite">
            <button type="submit" class="btn">Envoyer votre question</button>
          </div>
          <div class="asterisque align-center">* Champs obligatoires</div>
        </div>
      </div>
</form>
    

EOF;
}

function render_cosmo_qg_js() {
  return <<<EOF
  <script type="text/javascript">
    jQuery(document).ready(function() {
      jQuery("#formQgGratis").validationEngine();
    });
  </script>
EOF;
}

function http_post($url, $data) {
  $postdata = http_build_query($data);
  $opts = array('http' =>
      array(
          'method'  => 'POST',
          'header'  => 'Content-type: application/x-www-form-urlencoded',
          'content' => $postdata
      )
  );

  $context  = stream_context_create($opts);

  $result = file_get_contents($url, false, $context);
  return $result;
}

if (!is_admin())
  add_action('wp', 'cosmo_qgratuite');

add_shortcode('form_qgratuite', 'render_form_qgratuite');
add_shortcode('cosmo_qg_js', 'render_cosmo_qg_js');
add_action('init', 'cosmo_qgratuite_tinymce_addbuttons');

wp_enqueue_script('jquery');
wp_enqueue_script('placeholder', plugins_url('cosmo-qg/js/placeholders.min.js'));
wp_enqueue_script('jquery-validationEngine', plugins_url('cosmo-qg/js/jquery.validationEngine.js'));
wp_enqueue_script('jquery-validationEngine-es', plugins_url('cosmo-qg/js/jquery.validationEngine-es.js'));
wp_enqueue_style('validationEngine-stylesheet', plugins_url('cosmo-qg/css/validationEngine.jquery.min.css'));
//wp_enqueue_style('formulaire-stylesheet', plugins_url('cosmo-qg/css/formualaire.css'));
wp_enqueue_style('formulaire-stylesheet', plugins_url('cosmo-qg/stylesheet.css'));

AnonSec - 2021