Witam, teraz coś z wyższej półki
Moje forum będzie powiązane z galerią filmów i obrazów:
http://mar1986.nazwa.pl/YouPHPTube-master/
http://www.mar1986.nazwa.pl/piwigo/
Chciałbym zrobić aby przy tworzeniu użytkownika forum taki sam użytkownik o takim samym loginie, haśle, e-mailu został utworzony także w bazach danych na tych dwóch portalach
Czy tak się da :
? Strzelam ze się da to zrobić, trzeba tylko w skrypcie rejestracji forum dodać odniesienia do baz danych tych dwóch portali ? Tak sobie filozofuje, ale nie wiem na ile to jest wykonalne, nie mówiąc o tym jak to zrobić
Da się, musisz połączyć baze danych do tych 2 "portali, albo przynajmiej kolumnę odpowiadającą za użytkowników.
a mógłby ktoś poinstruować ? podam wszystkie dane jakie są potrzebne
znajdź zwykły skrypt logowania i go przerób pod siebie
chyba rejestracji
i czemu znajdź, przecież skrypty są w skrypcie forum, trzeba je zmodyfikować
napisałem ten temat dlatego, że nie wiem jak mam to zrobić, jakbym to wiedział, to bym na forum nie pisał
nie wiem więc poprosiłem na forum o pomoc
mój skrypt na stronie(nie mybb) na logowanie wygląda tak:
Kod PHP:
<?php
session_start();
/**
* Formularz oraz skrypt logowania
* @author Sobak
* @package User System
*/
require 'header.php'; // Dołącz początkowy kod HTML
require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
/**
* SKRYPT LOGOWANIA
*/
require_once 'user_class.php'; // Dołączamy rdzeń systemu użytkowników
// Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
$login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
$pass = mysql_real_escape_string($_POST['pass']);
if ($_POST['send'] == 1) {
// Sprawdź, czy wszystkie pola zostały uzupełnione
if (!$login or empty($login)) {
die ('<p class="error">Wypełnij pole z loginem!</p>');
}
if (!$pass or empty($pass)) {
die ('<p class="error">Wypełnij pole z hasłem!</p>');
}
$pass = user::passSalter($pass); // Posól i zahashuj hasło
// Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
$userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
if ($userExists[0] == 0) {
// Użytkownik nie istnieje w bazie
echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
}
else {
// Użytkownik istnieje
$user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
// Przypisz pobrane dane do sesji
$_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
header( "refresh:2;url=index.php" );
}
}
else {
/**
* FORMULARZ LOGOWANIA
*/
?>
<form method="post" action="">
<label for="login">Login:</label>
<input type="text" name="login" maxlength="32" id="login" />
<label for="pass">Hasło:</label>
<input type="password" name="pass" maxlength="32" id="pass" /><br />
<input type="hidden" name="send" value="1" />
<input type="submit" value="Zaloguj" />
</form>
<?php
}
require 'footer.php'; // Dołącz końcowy kod HTML
?>
Jak to nie daje? Masz praktycznie gotowy skrypt na logowanie.
i po co mi to ? ja potrzebuje zmodyfikować skrypt rejestracji na forum, podłączyć go do dwóch pozostałych portali
nie potrzebuje skryptu pod logowanie, do czego niby mi on potrzebny ? co mam sobie z tym zrobić
No to pokaż co zrobiłeś do tej pory sam, gotowego rozwiązania nie udostępni ci nikt.
Możemy cie jedynie nakierować
tę modyfikację rejestracji lepiej zrobić w skrypcie, czy w bazie danych ?
gdzie w mybb forum znajdziemy skrypt odpowiedzialny za rejestrowanie nowych użytkowników ?
template
member_register
ale tutaj nie widzę kodu odpowiedzialnego za zapis w bazie danych użytkownika, gdzie go znajdę ? w którym szablonie ?
<html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->registration}</title>
{$headerinclude}
<script type="text/javascript" src="{$mybb->asset_url}/jscripts/validate/jquery.validate.min.js?ver=1804"></script>
</head>
<body>
{$header}
<form action="member.php" method="post" id="registration_form"><input type="text" style="visibility: hidden;" value="" name="regcheck1" /><input type="text" style="visibility: hidden;" value="true" name="regcheck2" />
{$regerrors}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->registration}</strong></td>
</tr>
<tr>
<td width="50%" class="trow1" valign="top">
<fieldset class="trow2">
<legend><strong>{$lang->account_details}</strong></legend>
<table cellspacing="0" cellpadding="{$theme['tablespace']}" width="100%">
<tr>
<td colspan="2"><span class="smalltext"><label for="username">{$lang->username}</label></span></td>
</tr>
<tr>
<td colspan="2"><input type="text" class="textbox" name="username" id="username" style="width: 100%" value="{$username}" /></td>
</tr>
{$passboxes}
<tr>
<td width="50%" valign="top"><span class="smalltext"><label for="email">{$lang->email}</label></span></td>
<td width="50%" valign="top"><span class="smalltext"><label for="email2">{$lang->confirm_email}</label></span></td>
</tr>
<tr>
<td width="50%" valign="top"><input type="text" class="textbox" name="email" id="email" style="width: 100%" maxlength="50" value="{$email}" /></td>
<td width="50%" valign="top"><input type="text" class="textbox" name="email2" id="email2" style="width: 100%" maxlength="50" value="{$email2}" /></td>
</tr>
<tr>
<td colspan="2" style="display: none;" id="email_status"> </td>
</tr>
{$hiddencaptcha}
</table>
</fieldset>
{$requiredfields}
{$customfields}
{$referrer}
{$regimage}
{$questionbox}
</td>
<td width="50%" class="trow1" valign="top">
<fieldset class="trow2">
<legend><strong>{$lang->account_prefs}</strong></legend>
<table cellspacing="0" cellpadding="{$theme['tablespace']}" width="100%">
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="allownotices" id="allownotices" value="1" {$allownoticescheck} /></td>
<td valign="top"><span class="smalltext"><label for="allownotices">{$lang->allow_notices}</label></span></td>
</tr>
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="hideemail" id="hideemail" value="1" {$hideemailcheck} /></td>
<td valign="top"><span class="smalltext"><label for="hideemail">{$lang->hide_email}</label></span></td>
</tr>
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="receivepms" id="receivepms" value="1" {$receivepmscheck} /></td>
<td valign="top"><span class="smalltext"><label for="receivepms">{$lang->receive_pms}</label></span></td>
</tr>
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="pmnotice" id="pmnotice" value="1"{$pmnoticecheck} /></td>
<td valign="top"><span class="smalltext"><label for="pmnotice">{$lang->pm_notice}</label></span></td>
</tr>
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="pmnotify" id="pmnotify" value="1" {$pmnotifycheck} /></td>
<td valign="top"><span class="smalltext"><label for="pmnotify">{$lang->email_notify_newpm}</label></span></td>
</tr>
<tr>
<td valign="top" width="1"><input type="checkbox" class="checkbox" name="invisible" id="invisible" value="1" {$invisiblecheck} /></td>
<td valign="top"><span class="smalltext"><label for="invisible">{$lang->invisible_mode}</label></span></td>
</tr>
<tr>
<td colspan="2"><span class="smalltext"><label for="subscriptionmethod">{$lang->subscription_method}</label></span></td>
</tr>
<tr>
<td colspan="2">
<select name="subscriptionmethod" id="subscriptionmethod">
<option value="0" {$no_auto_subscribe_selected}>{$lang->no_auto_subscribe}</option>
<option value="1" {$no_subscribe_selected}>{$lang->no_subscribe}</option>
<option value="2" {$instant_email_subscribe_selected}>{$lang->instant_email_subscribe}</option>
<option value="3" {$instant_pm_subscribe_selected}>{$lang->instant_pm_subscribe}</option>
</select>
</td>
</tr>
</table>
</fieldset>
<br />
<fieldset class="trow2">
<legend><strong><label for="timezone">{$lang->time_offset}</label></strong></legend>
<table cellspacing="0" cellpadding="{$theme['tablespace']}" width="100%">
<tr>
<td><span class="smalltext">{$lang->time_offset_desc}</span></td>
</tr>
<tr>
<td>{$tzselect}</td>
</tr>
<tr>
<td><span class="smalltext">{$lang->dst_correction}</span></td>
</tr>
<tr>
<td>
<select name="dstcorrection">
<option value="2" {$dst_auto_selected}>{$lang->dst_correction_auto}</option>
<option value="1" {$dst_enabled_selected}>{$lang->dst_correction_enabled}</option>
<option value="0" {$dst_disabled_selected}>{$lang->dst_correction_disabled}</option>
</select>
</td>
</tr>
</table>
</fieldset>
{$boardlanguage}
</td>
</tr>
</table>
<br />
<div align="center">
<input type="hidden" name="regtime" value="{$time}" />
<input type="hidden" name="step" value="registration" />
<input type="hidden" name="action" value="do_register" />
<input type="submit" class="button" name="regsubmit" value="{$lang->submit_registration}" />
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#registration_form").validate({
rules: {
username: {
required: true,
minlength: {$mybb->settings['minnamelength']},
maxlength: {$mybb->settings['maxnamelength']},
remote: {
url: "xmlhttp.php?action=username_availability",
type: "post",
dataType: "json",
data:
{
my_post_key: my_post_key
},
},
},
email: {
required: true,
email: true,
},
email2: {
required: true,
email: true,
equalTo: "#email"
},
},
messages: {
username: {
minlength: "{$lang->js_validator_username_length}",
maxlength: "{$lang->js_validator_username_length}",
},
email: "{$lang->js_validator_invalid_email}",
email2: "{$lang->js_validator_email_match}",
},
errorPlacement: function(error, element) {
if(element.is(':checkbox') || element.is(':radio'))
error.insertAfter($('input[name="' + element.attr('name') + '"]').last().next('span'));
else
error.insertAfter(element);
}
});
{$validator_extra}
});
</script>
{$footer}
</body>
</html>
W żadnym. Kod za to odpowiedzialny jest w plikach.