Parola Sıfırlama Token Error Sorunu

Joomla 1.5.16 ve üzeri sürümlerde yaşanabilecek sorunlardan bir tanesi de sitenize üye olan kişilerin parolalarını hatırlayamadıkları için kullandıkları parola sıfırlama seçeneği olan “Parolamı Unuttum?” seçeneğini kullanılması sonucu ortaya çıkabilecek olan “Token Error” hatasıdır. 1.5.16 ve üzeri sürümlerde (Joomla 1.5.17 güncel sürüm de dahil) bu sorunu yaşayan kullanıcıların küçük bir kod değişikliği ile bu sorunu aşmaları mümkündür. Özellikle RocketTheme in ürettiği Gantry iskeletini kullandığı temalarda karşılaşılan bu sorunu nasıl aşabileceğinizi sizlerle paylaşmak istiyorum.

Bilindiği gibi hemen her joomla temasında görmeye alıştığımız “html” isimli bir klasör ve içinde joomlanın bazı standart bileşen, modül gibi diğer eklentilerine ait klasörleri görmekteyiz. Bunlar Override denilen yani umursamazlık şeklinde ifade edebileceğimiz ilgili tema üzerinden joomlanın standart yapısından farklı gösterim ve fonksiyonları joomlanın çekirdek kodlarını değiştirmekszin yapabilmezi sağlayan özel bir yapıdır. İşte bu yapı dahilinde eğer temanıza ait ana klasör içinde html isimli bir klasör bulunuyorsa bu klasör içinde “kullanılan_tema/html/com_user/reset/” şeklinde bir klasör görüyorsanız o zaman muhtemel olarak bu başlıkta belirtilen hatayı alıyor olacaksınız. Bu klasörün içinde “confirm.php” isimli dosya ilgili parola sıfırlama işleminin yapıldığı dosyadır.

Eğer temanızda “com_user” isimli bir klasör bulunmuyorsa kullandığınız tema joomlanın standart com_user fonksiyonlarını kullanıyor demektir ki temanıza ait bu bileşenle ilgili bir düzenleme bulunmuyor demektir. Doğal olarak da bu şekilde com_user klasörü içermeyen ve içinde de belirttiğimiz isimde bir dosya barındırmayan temalarda bu hatayı almayacaksınız. Eğer hata alınıyorsa makalenin bundan sonrasını da okumanız çözüm için yeterli olacaktır.

“templates/temanızın-adı/html/com_user/reset/confirm.php” isimli dosyamızı açalım, bu dosyamızda değiştirmemiz gereken fonksiyon yeni bir kullanıcı alanın eklenmiş olmasından kaynaklanıyor. Bu durumda ilgili dosyamızda yapacağımız değişiklik, daha doğrusu ekleyeceğimiz kod şu olacaktır;

<div>
<label for="username" title="::">:</label>
<input id="username" name="username" type="text" size="36" />
</div>

Yukarıdaki kodu confirm.php içine uygun yere aşağıdaki örnekte yer aldığı gibi ekleyeceğiz.

{/<div>

<h1>
<?php echo JText::_('Confirm your Account'); ?>
</h1>

<p>
<?php echo JText::_('RESET_PASSWORD_CONFIRM_DESCRIPTION'); ?>
</p>

<form action="" method="post">
<fieldset>
<legend></legend>

<div>
<label for="username" title="::">:</label>
<input id="username" name="username" type="text" size="36" />
</div>

<div>
<label for="token" title="::">:</label>
<input id="token" name="token" type="text" size="36" />
</div>
<div>
<button type="submit"><?php echo JText::_('Submit'); ?></button>
</div>

</fieldset>
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>

Örneğimizde görüldüğü şekilde kodumuzu uygun yere ekleyip kaydettiğimizde “Token Error” hatası da giderilmiş olacaktır. Bu anlatım joomla resmi sitesinde yer alan dökümanlar sayfasından alınmıştır, orjinal anlatıma da buradan ulaşabilirsiniz.

Kaynak: http://docs.joomla.org/Confirm_password_in_1.5.16

2 Comments

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir