PDA

Zobacz pełną wersję : Probem z rejestracja uzytkowników



adlibitum
31-07-2009, 11:01
Witam.
Mam taki dziwny problem podczas rejestracji.
Formularz słuzacy do rejestracji uzytkownika działa tylko nie pokazuje walidacji.
W momenci gdy wpisze np nieodpowiedni email lub za krotkie hasło strona przeładowuje sie i nic sie nie dzieje - nie pokazuje błedu, taka samo sprawa ma sie gdy wpisze poprawne dane. rejestracja przechodzi poprawnie wskakuje strona główna ale bez komunikatu : ze powinienes kliknac w link który został wysłany na twojego maila ........ itp...
prosze o pomoc co moze byc nie tak.
dziekuje

Bazyl
31-07-2009, 11:05
Pozycja w szablonie <jdoc:include type="message" />

Masz ją?

adlibitum
31-07-2009, 13:07
faktycznie nie miałem, pomogło połowicznie ,teraz pojawia sie komunikat dotyczacy zarejestrowania i ze trzeba aktywowac link w poczcie.ale nadal nic sie nie dzieje przy rejestracji.jak np wpisze email w nieodpowiedniej formie walidacja nic nie zgłasza tylko stronka z formularzem rejestracyjnym sie przeładowuje i nic.a powinien sie pojawiac tez jakis komunikat??dzieki za pomoc

Bazyl
31-07-2009, 14:32
Sprawdzałeś pod standardowym szablonem?

adlibitum
01-08-2009, 11:35
sprawdzałem ze standardowym i tam jak jest cos zle wprowadzone to opis (label) do danego pola(inputbox) wyswietla sie na czerwono.
a w moimtemplacie tak sie nie dzieje, wykonuje poprawna operacje tylko chyba nie podswietla tekstu na czerowno
pomocy

adlibitum
03-08-2009, 18:35
chcociaz informacja w którym miejscu znajduje sie kod odpowiedzialny za walidacje pol rejestracji uzytkownika??dzieki z ógry za pomoc

zwiastun
03-08-2009, 19:15
a to tak trudno znaleźć komuś, kto chce w tym kodzie grzebać?
components/com_user

adlibitum
03-08-2009, 23:28
pomocy, bo rece mi juz opadaja, grzebie w tych plikach i nic...jak zrobic wyswietlajace sie komuniaty podczas rejestracji uzytkownika.Chodzi mi o walidacja pól, aby wyrzucało komunikaty np o błednym emailu.Korzystam z joomla 1.5 i mam jakiegos temlata, który juz sporo mordowałem i nie chce z niego schodzic... rejestracja działa poprawnie, tylko jak wpisze błedne dane to sie nic nie dzieje po nacisnieciu przycisku zarejestruj.prosze o pomoc

Bazyl
03-08-2009, 23:59
W beez masz wszystko...

http://wiki.joomla.pl/Zrozumie%C4%87_koncepcj%C4%99_podmiany

Jola
04-08-2009, 02:36
Witam,
widzę trzy możliwości:
1. zmieniałeś coś w pliku
components/com_user/views/register/tmpl/default.php
2. w Twoim szablonie zmieniałeś coś w pliku
templates/twoj_szablon/html/com_user/register/default.php
3. od początku plik z 2 punktu powoduje problem z walidacją
Jeśli przeczytałeś to, co polecił Ci @bazyl, to będziesz wiedział, że plik z pt. 2 jest używany zgodnie z zasadą nadpisywania szablonów i jeśli istnieje,
to jest wczytywany zamiast tego w katalogu components/com_user/views/register/tmpl/default.php
Teraz ważne - jak już odkryjesz który plik jest u Ciebie wczytywany do wyświetlania formularza rejestracji sprawdź jakie klasy są przypisane do znacznika form - powinno być:

<form ...class="form-validate">i do button - powinno być:

<button class="button validate"...Przypisanie tych klas decyduje czy formularz będzie walidowany. :)
Pozdrawiam

adlibitum
04-08-2009, 11:43
Dziekuje bardzo za zainteresowanie moim problemem.

Sprawdziłem i wczytywany u mnie jest plik z pk.1
components/com_user/views/register/tmpl/default.php
a wyglada ona nastepujaco:

---------------------------------
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<script type="text/javascript">
<!--
Window.onDomReady(function(){
document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); } );
});
// -->
</script>

<?php
if(isset($this->message)){
$this->display('message');
}
?>

<form action="<?php echo JRoute::_( 'index.php?option=com_user' ); ?>" method="post" id="josForm" name="josForm" class="form-validate">

<?php if ( $this->params->def( 'show_page_title', 1 ) ) : ?>
<div class="componentheading<?php echo $this->params->get( 'pageclass_sfx' ); ?>"><?php echo $this->escape($this->params->get('page_title')); ?></div>
<?php endif; ?>

<table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
<tr>
<td width="30%" height="40">
<label id="namemsg" for="name">
<?php echo JText::_( 'Name' ); ?>:
</label>
</td>
<td>
<input type="text" name="name" id="name" size="40" value="<?php echo $this->user->get( 'name' );?>" class="inputbox required" maxlength="50" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="usernamemsg" for="username">
<?php echo JText::_( 'User name' ); ?>:
</label>
</td>
<td>
<input type="text" id="username" name="username" size="40" value="<?php echo $this->user->get( 'username' );?>" class="inputbox required validate-username" maxlength="25" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="emailmsg" for="email">
<?php echo JText::_( 'Email' ); ?>:
</label>
</td>
<td>
<input type="text" id="email" name="email" size="40" value="<?php echo $this->user->get( 'email' );?>" class="inputbox required validate-email" maxlength="100" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="pwmsg" for="password">
<?php echo JText::_( 'Password' ); ?>:
</label>
</td>
<td>
<input class="inputbox required validate-password" type="password" id="password" name="password" size="40" value="" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="pw2msg" for="password2">
<?php echo JText::_( 'Verify Password' ); ?>:
</label>
</td>
<td>
<input class="inputbox required validate-passverify" type="password" id="password2" name="password2" size="40" value="" /> *
</td>
</tr>
<tr>
<td colspan="2" height="40">
<?php echo JText::_( 'REGISTER_REQUIRED' ); ?>
</td>
</tr>
</table>
<button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button>
<input type="hidden" name="task" value="register_save" />
<input type="hidden" name="id" value="0" />
<input type="hidden" name="gid" value="0" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
------------------------------------

nic tu nie grzebałem - jeszcze :)

chyba ze moze cos w templacie jest nei tak ??

Jola
04-08-2009, 17:21
Sprawdź czy jest waldiowany formularz kontaktu. (działa na tej samej zasadzie)
Możesz spróbować zastosować technikę nadpisywania szablonów. Z szablonu, w którym działało sprawdzanie formularza przekopiować plik
html/com_user/register/default.php
i z taką ścieżką wstawić do swojego szablonu.
Jeśli to nie zadziała pozostaje tylko przeanalizować twój szablon.
Często się zdarza, że pliki js (wstawione skrypty) użyte jednocześnie się "gryzą" - trzeba zbadać drogą eliminacji (wyłączanie modułów, dodatków czy wpisów), który z nich powoduje kłopoty.
Pozdrawiam

adlibitum
05-08-2009, 08:42
sprawdziłem formularz kontaktowy i równiez nie działą poprawnie zachowuje sie identycznie..

Czy moze to być spowodowane budową templatu??
Nie mam w tym templacie takich katalogów jak html czy javascript jak np w templacie beez.

Moj temlate ma tylko dwa katalogi css i image a plik index wyglada następująco

---------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<?php
if ( $my->id ) initEditor();
?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template_css.css" type="text/css" />
<link rel="shortcut icon" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/favicon.ico"/>

<script type="text/javascript">
function boxes_height()
{
if(document.getElementById('m1') && document.getElementById('m2'))
{
if(document.getElementById('m2').clientHeight>document.getElementById('m1').clientHeight)
{
y = document.getElementById('m2').clientHeight;
document.getElementById('m1').style.height = y + 'px';
}
else
{
y = document.getElementById('m1').clientHeight;
document.getElementById('m2').style.height = y + 'px';
}
document.getElementById('m1').style.visibility = 'visible';
document.getElementById('m2').style.visibility = 'visible';
}

else if(document.getElementById('m2'))
document.getElementById('m2').style.visibility = 'visible';
else if(document.getElementById('m1'))
document.getElementById('m1').style.visibility = 'visible';
}
</script>

</head>

<body onLoad="boxes_height();">


<div id="pagewidth" >
<div id="header">
<div id="logo"></div>
<div id="top2"><jdoc:include type="modules" name="login" style="html"/></div>
<div id="top3"></div>
<div id="top4"></div>
</div>


<?php $Itemid = JRequest::getInt('Itemid'); ?>
<?php if ($Itemid>1) { ?>
<div id="pathway"><jdoc:include type="modules" name="breadcrumb" style="html"/></div>
<?php } ?>

<div id="wrapper2" class="clearfix" >

<div id="twocols" class="clearfix">

<?php if ( $this->countModules('right')) { ?>
<div id="maincol">

<jdoc:include type="message" />
<jdoc:include type="modules" name="add_news" style="table"/>
<?php if (!$this->countModules('user5') || !$this->countModules('user2'))
$one = "_one"; ?>

<?php if ($this->countModules('user2')) { ?>
<div id="m1" class="box_news<?php echo $one; ?>">
<jdoc:include type="modules" name="user2" style="table"/></div>
<?php } ?>
<?php if ($this->countModules('user5')) { ?>
<div id="m2" class="box_news<?php echo $one; ?>">
<jdoc:include type="modules" name="user5" style="table"/></div>
<?php } ?>

<div style="clear:both;"><jdoc:include type="component" style="html"/></div>

</div>
<div id="right">

<jdoc:include type="modules" name="slideshow" style="table"/>

<div id="blue_box">
<jdoc:include type="modules" name="popularne" style="table"/>
</div>
<div id="blue_bottom"></div>

<div id="blue_box2">
<jdoc:include type="modules" name="top" style="table"/>
</div>
<div id="blue_bottom"></div>



<jdoc:include type="modules" name="right" style="table"/>
<div id="grey_bottom"></div>
</div>

<?php }
else {?>
<div id="maincol" style="width:575px;">

<?php if (!$this->countModules('user1') || !$this->countModules('user2'))
$one = "_one"; ?>
<?php if ($this->countModules('user2')) { ?>
<div id="m1" class="box_news_long<?php echo $one; ?>"><jdoc:include type="modules" name="user2" style="table"/></div>
<?php } ?>
<?php if ($this->countModules('user1')) { ?>
<div id="m2" class="box_news_long<?php echo $one; ?>"><jdoc:include type="modules" name="user1" style="table"/></div>
<?php } ?>

<div style="clear:both;"><jdoc:include type="component" style="html"/></div>
</div>
<?php } ?>

</div>

<div id="left">
<div id="leftInner">
<jdoc:include type="modules" name="left" style="table"/>
</div>
</div>
</div>

<div id="border_bottom"></div>
<div id="footer_menu">

</div>

<div id="footer">
<div style="float:left;text-align:left; width:436px;">
stopeczka :)
</div>
<div style="float:right;padding-top:5px;width:300px;text-align:right;">
<jdoc:include type="modules" name="user3" style="xhtml"/>
</div>
</div>
</div>
<jdoc:include type="modules" name="debug" />
</body>

</html>
--------------------------------------------------------------

dzieki
pozdrawiam

Jola
05-08-2009, 21:16
Wygląda na to, że skrypt z pliku index.php nie powoduje kłopotów.
Pozostaje sprawdzenie zainstalowanych dodatków i modułów.
Bez adresu strony nic więcej zrobić nie mogę.
Pozdrawiam

Jola
06-08-2009, 18:54
Witam,
przyczyna jak zwykle bardzo prozaiczna: brak zdefiniowanego stylu w pliku css, odpowiedzialnego za zaznaczenie błędów:

.invalid { border-color: #ff0000; }
label.invalid { color: #ff0000; }
Pozdrawiam

adlibitum
06-08-2009, 22:01
...kurcze przeciez od tego zaczalem sprawdzanie .... :):)dziekuje Ci bardzo bardzo :)