Commit 155fe3e7 authored by Pierre's avatar Pierre

pleins de tests pour trouver les clouds + message erreur + visible

parent d96b1b99
......@@ -7,6 +7,9 @@
<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:>" style="width:341px"/>
[<label class='erreur_message'>(#ENV**{erreurs}|table_valeur{cloud})</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">
......
......@@ -30,10 +30,10 @@ function formulaires_cloud_verifier_dist(){
$erreurs = array();
$domaine =_request('cloud');
$infos_domaine = cloud_dp ($domaine);
spip_log("serveur11 ".print_r($infos_domaine,1),'test'._LOG_AVERTISSEMENT);
spip_log("infos_domaine ".print_r($infos_domaine,1),'test'._LOG_AVERTISSEMENT);
if(!$infos_domaine["valide"])
$erreurs['cloud'] = "Adresse invalide";
else if(!$infos_domaine["chez_dp"] AND $infos_domaine["serveur"])
else if(!$infos_domaine["chez_dp"])
$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";
......
......@@ -8,6 +8,9 @@
<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>]
<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">
......
......@@ -9,7 +9,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'bureau_menu' => 'Bureau',
'cloud_menu' => 'Cloud',
'webmail_domaine' => "Adresse email (ex : info@monsite.be)",
'cloud_domaine' => "Cloud ou domaine (ex : cloud.monsite.be)",
'cloud_domaine' => "Cloud, domaine ou email (ex : cloud.monsite.be)",
'webmail_menu' => 'Webmail',
'pads_menu' => 'Pads',
'menu_incidents' => 'incidents.domainepublic.net',
......
......@@ -10,41 +10,74 @@
* retourne false
*/
function cloud_dp ($domaine) {
spip_log("cloud_dp arg : ".$domaine,'test'._LOG_AVERTISSEMENT);
$retour = array();
// $domaine_initial = $domaine ;
if (filter_var($domaine, FILTER_VALIDATE_EMAIL) !== false){
$tableau_email = explode("@",$domaine);
// pas de @ ? = invalide
if(!isset($tableau_email[1]))
$retour["valide"] = false;
else
$domaine = $tableau_email[1];
}
if (!preg_match("/^(http[s]?\:\/\/)?([-A-Za-z0-9]+\.)+[A-Za-z]{2,10}$/", $domaine)){
$retour["valide"] = false;
return $retour;
}
$parse = parse_url($domaine);
spip_log("parse ".print_r($parse,1),'test'._LOG_AVERTISSEMENT);
// spip_log("parse ".print_r($parse,1),'test'._LOG_AVERTISSEMENT);
// spip_log("SERVER ".$_SERVER['HTTP_HOST'],'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);
// domaine Chez DP ?
if( match($serveur_site = bureau_dp ($domaine),'domainepublic.net'))
$retour["chez_dp"] = true;
else
// qq'un essaie cloud.monsite.be
else if (match($domaine,'cloud.')){
$pos = strpos($domaine, 'cloud.');
if ($pos !== false) {
// on vire 'cloud.' + eventuels http/s
$domaine = substr($domaine, $pos+6);
// spip_log("domaine base ".$domaine,'test'._LOG_AVERTISSEMENT);
if( match($serveur_site = bureau_dp ($domaine),'domainepublic.net'))
$retour["chez_dp"] = true;
}
}
// valide, MAIS rien trouvé chez DP
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
spip_log("pas chez dp !",'test'._LOG_AVERTISSEMENT);
}
// spip_log("bureau_dp ".$serveur_site,'test'._LOG_AVERTISSEMENT);
$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);
spip_log("dns_get_record ".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
// 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);
// 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.
// ex : actic.be
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'];
// spip_log("essai "."cloud.".$result[0]['host'],'test'._LOG_AVERTISSEMENT);
$result = dns_get_record("cloud.".$result[0]['host'], DNS_A);
spip_log("dns_get_record2 ".print_r($result,1),'test'._LOG_AVERTISSEMENT);
$serveur = $result[0]['ip'];
// On obtient le nom de domaine de l'adress IP
if ($serveur){
$serveur_essai = gethostbyaddr ($serveur);
spip_log("serveur essai ".$serveur_essai,'test'._LOG_AVERTISSEMENT);
if( strlen($serveur_essai) AND ($serveur_essai !== "cloud.domainepublic.net") AND $result AND isset($result[0]['host'])){
$pageTitre = pageTitle("http://".$result[0]['host'],'cloud');
// spip_log("pageTitle ".$pageTitre,'test'._LOG_AVERTISSEMENT);
if ( match($pageTitre,'cloud')){
spip_log("Yes! ".$pageTitre,'test'._LOG_AVERTISSEMENT);
$retour["serveur"] = $result[0]['host'];
}
}
}
}
}
......@@ -127,6 +160,12 @@ function trad ($texte, $lang) {
}
function pageTitle($page_url)
{
$arrContextOptions=array(
"ssl"=>array(
// "verify_peer"=>false,
// "verify_peer_name"=>false,
),
);
$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]))
......@@ -143,4 +182,5 @@ function pageTitle($page_url)
return false;
}
}
?>
<a href="#" id="bouton_pads" class="texte_libre dropdown-toggle"><:pads_menu:> <b class="caret"></b></a>
<a id="bouton_pads" class="texte_libre dropdown-toggle"><:pads_menu:> <b class="caret"></b></a>
<ul class="menu-liste menu-items hide dropdown-menu navbar-dp" style="position: absolute;" id="bouton_pads_choix">
<li class="menu-entree item">
......
......@@ -546,14 +546,14 @@ background: #f8f8f8 none repeat scroll 0 0;
.circle {margin: 0 1px}
label.erreur_message {
color: #c17162;
display: inline-block;
background: #c17162 none repeat scroll 0 0;
border-radius: 0.4em;
color: #ffffff;
cursor: text;
display: inline-table;
font-variant: small-caps;
padding: 0.25em 1em;
position: absolute;
/*text-align: center;*/
top: 0.4em;
width: 400px;
margin-left: 0.5em;
}
#formulaire_modele_webmail, #formulaire_modele_bureau, #formulaire_modele_cloud {float: none !important; position: inherit;}
......@@ -611,6 +611,4 @@ article footer a {
padding: 1em 2em;}
.aside.secondary #formulaire_recherche .input-append {width: 100%; text-align: center}
.jqderoule > a {
cursor: pointer;
}
.jqderoule > a { cursor: pointer;}
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