Nabend,
ich suche nun schon seit einigen Tagen jemanden der mir helfen kann meine externe Registration fürs WBB3 auf das WBB4 anzupassen..
Ich habe leider keine Ahnung wie ich das machen soll :wacko:
Wäre cool wenn es hier jemanden gibt der mir dabei vielleicht helfen würde oder direkt anpasst
PHP
<?php
// define relative dir to wbb installation
if (!defined('RELATIVE_WBB_DIR')) define('RELATIVE_WBB_DIR', '../forum/');
// wbb imports
require_once(RELATIVE_WBB_DIR.'global.php');
// wcf imports
require_once(WCF_DIR.'lib/data/user/UserEditor.class.php');
require_once(WCF_DIR.'lib/data/mail/Mail.class.php');
require_once(WCF_DIR.'lib/system/language/Language.class.php');
require_once(WCF_DIR.'lib/data/image/captcha/Captcha.class.php');
require_once(WCF_DIR.'lib/system/auth/UserAuth.class.php');
class Register {
public $user = null;
public $username = '';
public $email = '';
public $confirmEmail = '';
public $password = '';
public $confirmPassword = '';
public $captchaID = 0;
public $captchaString = '';
public $captcha;
public $errorField = '';
public $errorText = '';
public $successText = '';
//Neue Instanz der Klasse, die den Ablauf steuert.
public function __construct() {
// Benutzer ist bereits angemeldet, "userID" also ungleich "0" -> Wir geben den Benutzernamen aus und stoppen den Ablauf hier
if (WCF::getUser()->userID != 0) {
echo '<p>Du bist angemeldet als <strong>'.WCF::getUser()->username.'</strong>.</p>';
exit;
}
// Keine Daten übergeben -> Wir geben unser Registrierungsformular aus
if (!count($_POST)) {
// Neues Captcha erstellen, sofern es noch nicht (richtig) eingegeben wurde
if (REGISTER_USE_CAPTCHA && !WCF::getSession()->getVar('captchaDone')) {
$this->captchaID = Captcha::create();
}
// Formular anzeigen
$this->showForm();
}
// Daten übergeben -> Wir lesen diese mit readParameters() ein
else {
$this->readParameters();
}
}
//Lesen der eingegebenen Daten.
public function readParameters() {
// Wir lesen den Benutzernamen aus den übergebenen Daten aus und entfernen unnötige Leerzeichen
if (isset($_SESSION['username'])) $this->username = StringUtil::trim($_SESSION['username']);
// Wir lesen die eMail-Adresse ein, welches der Benutzer eingegeben hat und entfernen unnötige Leerzeichen
if (isset($_POST['email'])) $this->email = StringUtil::trim($_POST['email']);
if (isset($_POST['confirmEmail'])) $this->confirmEmail = StringUtil::trim($_POST['confirmEmail']);
// Wir lesen das Kennwort aus, welches der Benutzer eingegeben hat
if (isset($_POST['password'])) $this->password = $_POST['password'];
if (isset($_POST['confirmPassword'])) $this->confirmPassword = $_POST['confirmPassword'];
// Wir lesen relevante Daten zum Captcha aus
if (isset($_POST['captchaID'])) $this->captchaID = intval($_POST['captchaID']);
if (isset($_POST['captchaString'])) $this->captchaString = StringUtil::trim($_POST['captchaString']);
// Nun prüfen wir die Daten, geben einen Fehler aus oder registrieren den Benutzer
$this->checkRegisterData();
}
//Daten des Benutzers prüfen.
public function checkRegisterData() {
// Wir prüfen die Daten in einem try/catch-Block, um den Ablauf durch Exceptions unterbrechen zu können
try {
// Prüfen, ob kein Benutzername eingegeben wurde
if (empty($this->username)) {
throw new UserInputException('username');
}
// Prüfen, ob der Benutzername gültig ist
if (!UserUtil::isValidUsername($this->username)) {
throw new UserInputException('username', 'notValid');
}
// Prüfen, ob der Benutzername zur Verfügung steht
if (!UserUtil::isAvailableUsername($this->username)) {
throw new UserInputException('username', 'notUnique');
}
// Prüfen, ob keine eMail-Adresse eingegeben wurde
if (empty($this->email)) {
throw new UserInputException('email');
}
// Prüfen, ob die eMail-Adresse gültig ist
if (!UserUtil::isValidEmail($this->email)) {
throw new UserInputException('email', 'notValid');
}
// Prüfen, ob die eMail-Adresse zur Verfügung steht
if (!UserUtil::isAvailableEmail($this->email)) {
throw new UserInputException('email', 'notUnique');
}
if (StringUtil::toLowerCase($this->email) != StringUtil::toLowerCase($this->confirmEmail)) {
throw new UserInputException('confirmEmail', 'notEqual');
}
if (empty($this->password)) {
throw new UserInputException('password');
}
// Prüfen, ob das Kennwort erneut richtig eingegeben wurde
if ($this->password != $this->confirmPassword) {
throw new UserInputException('confirmPassword', 'notEqual');
}
// Captcha auf Fehler überprüfen
if (REGISTER_USE_CAPTCHA && !WCF::getSession()->getVar('captchaDone')) {
$this->captcha = new Captcha($this->captchaID);
$this->captcha->validate($this->captchaString);
}
// Es ist kein Fehler aufgetreten; Wir registrieren den Benutzer, melden ihn an und leiten weiter
$this->doRegister();
}
catch (UserInputException $e) {
$this->errorField = $e->getField();
$this->errorText = 'Es ist ein Fehler aufgetreten. Bitte überprüfe das markierte Eingabefeld.';
$this->showForm();
}
}
public function doRegister() {
$additionalFields['registrationIpAddress'] = WCF::getSession()->ipAddress;
$groupIDs = array();
$addDefaultGroups = true;
if (REGISTER_ACTIVATION_METHOD == 1 || REGISTER_ACTIVATION_METHOD == 2) {
$activationCode = UserRegistrationUtil::getActivationCode();
$additionalFields['activationCode'] = $activationCode;
$addDefaultGroups = false;
$groupIDs = Group::getGroupIdsByType(array(Group::EVERYONE, Group::GUESTS));
}
$this->user = UserEditor::create($this->username, $this->email, $this->password, $groupIDs, array(), $additionalFields, array(), $addDefaultGroups);
WCF::getSession()->changeUser($this->user);
if (REGISTER_ACTIVATION_METHOD == 0) {
$this->successText = 'Du hast deinen Forum Account erfolgreich erstellt!';
}
if (REGISTER_ACTIVATION_METHOD == 1) {
$mail = new Mail( array($this->username => $this->email),
WCF::getLanguage()->get('wcf.user.register.needActivation.mail.subject', array('PAGE_TITLE' => WCF::getLanguage()->get(PAGE_TITLE))),
WCF::getLanguage()->get('wcf.user.register.needActivation.mail',
array('PAGE_TITLE' => WCF::getLanguage()->get(PAGE_TITLE), '$username' => $this->username, '$userID' => $this->user->userID, '$activationCode' => $activationCode, 'PAGE_URL' => PAGE_URL, 'MAIL_ADMIN_ADDRESS' => MAIL_ADMIN_ADDRESS)));
$mail->send();
$this->successText = 'Du wurdest erfolgreich angemeldet! Dir wurde eine eMail mit weiteren Informationen zugesandt.';
}
if (REGISTER_ACTIVATION_METHOD == 2) {
$this->successText = 'Du wurdest erfolgreich angemeldet! Der Administrator wird dein Benutzerkonto aktivieren.';
}
if (REGISTER_ADMIN_NOTIFICATION) {
$language = (WCF::getLanguage()->getLanguageID() != Language::getDefaultLanguageID() ? new Language(Language::getDefaultLanguageID()) : WCF::getLanguage());
$language->setLocale();
// send mail
$mail = new Mail( MAIL_ADMIN_ADDRESS,
$language->get('wcf.user.register.notification.mail.subject', array('PAGE_TITLE' => $language->get(PAGE_TITLE))),
$language->get('wcf.user.register.notification.mail', array('PAGE_TITLE' => $language->get(PAGE_TITLE), '$username' => $this->username)));
$mail->send();
WCF::getLanguage()->setLocale();
}
if (REGISTER_USE_CAPTCHA && !WCF::getSession()->getVar('captchaDone')) {
$this->captcha->delete();
}
WCF::getSession()->unregister('captchaDone');
UserAuth::getInstance()->storeAccessData($this->user, $this->username, $this->password);
$this->showSuccess();
}
public function showSuccess() {
// Weiterleitung setzen
#echo '<meta http-equiv="refresh" content="5;URL=../forum/index.php" />';
echo '<p style="color:#00ff00;font-weight:bold">' . $this->successText . '</p>';
}
public function showForm() {
// Wir prüfen zunächst, ob ein Fehler bekannt ist und geben den Fehlertext hier aus
if (!empty($this->errorText)) {
echo '<p style="color:red;font-weight:bold">' . $this->errorText . '</p>';
}
?>
<form action="forum.php" method="post">
<table align="center" width="450" border="0" cellspacing="1">
<tr><th colspan="2" style="background-color: #222222;">Forum Account Erstellen</th></tr>
<tr><td>Benutzername:</td><td><b><?php echo $_SESSION['username']; ?></b></td></tr>
<tr><td>E-Mail Adresse:</td><td><input name="email" type="text" value="<?php echo $this->email ?>" size="30"<?php if ($this->errorField == 'email') { echo ' style="border:2px solid red"'; } ?> /></td></tr>
<tr><td>E-Mail Adresse Wiederholen:</td><td><input name="confirmEmail" type="text" value="<?php echo $this->confirmEmail ?>" size="30"<?php if ($this->errorField == 'confirmEmail') { echo ' style="border:2px solid red"'; } ?> /></td></tr>
<tr><td>Kennwort:</td><td><input name="password" type="password" value="<?php echo $this->password ?>" size="30"<?php if ($this->errorField == 'password') { echo ' style="border:2px solid red"'; } ?> /></td></tr>
<tr><td>Kennwort Wiederholen:</td><td><input name="confirmPassword" type="password" value="<?php echo $this->confirmPassword ?>" size="30"<?php if ($this->errorField == 'confirmPassword') { echo ' style="border:2px solid red"'; } ?> /></td></tr>
<tr><td>Captcha:</td><td><img id="captchaImage" src="<?php echo RELATIVE_WBB_DIR ?>index.php?page=Captcha&captchaID=<?php echo $this->captchaID ?><?php echo SID_ARG_2ND ?>" width="200" height="60" alt="" /></td></tr>
<tr><td>Sicherheitsabfrage:</td><td><input name="captchaString" type="text" value="<?php echo $this->captchaString ?>" size="30"<?php if ($this->errorField == 'captchaString') { echo ' style="border:2px solid red"'; } ?> /></td></tr>
<tr><td align="right"><input type="submit" value="Absenden"></td><td><input type="reset" value="Abbrechen"></td></tr>
</table>
<input type="hidden" id="captchaID" name="captchaID" value="<?php echo $this->captchaID ?>" />
</form>
<?php
}
}
new Register;
}
?>
Alles anzeigen
Gruß, Zunno