Esempio n. 1
0
    public static function generatePage(&$tpl, &$session, &$account, &$perso)
    {
        $dbMgr = DbManager::getInstance();
        //Instancier le gestionnaire
        $db = $dbMgr->getConn('game');
        //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
        //Valider si le joueur à accès à Internet
        if (Member_Action_Item_Navigateur::checkAccess($perso) === false) {
            return fctErrorMSG('Vous n\'avez pas accès à Internet.');
        }
        //Vérifier l'état du perso
        if (!$perso->isConscient()) {
            die('01|Votre n\'êtes pas en état d\'effectuer cette action.');
        }
        if (!preg_match('/^[A-Za-z0-9.-_]+$/', $_POST['url'], $matches)) {
            die('03|L\'URL du site est invalide (' . $_POST['url'] . ').');
        }
        //Vérifier si l'URL existe
        $site = Member_Siteweb::loadSite($_POST['url']);
        if (!$site) {
            die('10|Cette URL n\'existe pas.');
        }
        //Vérifier si l'accès est valide
        $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
        if ($acces === false) {
            die('11|Vous ne possèdez pas les autorisations nécésaires (1).');
        }
        if (!$acces->canPoste() && !$acces->isAdmin()) {
            die('12|Vous ne possèdez pas les autorisations nécésaires (2).');
        }
        //Tout est ok, Créer la page !!!!!
        $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_pages' . ' (`site_id`, `titre`, `content`, `acces`, `showIndex`)' . ' VALUES' . ' (:site_id, :titre, :content, :acces, :showIndex);';
        $prep = $db->prepare($query);
        $prep->bindValue(':site_id', $site->getId(), PDO::PARAM_INT);
        $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
        $prep->bindValue(':content', $_POST['content'], PDO::PARAM_STR);
        $prep->bindValue(':acces', $_POST['acces'] == 'true' ? 'pub' : 'priv', PDO::PARAM_STR);
        $prep->bindValue(':showIndex', $_POST['showIndex'] == 'true' ? '1' : '0', PDO::PARAM_STR);
        $prep->executePlus($db, __FILE__, __LINE__);
        $prep->closeCursor();
        $prep = NULL;
        $pageid = $db->lastInsertId();
        //Si la page est privé et que la personne qui crée est pas admin, lui donner droit d'accès
        if ($_POST['acces'] == 'priv' && $acces['admin'] != 1) {
            $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_pages_acces
					(`page_id`, `user_id`)
					VALUES
					(:page_id,:user_id);';
            $prep->bindValue(':page_id', $pageid, PDO::PARAM_INT);
            $prep->bindValue(':user_id', $acces['id'], PDO::PARAM_INT);
            $prep->executePlus($db, __FILE__, __LINE__);
            $prep->closeCursor();
            $prep = NULL;
        }
        die('OK|' . $perso->getPa() . '|' . $_POST['url'] . '/' . $pageid);
        //Tout est OK
    }
Esempio n. 2
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     //Valider si le joueur à accès à Internet
     if (Member_Action_Item_Navigateur::checkAccess($perso) === false) {
         return fctErrorMSG('Vous n\'avez pas accès à Internet.');
     }
     //Vérifier l'état du perso
     if (!$perso->isConscient()) {
         die('01|' . rawurlencode('Votre n\'êtes pas en état d\'effectuer cette action.'));
     }
     if (!preg_match('/^[A-Za-z0-9.-_]*$/', $_POST['url'], $matches)) {
         return fctErrorMsg('L\'URL du site est invalide.');
     }
     //Vérifier si l'URL existe
     $site = Member_Siteweb::loadSite($_POST['url']);
     if (!$site) {
         die('10|' . rawurlencode('Cette URL n\'existe pas.'));
     }
     //Vérifier si l'accès est valide
     $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     if ($acces === false) {
         die('11|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (1).'));
     }
     if (!$acces->isAdmin()) {
         die('12|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (2).'));
     }
     //Tout est ok, modifier le site !!!!!
     //Valider si la page d'accueil demandée appartiend au site
     $query = 'SELECT id' . ' FROM ' . DB_PREFIX . 'sitesweb_pages' . ' WHERE	site_id = :site_id' . ' AND id = :id;';
     $prep = $db->prepare($query);
     $prep->bindValue(':site_id', $site->getId(), PDO::PARAM_INT);
     $prep->bindValue(':id', $_POST['accueil'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         $_POST['accueil'] = 0;
     }
     $query = 'UPDATE ' . DB_PREFIX . 'sitesweb' . ' SET	`url`	=:urlNew,' . ' `titre`	=:titre,' . ' `acces` =:acces,' . ' `first_page`=:firstPage' . ' WHERE url=:urlOld;';
     $prep = $db->prepare($query);
     $prep->bindValue(':urlNew', $_POST['new_url'], PDO::PARAM_STR);
     $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
     $prep->bindValue(':acces', $_POST['acces'], PDO::PARAM_STR);
     $prep->bindValue(':firstPage', $_POST['accueil'], PDO::PARAM_INT);
     $prep->bindValue(':urlOld', $_POST['url'], PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     die('OK|' . $perso->getPa() . '|' . $_POST['new_url']);
     //Tout est OK
 }
Esempio n. 3
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches);
     if (count($matches) < 3) {
         return fctErrorMsg('L\'URL du site est invalide (2).');
     }
     $site_url = $matches[1];
     $mod_site_url = $matches[3];
     //Vérifier si l'URL existe
     $site = Member_Siteweb::loadSite($mod_site_url);
     if (!$site) {
         return fctErrorMsg('Cette URL n\'existe pas.');
     }
     //Vérifier si l'accès est valide
     $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     if (!$acces) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).');
     }
     if (!$acces->isAdmin()) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).');
     }
     //Trouver les pages du site
     $PAGES = array();
     $i = 0;
     while ($page = $site->getPage($i++)) {
         if ($page->isPublic()) {
             $PAGES[] = $page;
         }
     }
     $tpl->set('PAGES', $PAGES);
     //Retourner le template complété/rempli
     $tpl->set('SITE', $site);
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetModsite.htm', __FILE__, __LINE__);
 }
Esempio n. 4
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     //
     if (!isset($_POST['url'])) {
         return fctErrorMSG('url innexistante');
     }
     //Séparer le site de la page (dans l'URL)
     preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches);
     if (count($matches) <= 3) {
         return fctErrorMSG('url invalide');
     }
     $url_site = $matches[1];
     $url_page = $matches[2];
     $url_param = $matches[3];
     //url du site en parametre a dom net
     //Vérifier si l'URL existe
     $site = Member_Siteweb::loadSite($url_param);
     if (!$site) {
         return fctErrorMSG('Cette URL n\'existe pas.');
     }
     $tpl->set('SITE', $site);
     //Vérifier si l'accès est valide
     $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     if (!$acces) {
         return fctErrorMSG('Vous ne possèdez pas les autorisations nécésaires (1).');
     }
     if (!$acces->canPoste() && !$acces->isAdmin()) {
         return fctErrorMSG('Vous ne possèdez pas les autorisations nécésaires (2).');
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetAddpage.htm', __FILE__, __LINE__);
 }
Esempio n. 5
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     //Vérifier l'état du perso
     if (!$perso->isConscient()) {
         return fctErrorMsg('Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     //Valider si le joueur à accès à Internet
     if (self::checkAccess($perso) === false) {
         return fctErrorMSG('Vous n\'avez pas accès à Internet.');
     }
     //## AFFICHER L'ENTÊTE DU NAVIGATEUR
     if (!isset($_POST['url']) || empty($_POST['url'])) {
         $_POST['url'] = "dom.net";
     }
     $tpl->set('URL', $_POST['url']);
     $tpl->set('USER', isset($_POST['user']) ? $_POST['user'] : '');
     $tpl->set('PASS', isset($_POST['pass']) ? $_POST['pass'] : '');
     //## AFFICHER LE CONTENU DE LA PAGE
     //Séparer le site de la page (dans l'URL)
     preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches);
     //$tmp = explode('/',$_POST['url']);
     $url_site = null;
     $url_page = null;
     $url_param = null;
     if (count($matches) > 1) {
         $url_site = $matches[1];
     }
     if (count($matches) > 2) {
         $url_page = $matches[2];
     }
     if (count($matches) > 3) {
         $url_param = $matches[3];
     }
     //Charger le site
     $site = Member_Siteweb::loadSite($url_site);
     $tpl->set('url_param', !empty($url_param) ? $url_param : '');
     //Charger l'entête (le menu de navigation)
     $header = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurHeader.htm', __FILE__, __LINE__);
     $tpl->set('HEADER', $header);
     //Vérifier les droits d'accès au site
     $acces = false;
     if ($site && isset($_POST['user']) && isset($_POST['pass'])) {
         $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     }
     if ($site === false) {
         $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurNotFound.htm', __FILE__, __LINE__);
     } elseif ($site && !$site->isPublic() && !$acces) {
         $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurAccessDenied.htm', __FILE__, __LINE__);
     } elseif (is_numeric($url_page) || empty($url_page)) {
         //Il s'agit d'une page régulière
         $page_source = self::loadPageSource($account, $site, $url_page, isset($_POST['user']) ? $_POST['user'] : '', isset($_POST['pass']) ? $_POST['pass'] : '', $acces);
     } else {
         //Il s'agit d'une page système
         switch ($url_page) {
             case 'addsite':
                 $page_source = Member_Action_Item_NavigateurAddsite::generatePage($tpl, $session, $account, $perso);
                 break;
             case 'addpage':
                 $page_source = Member_Action_Item_NavigateurAddpage::generatePage($tpl, $session, $account, $perso);
                 break;
             case 'modpage':
                 $page_source = Member_Action_Item_NavigateurModpage::generatePage($tpl, $session, $account, $perso);
                 break;
             case 'modsite':
                 $page_source = Member_Action_Item_NavigateurModsite::generatePage($tpl, $session, $account, $perso);
                 break;
             case 'modacces':
                 $page_source = Member_Action_Item_NavigateurModacces::generatePage($tpl, $session, $account, $perso);
                 break;
             case 'modpageacces':
                 $page_source = Member_Action_Item_NavigateurModpageacces::generatePage($tpl, $session, $account, $perso);
                 break;
             default:
                 $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/navigateurNotFound.htm', __FILE__, __LINE__);
         }
     }
     //Vérifier si la source -- du site retourné -- comprend un titre ou seulement la source
     if (count($page_source) == 2) {
         $tpl->set('TITRE', $page_source[0]);
         $tpl->set('PAGE', $page_source[1]);
     } else {
         $tpl->set('PAGE', $page_source);
     }
     //Charger l'index
     if ($site && ($site->isPublic() || $acces)) {
         $tpl->set('site', $site);
         $i = 0;
         $e = 0;
         $arrPages = array();
         while ($page = $site->getPage($i++)) {
             if ($page->getShowIndex()) {
                 $arrPages[$e++] = $page;
             }
         }
         $tpl->set('arrPages', $arrPages);
         //Valider les accès
         if ($acces && ($acces->canPoste() || $acces->isAdmin())) {
             $tpl->set('canPost', true);
         }
         if ($acces && $acces->isAdmin()) {
             $tpl->set('admin', true);
         }
         $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurIndex.htm', __FILE__, __LINE__);
         $tpl->set('INDEX', $page_source);
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/Navigateur.htm', __FILE__, __LINE__);
 }
Esempio n. 6
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches);
     if (count($matches) < 3) {
         return fctErrorMsg('L\'URL du site est invalide (2).');
     }
     $site_url = $matches[1];
     $mod_site_url = $matches[3];
     //Vérifier si l'URL existe
     $site = Member_Siteweb::loadSite($mod_site_url);
     if (!$site) {
         return fctErrorMsg('Cette URL n\'existe pas.');
     }
     //Vérifier si l'accès est valide
     $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     if (!$acces) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).');
     }
     if (!$acces->isAdmin()) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).');
     }
     if (isset($_POST['action'])) {
         //En cas d'ajout, effectuer l'ajout du champ bidon AVANT
         if ($_POST['action'] == 'add') {
             $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_acces' . ' (`site_id`)' . ' VALUES' . ' (:id);';
             $prep = $db->prepare($query);
             $prep->bindValue(':id', $site->getId(), PDO::PARAM_INT);
             $prep->executePlus($db, __FILE__, __LINE__);
             $prep->closeCursor();
             $prep = NULL;
             $site->clearAcces();
         }
         if ($_POST['action'] == 'mod') {
             $i = 0;
             while ($ax = $site->getAcces($i++)) {
                 if (isset($_POST['ax_' . $ax->getId() . '_del'])) {
                     if ($acces->getId() == $ax->getId()) {
                         echo fctErrorMSG('Vous ne pouvez pas vous auto-supprimer.');
                     } else {
                         $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_acces' . ' WHERE	id=:id' . ' AND site_id=:siteId' . ' LIMIT 1;';
                         $prep = $db->prepare($query);
                         $prep->bindValue(':siteId', $site->getId(), PDO::PARAM_INT);
                         $prep->bindValue(':id', $ax->getId(), PDO::PARAM_INT);
                         $prep->executePlus($db, __FILE__, __LINE__);
                         $prep->closeCursor();
                         $prep = NULL;
                         $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE	user_id=:userId;';
                         $prep = $db->prepare($query);
                         $prep->bindValue(':userId', $ax->getId(), PDO::PARAM_INT);
                         $prep->executePlus($db, __FILE__, __LINE__);
                         $prep->closeCursor();
                         $prep = NULL;
                     }
                 } else {
                     if (isset($_POST['ax_' . $ax->getId() . '_user'])) {
                         $query = 'UPDATE ' . DB_PREFIX . 'sitesweb_acces' . ' SET	`user`		=:user,' . ' `pass`		=:pass,' . ' `accede`	=:accede,' . ' `poste`		=:poste,' . ' `modifier`	=:modifier,' . ' `admin`		=:admin' . ' WHERE	id=:id' . ' AND site_id=:siteId' . ' LIMIT 1;';
                         $prep = $db->prepare($query);
                         $prep->bindValue(':user', $_POST['ax_' . $ax->getId() . '_user'], PDO::PARAM_STR);
                         $prep->bindValue(':pass', $_POST['ax_' . $ax->getId() . '_pass'], PDO::PARAM_STR);
                         $prep->bindValue(':accede', isset($_POST['ax_' . $ax->getId() . '_accede']) ? '1' : '0', PDO::PARAM_STR);
                         $prep->bindValue(':poste', isset($_POST['ax_' . $ax->getId() . '_poste']) ? '1' : '0', PDO::PARAM_STR);
                         $prep->bindValue(':modifier', isset($_POST['ax_' . $ax->getId() . '_modifier']) ? '1' : '0', PDO::PARAM_STR);
                         $prep->bindValue(':admin', isset($_POST['ax_' . $ax->getId() . '_admin']) ? '1' : '0', PDO::PARAM_STR);
                         $prep->bindValue(':siteId', $site->getId(), PDO::PARAM_INT);
                         $prep->bindValue(':id', $ax->getId(), PDO::PARAM_INT);
                         $prep->executePlus($db, __FILE__, __LINE__);
                         $prep->closeCursor();
                         $prep = NULL;
                     }
                 }
             }
             $site->clearAcces();
         }
     }
     //Trouver le accès déjà existants
     $i = 0;
     $arrAcces = array();
     while ($ax = $site->getAcces($i++)) {
         $arrAcces[] = $ax;
     }
     $tpl->set('ACCES', $arrAcces);
     //Retourner le template complété/rempli
     $tpl->set('SITE', $site);
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetAcces.htm', __FILE__, __LINE__);
 }
Esempio n. 7
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     //Valider si l'URL est spécifiée.
     if (!isset($_POST['url'])) {
         return fctErrorMSG('url innexistante');
     }
     //Séparer le site de la page (dans l'URL)
     preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches);
     if (count($matches) <= 3) {
         return fctErrorMSG('url invalide');
     }
     $url_site = $matches[1];
     $url_page = $matches[2];
     $url_param = $matches[3];
     //Id de la page a modifier
     //Trouver le site qui contient la page
     $query = 'SELECT s.url' . ' FROM ' . DB_PREFIX . 'sitesweb_pages as p' . ' LEFT JOIN ' . DB_PREFIX . 'sitesweb as s ON (s.id=p.site_id)' . ' WHERE p.id=:id' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':id', $url_param, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         return fctErrorMSG('Page innexistante');
     }
     //Vérifier si l'URL existe
     $site = Member_Siteweb::loadSite($arr['url']);
     if (!$site) {
         return fctErrorMsg('Cette URL n\'existe pas.');
     }
     //Vérifier si l'accès est valide
     $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
     if (!$acces) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).');
     }
     if (!$acces->isAdmin()) {
         return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).');
     }
     //Charger les accès à la page
     $query = 'SELECT id, user_id' . ' FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE page_id=:id;';
     $prep = $db->prepare($query);
     $prep->bindValue(':id', $url_param, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arrPageAx = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     $i = 0;
     $arrAcces = array();
     while ($ax = $site->getAcces($i++)) {
         $tmp = array();
         $tmp['obj'] = $ax;
         $tmp['ax'] = false;
         foreach ($arrPageAx as $pax) {
             if ($pax !== false && $pax['user_id'] == $ax->getId()) {
                 $tmp['ax'] = true;
                 break;
             }
         }
         $arrAcces[] = $tmp;
     }
     $tpl->set('ACCES', $arrAcces);
     //Trouver la page
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'sitesweb_pages' . ' WHERE `id` = :id' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':id', $url_param, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         return fctErrorMSG('page invalide (1)');
     }
     $page = new Member_SitewebPage($arr);
     $tpl->set('PAGE', $page);
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetModpageacces.htm', __FILE__, __LINE__);
 }
Esempio n. 8
0
    public static function generatePage(&$tpl, &$session, &$account, &$perso)
    {
        $dbMgr = DbManager::getInstance();
        //Instancier le gestionnaire
        $db = $dbMgr->getConn('game');
        //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
        //Valider si le joueur à accès à Internet
        if (Member_Action_Item_Navigateur::checkAccess($perso) === false) {
            return fctErrorMSG('Vous n\'avez pas accès à Internet.');
        }
        //Vérifier l'état du perso
        if (!$perso->isConscient()) {
            die('01|' . rawurlencode('Votre n\'êtes pas en état d\'effectuer cette action.'));
        }
        if (!preg_match('/^([^\\/]+)(?:[\\/]([0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches)) {
            die('03|' . rawurlencode('L\'URL du site est invalide.'));
        }
        if (count($matches) <= 2) {
            die('04|' . rawurlencode('L\'id du site est manquant ou invalide.'));
        }
        //Vérifier si l'URL existe
        $site = Member_Siteweb::loadSite($matches[1]);
        if (!$site) {
            die('10|' . rawurlencode('Cette URL n\'existe pas.'));
        }
        //Vérifier si l'accès est valide
        $acces = $site->checkAcces($_POST['user'], $_POST['pass']);
        if (!$acces) {
            die('11|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (1).'));
        }
        if (!$acces->canModifier() && !$acces->isAdmin()) {
            die('12|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (2).'));
        }
        //Vérifier que la page appartient au site
        $i = 0;
        $e = 0;
        $found = false;
        while ($page = $site->getPage($i++)) {
            if ($page->getId() == $matches[2]) {
                $found = true;
            }
        }
        if (!$found) {
            die('12|' . rawurlencode('Cette page n\'appartiend pas à ce site.'));
        }
        //Tout est ok, Effacer la page :(
        $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE page_id=:id;';
        $prep = $db->prepare($query);
        $prep->bindValue(':id', $matches[2], PDO::PARAM_INT);
        $prep->execute($db, __FILE__, __LINE__);
        $prep->closeCursor();
        $prep = NULL;
        $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages
					WHERE id=:id;';
        $prep = $db->prepare($query);
        $prep->bindValue(':id', $matches[2], PDO::PARAM_INT);
        $prep->execute($db, __FILE__, __LINE__);
        $prep->closeCursor();
        $prep = NULL;
        die('OK|' . $perso->getPa());
        //Tout est OK
    }