本文整理汇总了PHP中spip_connect函数的典型用法代码示例。如果您正苦于以下问题:PHP spip_connect函数的具体用法?PHP spip_connect怎么用?PHP spip_connect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了spip_connect函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: base_prefixe_tables
/**
* Retrouver le prefixe des tables
* @param string $serveur
* @return string
*/
function base_prefixe_tables($serveur = '')
{
spip_connect($serveur);
$connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
$prefixe = $connexion['prefixe'];
return $prefixe;
}
示例2: action_converser_dist
function action_converser_dist()
{
if ($lang = _request('var_lang'))
action_converser_post($lang);
elseif ($lang = _request('var_lang_ecrire')) {
if ( _request('arg') AND spip_connect()) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
$GLOBALS['visiteur_session']['lang'] = $lang;
$session = charger_fonction('session', 'inc');
if ($spip_session = $session($GLOBALS['visiteur_session'])) {
spip_setcookie(
'spip_session',
$spip_session,
time() + 3600 * 24 * 14
);
}
}
action_converser_post($lang, 'spip_lang_ecrire');
}
$redirect = rawurldecode(_request('redirect'));
if (!$redirect) $redirect = _DIR_RESTREINT_ABS;
$redirect = parametre_url($redirect,'lang',$lang,'&');
redirige_par_entete($redirect, true);
}
示例3: dump_afficher_tables_sauvegardees
function dump_afficher_tables_sauvegardees($status_file)
{
$status = dump_lire_status($status_file);
$tables = $status['tables_copiees'];
// lister les tables sauvegardees et aller verifier dans le dump
// qu'on a le bon nombre de donnees
dump_serveur($status['connect']);
spip_connect('dump');
foreach ($tables as $t => $n) {
$n = abs(intval($n));
$n_dump = intval(sql_countsel($t, '', '', '', 'dump'));
$res = "{$t} ";
if ($n_dump == 0 and $n == 0) {
$res .= "(" . _T('dump:aucune_donnee') . ")";
} else {
$res .= "({$n_dump}/{$n})";
}
if ($n !== $n_dump) {
$res = "<strong>{$res}</strong>";
}
$tables[$t] = $res;
}
$n = floor(count($tables) / 2);
$corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", array_slice($tables, 0, $n)) . "</li></ul></div>" . "<div style='width:49%;float:left;'><ul class='spip'><li>" . join("</li><li class='spip'>", array_slice($tables, $n)) . "</li></ul></div>" . "<div class='nettoyeur'></div>";
return $corps;
}
示例4: verifier_crash_tables
/**
* Vérifier si une table a crashé
*
* Pour cela, on vérifie si on peut se connecter à la base de données.
*
* @see message_crash_tables()
*
* @return bool|array
* Si pas de table de crashée, on retourne `false`.
* Sinon, retourne un tableau contenant tous les noms
* des tables qui ont crashé.
*/
function verifier_crash_tables()
{
if (spip_connect()) {
include_spip('base/serial');
include_spip('base/auxiliaires');
$crash = array();
foreach (array('tables_principales', 'tables_auxiliaires') as $com) {
foreach ($GLOBALS[$com] as $table => $desc) {
if (!sql_select('*', $table, '', '', '', 1) and !defined('spip_interdire_cache')) {
# cas "LOST CONNECTION"
$crash[] = $table;
}
}
}
#$crash[] = 'test';
if ($crash) {
ecrire_meta('message_crash_tables', serialize($crash));
spip_log('crash des tables', 'err');
spip_log($crash, 'err');
} else {
effacer_meta('message_crash_tables');
}
return $crash;
}
return false;
}
示例5: exec_admin_repair_dist
function exec_admin_repair_dist()
{
$ok = false;
if (!spip_connect())
$message = _T('titre_probleme_technique');
else {
$version_sql = sql_version();
if (!$version_sql)
$message = _T('avis_erreur_connexion_mysql');
else {
$s = $GLOBALS['connexions'][0]['type'];
if ($s == 'mysql'
AND version_compare($version_sql,'3.23.14','<'))
$message = _T('avis_version_mysql', array('version_mysql' => " MySQL $version_sql"));
else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
}
$action = _T('texte_tenter_reparation');
}
if ($ok) {
$admin = charger_fonction('admin', 'inc');
echo $admin('admin_repair', $action, $message, true);
} else {
include_spip('inc/minipres');
echo minipres(_T('titre_reparation'), "<p>$message</p>");
}
}
示例6: base_restaurer_dist
function base_restaurer_dist($titre = '', $reprise = false)
{
$status_file = _DUMP_STATUS_FILE;
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step') + 1), '&');
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array(), 'desc_tables_dest' => array());
if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') and $desc = unserialize($desc)) {
$options['desc_tables_dest'] = $desc;
}
#var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump'));
#die();
$res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
} else {
// mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump');
sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump');
}
echo "</div>\n";
if (!$res) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
if (!$res) {
exit;
}
// quand on sort de $export avec true c'est qu'on a fini
dump_end(_DUMP_STATUS_FILE, 'restaurer');
include_spip('inc/headers');
echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
}
}
示例7: action_converser_dist
function action_converser_dist()
{
$update_session = false;
if (_request('arg') and spip_connect()) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
$update_session = true;
}
$lang = action_converser_changer_langue($update_session);
$redirect = rawurldecode(_request('redirect'));
if (!$redirect) {
$redirect = _DIR_RESTREINT_ABS;
}
$redirect = parametre_url($redirect, 'lang', $lang, '&');
redirige_par_entete($redirect, true);
}
示例8: base_lister_toutes_tables
/**
* Lister toutes les tables d'un serveur
* en excluant eventuellement une liste fournie
*
* @param string $serveur
* @param array $tables
* @param array $exclude
* @param bool $affiche_vrai_prefixe
* @return array
*/
function base_lister_toutes_tables($serveur = '', $tables = array(), $exclude = array(), $affiche_vrai_prefixe = false)
{
spip_connect($serveur);
$connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
$prefixe = $connexion['prefixe'];
$p = '/^' . $prefixe . '/';
$res = $tables;
foreach (sql_alltable(null, $serveur) as $t) {
if (preg_match($p, $t)) {
$t1 = preg_replace($p, 'spip', $t);
if (!in_array($t1, $tables) and !in_array($t1, $exclude)) {
$res[] = $affiche_vrai_prefixe ? $t : $t1;
}
}
}
sort($res);
return $res;
}
示例9: auth_ldap_connect
/**
* Connexion a l'annuaire LDAP
* Il faut passer par spip_connect() pour avoir les info
* donc potentiellement indiquer un serveur
* meme si dans les fait cet argument est toujours vide
*
* @param string $serveur
* @return string
*/
function auth_ldap_connect($serveur='') {
include_spip('base/connect_sql');
static $connexions_ldap = array();
if (isset($connexions_ldap[$serveur])) return $connexions_ldap[$serveur];
$connexion = spip_connect($serveur);
if (!is_array($connexion['ldap'])) {
if ($connexion['authentification']['ldap']) {
$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
unset($GLOBALS['ldap_link']);
if (is_readable($f)) include_once($f);
if (isset($GLOBALS['ldap_link']))
$connexion['ldap'] = array('link' => $GLOBALS['ldap_link'],
'base' => $GLOBALS['ldap_base']);
else spip_log("connection LDAP $serveur mal definie dans $f");
if (isset($GLOBALS['ldap_champs']))
$connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
} else spip_log("connection LDAP $serveur inconnue");
}
return $connexions_ldap[$serveur]=$connexion['ldap'];
}
示例10: inc_sauvegarder_dist
function inc_sauvegarder_dist($status_file, $redirect = '')
{
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
$res = false;
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array());
$res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
}
echo "</div>\n";
if (!$res and $redirect) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
return $res;
}
}
示例11: exec_base_repair_dist
/**
* Reparer la base de donnees
*/
function exec_base_repair_dist()
{
$ok = false;
if (!spip_connect()) {
$message = _T('titre_probleme_technique');
} else {
$version_sql = sql_version();
if (!$version_sql) {
$message = _T('avis_erreur_connexion_mysql');
} else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
$action = _T('texte_tenter_reparation');
}
if ($ok) {
$admin = charger_fonction('admin', 'inc');
echo $admin('repair', $action, $message, true);
} else {
include_spip('inc/minipres');
echo minipres(_T('titre_reparation'), "<p>{$message}</p>");
}
}
示例12: action_confirmer_signature_dist
/**
* Confirmer une signature
* Retour a l'ecran du lien de confirmation d'une signature de petition.
* var_confirm contient le hash de la signature.
* Au premier appel on traite et on publie
* Au second appel on retourne le resultat a afficher
*
* @staticvar string $confirm
* @param <type> $var_confirm
* @return string
*/
function action_confirmer_signature_dist($var_confirm = null)
{
static $confirm = null;
// reponse mise en cache dans la session ?
$code_message = 'signature_message_' . strval($var_confirm);
if (isset($GLOBALS['visiteur_session'][$code_message])) {
return $GLOBALS['visiteur_session'][$code_message];
}
// reponse deja calculee depuis public/assembler.php
if (isset($confirm)) {
return $confirm;
}
if (is_null($var_confirm)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$var_confirm = $securiser_action();
}
if (!$var_confirm or $var_confirm == 'publie' or $var_confirm == 'poubelle') {
return '';
}
if (!spip_connect()) {
$confirm = _T('petitions:form_pet_probleme_technique');
return '';
}
include_spip('inc/texte');
include_spip('inc/filtres');
// Suppression d'une signature par un moderateur ?
// Cf. plugin notifications
if (isset($_GET['refus'])) {
// verifier validite de la cle de suppression
// l'id_signature est dans var_confirm
include_spip('inc/securiser_action');
if ($id_signature = intval($var_confirm) and ($_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere') or $_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere_ancien'))) {
include_spip('action/editer_signature');
signature_modifier($id_signature, array("statut" => 'poubelle'));
$confirm = _T('petitions:info_signature_supprimee');
} else {
$confirm = _T('petitions:info_signature_supprimee_erreur');
}
return '';
}
$row = sql_fetsel('*', 'spip_signatures', "statut=" . sql_quote($var_confirm), '', "1");
if (!$row) {
$confirm = _T('petitions:form_pet_aucune_signature');
return '';
}
$id_signature = $row['id_signature'];
$id_petition = $row['id_petition'];
$adresse_email = $row['ad_email'];
$url_site = $row['url_site'];
$row = sql_fetsel('email_unique, site_unique, id_article', 'spip_petitions', "id_petition=" . intval($id_petition));
$email_unique = $row['email_unique'] == "oui";
$site_unique = $row['site_unique'] == "oui";
$id_article = $row['id_article'];
include_spip('action/editer_signature');
signature_modifier($id_signature, array('statut' => 'publie'));
if ($email_unique) {
$r = "id_petition=" . intval($id_petition) . " AND ad_email=" . sql_quote($adresse_email);
if (signature_entrop($r)) {
$confirm = _T('petitions:form_pet_deja_signe');
}
}
if ($site_unique) {
$r = "id_petition=" . intval($id_petition) . " AND url_site=" . sql_quote($url_site);
if (signature_entrop($r)) {
$confirm = _T('petitions:form_pet_site_deja_enregistre');
}
}
include_spip('inc/session');
if (!$confirm) {
$confirm = _T('petitions:form_pet_signature_validee');
// noter dans la session que l'email est valide
// de facon a permettre de signer les prochaines
// petitions sans refaire un tour d'email
session_set('email_confirme', $adresse_email);
// invalider les pages ayant des boucles signatures
include_spip('inc/invalideur');
suivre_invalideur("id='signature/{$id_signature}'");
suivre_invalideur("id='article/{$id_article}'");
}
// Conserver la reponse dans la session du visiteur
if ($confirm) {
session_set($code_message, $confirm);
}
}
示例13: spip_mysql_query
/**
* Exécute une requête MySQL, munie d'une trace à la demande
*
* @param string $query Requête
* @param string $serveur Nom de la connexion
* @param bool $requeter Exécuter la requête, sinon la retourner
* @return array|resource|string|bool
* - string : Texte de la requête si on ne l'exécute pas
* - ressource|bool : Si requête exécutée
* - array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
*/
function spip_mysql_query($query, $serveur = '', $requeter = true)
{
$connexion =& $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
$prefixe = $connexion['prefixe'];
$link = $connexion['link'];
$db = $connexion['db'];
$query = _mysql_traite_query($query, $db, $prefixe);
// renvoyer la requete inerte si demandee
if (!$requeter) {
return $query;
}
if (isset($_GET['var_profile'])) {
include_spip('public/tracer');
$t = trace_query_start();
} else {
$t = 0;
}
$connexion['last'] = $query;
$connexion['total_requetes']++;
// ajouter un debug utile dans log/mysql-slow.log ?
$debug = '';
if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
if (isset($GLOBALS['debug']['aucasou'])) {
list(, $id, , $infos) = $GLOBALS['debug']['aucasou'];
$debug .= " BOUCLE{$id} @ " . $infos[0] . " | ";
}
$debug .= " " . $_SERVER['REQUEST_URI'] . ' + ' . $GLOBALS['ip'];
$debug = ' /*' . str_replace('*/', '@/', $debug) . ' */';
}
$r = mysqli_query($link, $query . $debug);
//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
if ($e = spip_mysql_errno($serveur)) {
// Log d'un Gone Away
if ($e == 2006) {
//Si Gone Away on relance une connexion vierge
//Fermer la connexion defaillante
mysqli_close($connexion['link']);
unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
//Relancer une connexion vierge
spip_connect($serveur);
$connexion =& $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
$link = $connexion['link'];
//On retente au cas où
$r = mysqli_query($link, $query . $debug);
}
}
if ($e = spip_mysql_errno($serveur)) {
// Log de l'erreur eventuelle
$e .= spip_mysql_error($query, $serveur);
}
// et du fautif
return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
}
示例14: actualise_plugins_actifs
function actualise_plugins_actifs($pipe_recherche = false){
if (!spip_connect()) return false;
$plugin_actifs = liste_chemin_plugin_actifs();
$plugin_liste = liste_plugin_files();
$plugin_new = array_intersect($plugin_actifs,$plugin_liste);
$actifs_avant = $GLOBALS['meta']['plugin'];
ecrire_plugin_actifs($plugin_new,$pipe_recherche);
// retourner -1 si la liste des plugins actifs a change
return (strcmp($GLOBALS['meta']['plugin'],$actifs_avant)==0) ? 1 : -1;
}
示例15: formulaires_signature_traiter_dist
function formulaires_signature_traiter_dist($id_article)
{
$reponse = _T('petitions:form_pet_probleme_technique');
include_spip('base/abstract_sql');
if (spip_connect()) {
$controler_signature = charger_fonction('controler_signature', 'inc');
$reponse = $controler_signature($id_article, _request('session_nom'), _request('session_email'), _request('message'), _request('signature_nom_site'), _request('signature_url_site'), _request('url_page'));
}
return array('message_ok' => $reponse);
}