Sunt incepator asa ca as avea nevoie de ajutor(in fine se intelege
Integrare cu SMF
Moderatori: Zamolxe, Moderatori
Integrare cu SMF
As vea sa fac un site care sa aiba si forum dar sa nu fie nevoie sa-si faca cont si pe site si pe forum(si sa mai poata trimite mesaje private direct folosind interfata sitului - sa nu fie nevoit sa intre in forum etc.). Am cautat pe google dar nu am gasit nimic concret.(dar am gasit un site care are implementat asa ceva).
Sunt incepator asa ca as avea nevoie de ajutor(in fine se intelege
Sunt incepator asa ca as avea nevoie de ajutor(in fine se intelege
:)
nu trebuie sa cauti pe google .... pur si simplu cand iti faci cont pe site faci un insert in tabela de useri ai forumului si vezi ce campuri ai acolo si ce valori le dai
Ultima oară modificat Mar Apr 27, 2010 12:10 pm de către sebyku, modificat 1 dată în total.
http://www.ingersidemon.ro pentru doar 100 lei spatiu de reclama. 10.000 afisari zilnice garantate si 5000 vizite.
- Niku02
- Senior Member
- Mesaje: 837
- Membru din: Joi Noi 13, 2008 1:16 pm
- Localitate: Constanta
- Contact:
Folosind baza de date ai forumului , creezi un formular de logare si pe site . + verificarea de pe forum pentru a vedea daca esti logat sau nu . Si cu trimisul mesajelor strategia e cam aceeasi. Iei de pe forum fisierele care se folosesc la trimiterea mesajelor intre usere si le integrezi siteului .
Nu e foarte greu de facut, dar e ceva bataie de cap. Trebuie sa iti bagi nasul prin scriptul ala, si sa intelegi cum functioneaza .
Nu e foarte greu de facut, dar e ceva bataie de cap. Trebuie sa iti bagi nasul prin scriptul ala, si sa intelegi cum functioneaza .
Lucrez la o firma de web design si am un magazin de airsoft .
Eu asa am facut pentru a integra:
La inceputul fisierului:
In functia de creare cont nou:
In functia de login:
Logout:
Schimbare parola:
Daca mai vezi cate un $this->query pe acolo inlocuiesti cu mysql_query. Sper ca te prinzi care sunt variabilele pe care trebuie sa le setezi tu. Eu asa am facut, dar cu o versiune mai veche, nu stiu daca se potriveste totul in noile versiuni.
Succes.
La inceputul fisierului:
Cod: Selectaţi tot
require_once(FORUMPATH.'/SSI.php');
require_once(FORUMPATH.'/Sources/Subs-Auth.php');
require_once(FORUMPATH.'/Sources/Subs-Members.php');
require_once(FORUMPATH.'/Sources/LogInOut.php');
require_once(FORUMPATH.'/Sources/Subs.php');In functia de creare cont nou:
Cod: Selectaţi tot
global $scripturl, $txt, $modSettings, $db_prefix, $context, $sourcedir;
global $user_info, $options, $settings, $func;
$regOptions = array(
'interface' => 'guest',
username' => $row['user'],
'email' => $row['email'],
'realname' => $row['nume'],
'password' => $parola,
'password_check' => $parola,
'check_reserved_name' => true,
'check_password_strength' => true,
'check_email_ban' => true,
'send_welcome_email' => !empty($modSettings['send_welcomeEmail']),
'require' => !empty($modSettings['coppaAge']) && !isset($_POST['skip_coppa']) ? 'coppa' : (empty($modSettings['registration_method']) ? 'nothing' : ($modSettings['registration_method'] == 1 ? 'activation' : 'approval')),
'extra_register_vars' => array(),
'theme_vars' => array(),
);
registerMember($regOptions);
In functia de login:
Cod: Selectaţi tot
(isset($_POST['user'])) ? $username = AddSlashes($_POST['user']) : $username = '';
(isset($_POST['password'])) ? $pwd = AddSlashes($_POST['password']) : $pwd = '';
$sql=mysql_fetch_assoc(mysql_query("SELECT ID_MEMBER, passwd, passwordSalt FROM z_members WHERE memberName='".StripSlashes($username)."'"));
if(!$sql)
die("User not found!");
$hashpass=smf_passgen(StripSlashes($username), StripSlashes($pwd));
if ($sql["passwd"]!=$hashpass[0])
die("Password wrong!");
else
set_smf_cookie($sql["ID_MEMBER"], $hashpass[0], $sql["passwordSalt"]);
function smf_passgen($username, $pwd) {
$passhash = sha1(strtolower($username) . $pwd);
$salt=substr(md5(rand()), 0, 4);
return array($passhash,$salt);
}
function set_smf_cookie($id, $passhash, $salt) {
setLoginCookie(189216000, $id, sha1($passhash . $salt));
}
189216000 e durata in care expira cookies-urile.
Logout:
Cod: Selectaţi tot
function logoutforum(){
global $ID_MEMBER;
$query="DELETE FROM z_log_online WHERE ID_MEMBER ='".$ID_MEMBER."' LIMIT 1";
$resursa=mysql_query($query);
$_SESSION['log_time'] = 0;
// Empty the cookie! (set it in the past, and for ID_MEMBER = 0)
setLoginCookie(-3600, 0);
}
Schimbare parola:
Cod: Selectaţi tot
updateMemberData($row3['ID_MEMBER'], array('validation_code' => '\'\'', 'passwd' => '\'' . sha1(strtolower($row3['memberName']) . $pass) . '\''));
Daca mai vezi cate un $this->query pe acolo inlocuiesti cu mysql_query. Sper ca te prinzi care sunt variabilele pe care trebuie sa le setezi tu. Eu asa am facut, dar cu o versiune mai veche, nu stiu daca se potriveste totul in noile versiuni.
Succes.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 21 vizitatori
