Rediriger vers une page de maintenance si problème
Fermé
Mica
-
Modifié par Mica le 18/06/2013 à 17:08
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 - 18 juin 2013 à 21:22
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 - 18 juin 2013 à 21:22
A voir également:
- Rediriger vers une page de maintenance si problème
- Supprimer une page word - Guide
- Comment traduire une page - Guide
- Word numéro de page 1/2 - Guide
- Créer une page facebook - Guide
- Comment rediriger une adresse mail - Guide
8 réponses
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 16:45
18 juin 2013 à 16:45
Bonjour,
tu as surement un try catch entourant ta connexion a ta database. Dans le catch tu mets ta redirection.
tu as surement un try catch entourant ta connexion a ta database. Dans le catch tu mets ta redirection.
Je n'ai pas compris mahdu972
Pourrais tu être un peu plus précis s'il te plait ?
Sinon je te remercie pour la réponse très rapide :)
Pourrais tu être un peu plus précis s'il te plait ?
Sinon je te remercie pour la réponse très rapide :)
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 17:01
18 juin 2013 à 17:01
Peux tu mettre ton code de connexion a ta base?
Alors, lors de mon problème de connexion j'ai un soucis dans cette fonction :
A la ligne 68 qui est celle-ci :
Je ne sais pas trop si ça suffira ou si je dois donner d'autres informations ?
public function initialize($where = false) { $this->connect(); if(!$where) { $query = $this->connection->query(query("get_account_id"), array($this->session->userdata('id'))); } else { $query = $this->connection->query(query("get_account"), array($where)); } if($query->num_rows() > 0) { $result = $query->result_array(); $result = $result[0]; $this->id = $result["id"]; $this->username = $result["username"]; $this->sha_pass_hash = $result["password"]; $this->email = $result["email"]; $this->joindate = $result["joindate"]; $this->last_ip = $result["last_ip"]; $this->last_login = $result["last_login"]; $this->expansion = $result["expansion"]; return true; } else { $this->id = 0; $this->username = "Visiteur"; $this->sha_pass_hash = ""; $this->email = ""; $this->joindate = ""; $this->last_ip = ""; $this->last_login = ""; $this->expansion = 0; return false; } }
A la ligne 68 qui est celle-ci :
$query = $this->connection->query(query("get_account_id"), array($this->session->userdata('id')));
Je ne sais pas trop si ça suffira ou si je dois donner d'autres informations ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 17:32
18 juin 2013 à 17:32
A quoi correspond ton $this?
Et la fonction connect() en haut c'est toi qui l'a écrit?
Et la fonction connect() en haut c'est toi qui l'a écrit?
Alors voici le fichier complet pour la connexion
Je n'ai pas créé moi même cette partie du site. Mes compétences ne me le permettent pas malheureusement.
Je suis désolé si je ne donne pas les bons fichiers :s
<?php class External_account_model extends CI_Model { private $connection; private $id; private $username; private $sha_pass_hash; private $email; private $joindate; private $last_ip; private $last_login; private $expansion; private $account_cache; public function __construct() { parent::__construct(); $this->account_cache = array(); if($this->user->getOnline()) { $this->initialize(); } else { $this->id = 0; $this->username = "Guest"; $this->sha_pass_hash = ""; $this->email = ""; $this->joindate = ""; $this->last_ip = ""; $this->last_login = ""; $this->expansion = 0; } } public function getConnection() { $this->connect(); return $this->connection; } public function connect() { if(empty($this->connection)) { $this->connection = $this->load->database("account", true); } } public function initialize($where = false) { $this->connect(); if(!$where) { $query = $this->connection->query(query("get_account_id"), array($this->session->userdata('id'))); } else { $query = $this->connection->query(query("get_account"), array($where)); } if($query->num_rows() > 0) { $result = $query->result_array(); $result = $result[0]; $this->id = $result["id"]; $this->username = $result["username"]; $this->sha_pass_hash = $result["password"]; $this->email = $result["email"]; $this->joindate = $result["joindate"]; $this->last_ip = $result["last_ip"]; $this->last_login = $result["last_login"]; $this->expansion = $result["expansion"]; return true; } else { $this->id = 0; $this->username = "Guest"; $this->sha_pass_hash = ""; $this->email = ""; $this->joindate = ""; $this->last_ip = ""; $this->last_login = ""; $this->expansion = 0; return false; } } /** * Create a new account * @param String $username * @param String $password * @param String $email */ public function createAccount($username, $password, $email, $expansion, $isHashed = false) { $this->connect(); $sha_pass_hash = $this->user->createHash($username, $password); $data = array( column("account", "username") => $username, column("account", "password") => ($isHashed) ? $password : $this->user->createHash($username, $password), column("account", "email") => $email, column("account", "expansion") => $expansion, column("account", "last_ip") => $this->input->ip_address(), column("account", "joindate") => date("Y-m-d") ); // Fix for ArcEmu if(get_class($this->realms->getEmulator()) == "Arcemu") { $data['banned'] = 0; } $this->connection->insert(table("account"), $data); // Fix for TrinityCore RBAC (or any emulator with 'rbac' in it's emulator filename) if(preg_match("/rbac/i", get_class($this->realms->getEmulator()))) { $userId = $this->user->getId($username); $this->connection->query("INSERT INTO rbac_account_groups('accountId', 'groupId', 'realmId') values (?, 1, -1)", array($userId)); } $this->updateDailySignUps(); } private function updateDailySignUps() { $query = $this->db->query("SELECT COUNT(*) AS 'total' FROM daily_signups WHERE 'date'=?", array(date("Y-m-d"))); $row = $query->result_array(); if($row[0]['total']) { $this->db->query("UPDATE daily_signups SET amount = amount + 1 WHERE 'date'=?", array(date("Y-m-d"))); } else { $this->db->query("INSERT INTO daily_signups('date', amount) VALUES(?, ?)", array(date("Y-m-d"), 1)); } } /** * Get the banned status * @param Int $id * @return Boolean */ public function getBannedStatus($id) { $this->connect(); $query = $this->connection->query(query("get_banned"), array($id)); if($query->num_rows() > 0) { $row = $query->result_array(); return $row[0]; } elseif(query('get_ip_banned')) { //check if the ip is banned $query = $this->connection->query(query("get_ip_banned"), array($this->input->ip_address(), time())); if($query->num_rows() > 0) { $row = $query->result_array(); return $row[0]; } else { return false; } } } /** * Get the rank * @param String $value * @param Boolean $isUsername * @return int */ public function getRank($value = false, $isUsername = false) { $this->connect(); if(!$value) { $value = $this->getId(); } elseif($isUsername) { $value = $this->getId($value); } $query = $this->connection->query(query("get_rank"), array($value)); if($query->num_rows() > 0) { $row = $query->result_array(); if($row[0]["gmlevel"] == "") { $row[0]["gmlevel"] = 0; } return $row[0]["gmlevel"]; } else { return 0; } } /** * Check if an username exists * @param String $username * @return Boolean */ public function usernameExists($username) { $this->connect(); $count = $this->connection->from(table("account"))->where(array(column("account", "username") => $username))->count_all_results(); if($count) { return true; } else { return false; } } /** * Get total amount of accounts * @return Int */ public function getAccountCount() { $this->connect(); $query = $this->connection->query("SELECT COUNT(*) as 'total' FROM ".table("account")); $row = $query->result_array(); return $row[0]['total']; } /** * Check if an user id exists * @param Int $id * @return Boolean */ public function userExists($id) { $this->connect(); $count = $this->connection->from(table("account"))->where(array(column("account", "id") => $id))->count_all_results(); if($count) { return true; } else { return false; } } /** * Check if an email exists * @param String $email * @return Boolean */ public function emailExists($email) { $this->connect(); $count = $this->connection->from(table("account"))->where(array(column("account", "email") => $email))->count_all_results(); if($count) { return true; } else { return false; } } /* | ------------------------------------------------------------------- | Setters | ------------------------------------------------------------------- */ public function setUsername($oldUsername, $newUsername) { $this->connect(); $this->connection->where(column("account", "username"), $oldUsername); $this->connection->update(table("account"), array(column("account", "username") => $newUsername)); } public function setPassword($username, $newPassword) { $this->connect(); $this->connection->where(column("account", "username"), $username); if(column("account", "v") && column("account", "s") && column("account", "sessionkey")) { $this->connection->update(table("account"), array( column("account", "v") => "", column("account", "s") => "", column("account", "sessionkey") => "", column("account", "password") => $newPassword ) ); } else { $this->connection->update(table("account"), array(column("account", "password") => $newPassword)); } } public function setEmail($username, $newEmail) { $this->connect(); $this->connection->where(column("account", "username"), $username); $this->connection->update(table("account"), array(column("account", "email") => $newEmail)); } public function setExpansion($username, $newExpansion) { $this->connect(); $this->connection->where(column("account", "username"), $username); $this->connection->update(table("account"), array(column("account", "expansion") => $newExpansion)); } public function setRank($userId, $newRank) { $this->connect(); $this->connection->where(column("account", "id"), $userId); $this->connection->update(table("account_access"), array(column("account_access", "gmlevel") => $newRank)); } /* | ------------------------------------------------------------------- | Getters | ------------------------------------------------------------------- */ public function getId($username = false) { if(!$username) { return $this->id; } else { $this->connect(); $this->connection->select(column("account", "id", true))->from(table("account"))->where(column("account", "username"), $username); $query = $this->connection->get(); if($query->num_rows() > 0) { $result = $query->result_array(); return $result[0]["id"]; } else { //Return id 0 return false; } } } /** * Get the username * @param Int $id * @return String */ public function getUsername($id = false) { if(!$id) { return $this->username; } else { $this->connect(); $this->connection->select(column("account", "username", true))->from(table("account"))->where(array(column("account", "id") => $id)); $query = $this->connection->get(); if($query->num_rows() > 0) { $result = $query->result_array(); return $result[0]["username"]; } else { return "Unknown"; } } } /** * Get the username * @param Int $id * @return String */ public function getInfo($id = false, $fields = "*") { if(!$id) { $id = $this->id; } if($fields != "*" && !is_array($fields)) { $fields = preg_replace("/ /", "", $fields); $fields = explode(",", $fields); $fields = columns("account", $fields); } $this->connect(); $this->connection->select($fields)->from(table("account"))->where(array(column("account", "id") => $id)); $query = $this->connection->get(); if($query->num_rows() > 0) { $result = $query->result_array(); return $result[0]; } else { return false; } } public function getShaPassHash() { return $this->sha_pass_hash; } public function getEmail($id = false) { if($id == false) { return $this->email; } else { // Check if it has been loaded already if(array_key_exists($id, $this->account_cache)) { return $this->account_cache[$id]['email']; } else { $this->connect(); $this->connection->select(column("account", "username", true).','.column("account", "email").','.column("account", "joindate"))->from(table("account"))->where(array(column("account", "id") => $id)); $query = $this->connection->get(); if($query->num_rows() > 0) { $result = $query->result_array(); $this->account_cache[$id] = $result[0]; return $result[0]["email"]; } else { $this->account_cache[$id]["email"] = false; return false; } } } } public function getJoinDate() { return $this->joindate; } public function getLastIp() { return $this->last_ip; } public function getExpansion() { return $this->expansion; } }
Je n'ai pas créé moi même cette partie du site. Mes compétences ne me le permettent pas malheureusement.
Je suis désolé si je ne donne pas les bons fichiers :s
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 17:51
18 juin 2013 à 17:51
Dans la fonction connect, entouré cette partie par un try catch
$this->connection = $this->load->database("account", true);
$this->connection = $this->load->database("account", true);
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 18:49
18 juin 2013 à 18:49
Oui essaye comme sa
A priori j'ai une erreur de syntace et j'arrive pas à comprendre pourquoi.
La ligne en question :
Rappel de la fonction complète :
La ligne en question :
catch (Response.Redirect("maintenance.html"));
Rappel de la fonction complète :
public function connect() { if(empty($this->connection)) { try { $this->connection = $this->load->database("account", true); } catch (Response.Redirect("maintenance.html")); } }
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 18:53
18 juin 2013 à 18:53
Il faut mettre des accolades
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 21:22
18 juin 2013 à 21:22
public function connect()
{
if(empty($this->connection))
{
try
{
$this->connection = $this->load->database("account", true);
}
catch ()
{
Response.Redirect("maintenance.html")
}
}
}
et dans les parenthèses du catch il faut mettre l'exception qui est levé lorsqu'il y a un problème de connexion.
{
if(empty($this->connection))
{
try
{
$this->connection = $this->load->database("account", true);
}
catch ()
{
Response.Redirect("maintenance.html")
}
}
}
et dans les parenthèses du catch il faut mettre l'exception qui est levé lorsqu'il y a un problème de connexion.