Commit 00fd654f authored by Pierre's avatar Pierre

ajax + de vérifs dns cloud ...

parent d7ff9463
<a href="#" id="bouton_bureau" class="dropdown-toggle"><:bureau_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_bureau dropdown-menu navbar-dp" id="formulaire_bureau">
<li class="menu-entree item">
<div class="formulaire_bureau">
<form action="[(#ENV{action})]" method="post" class="navbar-search">
<form action="[(#ENV{action})]" method="post" class="navbar-search">
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="bureau" id="bureau"[ value="(#ENV{bureau})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:bureau_domaine:>" placeholder="<:bureau_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{bureau})</label>]
</div>
</form>
</div>
</li>
</ul>
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="bureau" id="bureau"[ value="(#ENV{bureau})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:bureau_domaine:>" placeholder="<:bureau_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{bureau})</label>]
<p class='boutons' style="display:none;">
<input type='submit' class="submit submit_confirmer" name='enregistrer' title="<:bouton_enregistrer_validation:>" value='<:bouton_enregistrer:>' />
</p>
</div>
</form>
<script type="text/javascript">
[ (#ENV**{erreurs}|table_valeur{bureau}|oui)
$("#formulaire_bureau").show();
......
<a href="#" id="bouton_cloud" class="dropdown-toggle"><:cloud_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_cloud dropdown-menu navbar-dp" id="formulaire_cloud">
<li class="menu-entree item">
<div class="formulaire_cloud">
<form action="[(#ENV{action})]" method="post" class="navbar-search">
<form action="[(#ENV{action})]" method="post" class="navbar-search">
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="cloud" id="cloud"[ value="(#ENV{cloud})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:cloud_domaine:>" placeholder="<:cloud_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{cloud})</label>]
</div>
</form>
</div>
</li>
</ul>
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="cloud" id="cloud"[ value="(#ENV{cloud})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:cloud_domaine:>" placeholder="<:cloud_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{cloud})</label>]
</div>
</form>
<script type="text/javascript">
[ (#ENV**{erreurs}|table_valeur{cloud}|oui)
$("#formulaire_cloud").show();
......
......@@ -29,14 +29,16 @@ function formulaires_cloud_charger_dist(){
function formulaires_cloud_verifier_dist(){
$erreurs = array();
$domaine =_request('cloud');
$serveur = cloud_dp ($domaine);
set_request("serveur", "http://$serveur");
if(!$serveur)
$infos_domaine = cloud_dp ($domaine);
spip_log("serveur11 ".print_r($infos_domaine,1),'test'._LOG_AVERTISSEMENT);
if(!$infos_domaine["valide"])
$erreurs['cloud'] = "Adresse invalide";
// else if(!match($serveur,'.domainepublic.net'))
// $erreurs['cloud'] = "Ce nom de domaine n'est pas hébergé par domainepublic";
else if(!$infos_domaine["chez_dp"] AND $infos_domaine["serveur"])
$erreurs['cloud'] = "Ce nom de domaine n'est pas hébergé par domainepublic";
else if(!$infos_domaine["serveur"])
$erreurs['cloud'] = "Pas de cloud trouvé à cette adresse";
else
set_request("erreurs", array());
set_request("serveur", "http://".$infos_domaine["serveur"]);
spip_log("erreurs ".print_r($erreurs,1),'test'._LOG_AVERTISSEMENT);
return $erreurs;
}
......
<a href="#" id="bouton_webmail" class="dropdown-toggle"><:webmail_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_webmail dropdown-menu navbar-dp" id="formulaire_webmail">
<li class="menu-entree item">
<div class="formulaire_webmail">
<form action="[(#ENV{action})]" method="post" class="navbar-search">
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="webmail" id="webmail"[ value="(#ENV{webmail})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:webmail_domaine:>" placeholder="<:webmail_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{webmail})</label>]
</div>
</form>
</div>
</li>
</ul>
<form action="[(#ENV{action})]" method="post" class="navbar-search">
#ACTION_FORMULAIRE{#ENV{action}}
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
[<input type="hidden" name="serveur" value="(#ENV{serveur})" />]
<div class="">
<input type="[(#HTML5|?{search,text})]" class="search text span2" name="webmail" id="webmail"[ value="(#ENV{webmail})"] accesskey="4" autocapitalize="off" autocorrect="off" title="<:webmail_domaine:>" placeholder="<:webmail_domaine:>"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{webmail})</label>]
</div>
</form>
<script type="text/javascript">
[ (#ENV**{erreurs}|table_valeur{webmail}|oui)
$("#formulaire_webmail").show();
......
......@@ -30,13 +30,13 @@ function formulaires_webmail_charger_dist(){
function formulaires_webmail_verifier_dist(){
$erreurs = array();
$webmail =_request('webmail');
$serveur = explode("@",$webmail);
$tableau_email = explode("@",$webmail);
// pas de @ ? = invalide
if(!isset($serveur[1]))
if(!isset($tableau_email[1]))
$erreurs['webmail'] = "Adresse invalide";
// OK
else{
$domaine = $serveur[1]; // juste le nom de domaine
else if (filter_var($webmail, FILTER_VALIDATE_EMAIL) !== false){
$domaine = $tableau_email[1]; // juste le nom de domaine
$serveur = webmail_dp($domaine); // serveur MX ?
spip_log("domaine ".$domaine,'test'._LOG_AVERTISSEMENT);
spip_log("serveur ".$serveur,'test'._LOG_AVERTISSEMENT);
......@@ -48,7 +48,7 @@ function formulaires_webmail_verifier_dist(){
}
// si la fonction php mx_chez_dp ne retourne rien
if(!$serveur){
$erreurs['webmail'] = "Adresse invalide";
$erreurs['webmail'] = "Adresse email invalide";
}
// CHEZ DP ?
if(!$erreurs['webmail'] AND !match($serveur,'domainepublic.net')){
......
......@@ -9,14 +9,35 @@
#MODELE{logodp}
</a>
</li>
<li class="menu-entree item ajax dropdown jqderoule" id="item-bureau">
[(#FORMULAIRE_BUREAU)]
<li class="menu-entree item dropdown jqderoule" id="item-bureau">
<a href="#" id="bouton_bureau" class="dropdown-toggle"><:bureau_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_bureau dropdown-menu navbar-dp" id="formulaire_bureau">
<li class="menu-entree item">
<div class="formulaire_bureau ajax">
[(#FORMULAIRE_BUREAU)]
</div>
</li>
</ul>
</li>
<li class="menu-entree item ajax dropdown jqderoule" id="item-webmail">
[(#FORMULAIRE_WEBMAIL)]
<a href="#" id="bouton_webmail" class="dropdown-toggle"><:webmail_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_webmail dropdown-menu navbar-dp" id="formulaire_webmail">
<li class="menu-entree item">
<div class="formulaire_webmail ajax">
[(#FORMULAIRE_WEBMAIL)]
</div>
</li>
</ul>
</li>
<li class="menu-entree item ajax dropdown jqderoule" id="item-cloud">
[(#FORMULAIRE_CLOUD)]
<a href="#" id="bouton_cloud" class="dropdown-toggle"><:cloud_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items formulaire_cloud dropdown-menu navbar-dp" id="formulaire_cloud">
<li class="menu-entree item">
<div class="formulaire_cloud ajax">
[(#FORMULAIRE_CLOUD)]
</div>
</li>
</ul>
</li>
<li class="menu-entree item dropdown jqderoule" id="item-pads">
[(#MODELE{pads})]
......
......@@ -27,7 +27,6 @@ $(document).ready(function(){
$("#formulaire_cloud").toggle();
event.stopPropagation();
});
$("#bouton_pads_choix").hide();
$("#bouton_pads").click(function(event) {
if(!$('#bouton_pads_choix').is(':visible')) {
// $("#bouton_pads_choix").hide();
......
<?php
/**
* Retourne le bureau du nom de domaine fourni
* Retourne le cloud du nom de domaine fourni
* ex : sites_chez_dp('terre-envue.be');
* retourne 'tumulte.domainepublic.net' - 'grabuge.domainepublic.net' - 'bureau.domainepublic.net' - etc ....
* retourne 'tumulte.domainepublic.net' - 'grabuge.domainepublic.net' - 'cloud.domainepublic.net' - etc ....
* ex : sites_chez_dp('google.be');
* retourne false
* ex : sites_chez_dp('jkhkdfhsdkjh.be');
* retourne false
*/
function bureau_dp ($domaine) {
function cloud_dp ($domaine) {
$retour = array();
if (!preg_match("/^(http[s]?\:\/\/)?([-A-Za-z0-9]+\.)+[A-Za-z]{2,10}$/", $domaine)){
$retour["valide"] = false;
return $retour;
}
$parse = parse_url($domaine);
if($parse['host'])
$domaine = $parse['host']; // juste le nom de dom sans http/s ni sous-dom
$result = dns_get_record($domaine, DNS_A);
spip_log("bureau ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
if( $result AND isset($result[0]['ip'])){
spip_log("serveur ip ".$result[0]['ip'],'test'._LOG_AVERTISSEMENT);
// On obtient une IP adress
$serveur = $result[0]['ip'];
// On obtient le nom de domaine de l'adress IP
$serveur = gethostbyaddr ($serveur);
spip_log("serveur name ".$serveur,'test'._LOG_AVERTISSEMENT);
// SI RAMDAM !!! $serveur = "collectif2.all2all.org"
if(($serveur == "collectif2.all2all.org") OR $serveur == "ramdam.domainepublic.net")
$serveur = "bureau.domainepublic.net";
// SINON RAMDAM !!! $serveur = "tumulte.domainepublic.net" ou "grabuge.domainepublic.net" etc ...
if($serveur)
return "https://".$serveur;
spip_log("parse ".print_r($parse,1),'test'._LOG_AVERTISSEMENT);
if($domaine = $parse['host'] OR $domaine = $parse['path']){
$retour["valide"] = true;
// Chez DP ?
spip_log("bureau_dp ".bureau_dp ($domaine),'test'._LOG_AVERTISSEMENT);
if( match($serveur_site = bureau_dp ($domaine),'domainepublic.net'))
$retour["chez_dp"] = true;
else
$retour["chez_dp"] = false;
// if(match($serveur_site,'.domainepublic.net'))
// $erreurs['bureau'] = "Ce nom de domaine n'est pas hébergé par domainepublic";
// $domaine = $parse['host']; // juste le nom de dom sans http/s ni sous-dom
$result = dns_get_record($domaine, DNS_A);
spip_log("cloud ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
spip_log("pageTitle ".pageTitle("http://".$result[0]['host']),'test'._LOG_AVERTISSEMENT);
// on checke si page titre contient cloud
if( $result AND isset($result[0]['host']) AND match(pageTitle("http://".$result[0]['host']),'cloud')){
spip_log("serveur ".$result[0]['host'],'test'._LOG_AVERTISSEMENT);
$retour["serveur"] = $result[0]['host'];
}
// si le nom d'hote ne contient pas cloud et est chez DP, on essaye cloud.
else if( (!match($result[0]['host'],'cloud')) AND $retour["chez_dp"]){
spip_log("essai "."http://cloud.".$result[0]['host'],'test'._LOG_AVERTISSEMENT);
$pageTitre = pageTitle("http://cloud.".$result[0]['host'],'cloud');
spip_log("pageTitle ".$pageTitre,'test'._LOG_AVERTISSEMENT);
if(match($pageTitre,'cloud')){
spip_log("Yes! ".$pageTitre,'test'._LOG_AVERTISSEMENT);
$retour["serveur"] = "cloud.".$result[0]['host'];
}
}
}
return $retour;
}
/**
* Retourne le bureau du nom de domaine fourni
* ex : bureau_dp('terre-envue.be');
* retourne 'tumulte.domainepublic.net' - 'grabuge.domainepublic.net' - 'bureau.domainepublic.net' - etc ....
* ex : bureau_dp('google.be');
* retourne false
* ex : bureau_dp('jkhkdfhsdkjh.be');
* retourne false
*/
function bureau_dp ($domaine) {
// spip_log("filter_var ".filter_var($domaine, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED),'test'._LOG_AVERTISSEMENT);
if (preg_match("/^(http[s]?\:\/\/)?([-A-Za-z0-9]+\.)+[A-Za-z]{2,10}$/", $domaine)){
// spip_log("preg_match ".preg_match("/^(http[s]?\:\/\/)?([-A-Za-z0-9]+\.)+[A-Za-z]{2,10}$/", $domaine),'test'._LOG_AVERTISSEMENT);
$parse = parse_url($domaine);
// spip_log("parse ".print_r($parse,1),'test'._LOG_AVERTISSEMENT);
if($domaine = $parse['host'] OR $domaine = $parse['path']){
// $domaine = $parse['host']; // juste le nom de dom sans http/s ni sous-dom
// spip_log("domain ".$domaine,'test'._LOG_AVERTISSEMENT);
$result = dns_get_record($domaine, DNS_A);
// spip_log("bureau ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
if( $result AND isset($result[0]['ip']) AND ($result[0]['host']!="$domaine.domainepublic.net")){
// spip_log("serveur ip ".$result[0]['ip'],'test'._LOG_AVERTISSEMENT);
// On obtient une IP adress
$serveur = $result[0]['ip'];
// On obtient le nom de domaine de l'adress IP
$serveur = gethostbyaddr ($serveur);
// spip_log("serveur name ".$serveur,'test'._LOG_AVERTISSEMENT);
// SI RAMDAM !!! $serveur = "collectif2.all2all.org"
if(($serveur == "collectif2.all2all.org") OR $serveur == "ramdam.domainepublic.net")
$serveur = "bureau.domainepublic.net";
// SINON RAMDAM !!! $serveur = "tumulte.domainepublic.net" ou "grabuge.domainepublic.net" etc ...
if($serveur)
return "http://".$serveur;
}
}
}
// else
// spip_log("invalide name ".$domaine,'test'._LOG_AVERTISSEMENT);
return false;
}
......@@ -39,49 +98,17 @@ function bureau_dp ($domaine) {
* renvoie vers 'tumulte.domainepublic.net'
*/
function webmail_dp ($domaine) {
spip_log("domaine ".$domaine,'test'._LOG_AVERTISSEMENT);
$result = dns_get_record($domaine, DNS_MX);
spip_log("serveur ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
if( $result AND isset($result[0]['target'])){
$serveur = $result[0]['target'];
spip_log("MX serveur ".$serveur,'test'._LOG_AVERTISSEMENT);
if($serveur)
return $serveur;
}
return false;
}
/**
* Retourne le cloud du nom de domaine fourni
* ex : sites_chez_dp('terre-envue.be');
* retourne 'tumulte.domainepublic.net' - 'grabuge.domainepublic.net' - 'cloud.domainepublic.net' - etc ....
* ex : sites_chez_dp('google.be');
* retourne false
* ex : sites_chez_dp('jkhkdfhsdkjh.be');
* retourne false
*/
function cloud_dp ($domaine) {
$parse = parse_url($domaine);
if($parse['host'])
$domaine = $parse['host']; // juste le nom de dom sans http/s ni sous-dom
$result = dns_get_record($domaine, DNS_A);
spip_log("cloud ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
if( $result AND isset($result[0]['host'])){
spip_log("serveur ".$result[0]['host'],'test'._LOG_AVERTISSEMENT);
return $result[0]['host'];
}
/*
// On obtient une IP adress
$serveur = $result[0]['ip'];
// On obtient le nom de domaine de l'adress IP
$serveur = gethostbyaddr ($serveur);
spip_log("serveur name ".$serveur,'test'._LOG_AVERTISSEMENT);
// SI RAMDAM !!! $serveur = "collectif2.all2all.org"
if(($serveur == "collectif2.all2all.org") OR $serveur == "ramdam.domainepublic.net")
$serveur = "cloud.domainepublic.net";
// SINON RAMDAM !!! $serveur = "tumulte.domainepublic.net" ou "grabuge.domainepublic.net" etc ...
if($serveur)
return "https://".$serveur;
}*/
spip_log("adress ".$domaine,'test'._LOG_AVERTISSEMENT);
// return false;
spip_log("domaine ".$domaine,'test'._LOG_AVERTISSEMENT);
$result = dns_get_record($domaine, DNS_MX);
spip_log("serveur ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
if( $result AND isset($result[0]['target'])){
$serveur = $result[0]['target'];
spip_log("MX serveur ".$serveur,'test'._LOG_AVERTISSEMENT);
if($serveur)
return $serveur;
}
return false;
}
......@@ -98,4 +125,22 @@ function trad ($texte, $lang) {
return $text;
}
function pageTitle($page_url)
{
$read_page = file_get_contents($page_url);
preg_match("/<title.*?>[\n\r\s]*(.*)[\n\r\s]*<\/title>/", $read_page, $page_title);
if (isset($page_title[1]))
{
if ($page_title[1] == '')
{
return false;
}
$page_title = $page_title[1];
return trim($page_title);
}
else
{
return false;
}
}
?>
......@@ -8,3 +8,7 @@
<a href="https://mypads.domainepublic.net">Pads privés</a>
</li>
</ul>
<script type="text/javascript">
$("#bouton_pads_choix").hide();
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment