PDA

View Full Version : لینک ورود در صفحه اصلی



koorosh4
پنج شنبه 05 تیر 1393, 11:56 صبح
با سلام خدمت جامعه برنامه نویسان متن باز .
میخواستم بپرسم چطور میشه صفحه لاگ این را در گوشه ی صفحه اصلی گذاشت . دیدید همه سایتها گوشه سمت راستشون ورود به سایت هست ؟ نوشته نام کاربری و رمز عبور و باتن ورود هم داره . حالا تو یی گانم باید همون صفحه لاگ این را فراخوانی کرد . اما میخواستم بدونم چطور میشه صفحه لاگ این را در گوشه صفحه اصلی قراربدیم ؟

masato
پنج شنبه 05 تیر 1393, 13:56 عصر
سلام
من اینجوری صدا میزنم


<?php $model = new LoginSite('site'); $this->renderPartial("login",array('model'=>$model)); ?>

SlowCode
جمعه 06 تیر 1393, 11:10 صبح
اینجوری که قالب خراب میشه!
صفحه لاگین به اون بزرگی رو که نمیشه تو صفحه اول گذاشت!
بهتره شما از تگ a استفاده کنی و لینک صفحه ورود رو بهش بدی.
و یا یه فرم درست کنی با دوتا input که درخور اون طرح قالب باشه بعد آدرس صفحه لاگین رو به action فرم میدی.

koorosh4
شنبه 07 تیر 1393, 08:41 صبح
سلام
من اینجوری صدا میزنم


<?php $model = new LoginSite('site'); $this->renderPartial("login",array('model'=>$model)); ?>

این را توی صفحه index.php نوشتم کلا ارور داد .

koorosh4
شنبه 07 تیر 1393, 08:44 صبح
اینجوری که قالب خراب میشه!
صفحه لاگین به اون بزرگی رو که نمیشه تو صفحه اول گذاشت!
بهتره شما از تگ a استفاده کنی و لینک صفحه ورود رو بهش بدی.
و یا یه فرم درست کنی با دوتا input که درخور اون طرح قالب باشه بعد آدرس صفحه لاگین رو به action فرم میدی.

اونکه میگی را نمیدونم چیه . اما اینو میذارم توی صفحه index.php فقط قالب سایت میاد و فریم های فراخوانی شده نشون داده نمیشن . چون گفتن با ایجاد فریم میشه مشکلم را حل کنم . حتی اگه صفحه بزرگتر هم باشه فریم از اسکرول بار استفاده میکنه .
<frameset cols="50%,50%">
<frame src="https://developer.mozilla.org/en/HTML/Element/iframe" />
<frame src="https://developer.mozilla.org/en/HTML/Element/frame" />
</frameset>
لطفا بیشتر راهنمایی کنید

MMSHFE
شنبه 07 تیر 1393, 09:09 صبح
از فریم ست استفاده نکنید چون SEO Score شما رو خراب میکنه. شما میتونید دو صفحه داشته باشین: یکی views/site/login.php و یکی دیگه views/site/_login.php و توی صفحه login.php صفحه کامل و مستقل لاگین رو طراحی کنید و توی صفحه login.php_ هم فقط کد HTML فرم رو بگذارین و با کد زیر توی فایل views/site/index.php صداش بزنید:

$this->renderPartial('_login', array('model'=>new LoginForm));

koorosh4
شنبه 07 تیر 1393, 10:28 صبح
از فریم ست استفاده نکنید چون SEO Score شما رو خراب میکنه. شما میتونید دو صفحه داشته باشین: یکی views/site/login.php و یکی دیگه views/site/_login.php و توی صفحه login.php صفحه کامل و مستقل لاگین رو طراحی کنید و توی صفحه login.php_ هم فقط کد HTML فرم رو بگذارین و با کد زیر توی فایل views/site/index.php صداش بزنید:

$this->renderPartial('_login', array('model'=>new LoginForm));

الان این کد را دادم . اما رو کامندش کلیک میکنم میگه پیدا نشد .
<html>
</style>
</head>
<body>
<form action="http://localhost/ddd12/protected/views/site/login.php" method="post">
<label for="user">name:</label><br />
<input name="username" id="user" type="text" maxlength="255" /><br /><br />
<label for="pass">pass:</label><br />
<input name="password" id="pass" type="password" maxlength="255" /><br /><br />
<input type="hidden" name="check" value="sended" />

<div class="row buttons">
<?php echo CHtml::submitButton('Login'); ?>
</div>
</form>
</body>
</html>
البته کدی که فرمودید هم توی ایندکس گذاشتم. این ارور را میده
Forbidden

You don't have permission to access /ddd12/protected/views/site/login.php on this server.

MMSHFE
شنبه 07 تیر 1393, 11:39 صبح
اگه با لینوکس کار میکنید، مجوزهای فایلها رو بررسی کنید.

koorosh4
شنبه 07 تیر 1393, 11:40 صبح
اگه با لینوکس کار میکنید، مجوزهای فایلها رو بررسی کنید.

نه ویندوز هست . wamp نصب کردم و دارم با اون کار میکنم . ادیتور منم notpad++ هست

MMSHFE
شنبه 07 تیر 1393, 11:44 صبح
تیم ویور میدین؟ مشکل باید از جای دیگه باشه چون شعور ویندوز در حد چک کردن پرمیشنها نیست.

koorosh4
شنبه 07 تیر 1393, 12:10 عصر
برای اونایی که نمیدونن چه اتفاقی افتاد میذارم که کد ها را ببینن

1- protected\views\layouts/main.php

این کد برای منو ها که 3 منو را لینکشون را تعریف کردن


<li class="current"><a href="<?php echo Yii::app()->homeUrl; ?>">صفحه اصلی</a></li>
<li><a href="<?php echo Yii::app()->createUrl('site/' . (Yii::app()->user->isGuest ? 'login' : 'logout')); ?>"><?php echo (Yii::app()->user->isGuest ? 'ورود' : 'خروج'); ?></a></li>
<li><a href="<?php echo Yii::app()->createUrl('user/registration'); ?>">ثبت نام</a></li>

2. در این مسیر protected\views\site/index.php این کد را وارد میکنیم


<html>
<body>
<div>
<?php
$this->renderPartial('_login', array('model'=>new LoginForm));
?>
</body>
</html>

3. در مسیر قبلی (protected\views\site/)فایلی ایجاد شد با نام _login.php (یعنی قبل از لاگ این یک آندرلاین گذاشتن که با فایل اصلی لاگ این یکی نشه) و این هم کد داخلش


<html>
</style>
</head>
<body>
<?php if(Yii::app()->user->isGuest) : ?>
<form action="<?php echo Yii::app()->createUrl('site/login'); ?>" method="post">
<label for="user">name:</label><br/>
<input name="LoginForm[username]" id="username" type="text" maxlength="255" /><br /><br />
<label for="pass">pass:</label><br />
<input name="LoginForm[password]" id="pass" type="password" maxlength="255"/><br/><br />
<input type="hidden" name="check" value="sended"/>
<div class="row buttons">
<?php echo CHtml::submitButton('Login'); ?>
</div>
<?php else: ?>
<?php //echo Yii::app()->user->username; ?>
<?php echo Yii::app()->user->id; ?>
<?php echo ('آی پی شما :');?>
<?php echo getenv("remote_addr"); ?>
<br>
<?php echo CHtml::link('خروج', array('site/logout')); ?>
<?php endif; ?>
</form>
</body>
</html>

با تشکر از راهنمایی دوستان . موفق و پیروز باشید

koorosh4
سه شنبه 10 تیر 1393, 10:36 صبح
شاید اون کد نا خوانا باشه . کد را توی word گذاشتم براتون تا راحت تر در دسترس باشه120649

MMSHFE
سه شنبه 10 تیر 1393, 12:59 عصر
(یعنی قبل از لاگ این یک آندرلاین گذاشتن که با فایل اصلی لاگ این یکی نشه) و این هم کد داخلش
البته علت درج Underscore قبل از اسم فایل، این نیست. کلاً توی Yii نام فایلهای View غیر مستقل (اونهایی که داخل یک ویوی دیگه با renderPartial درج میشن) رو با _ شروع میکنیم که راحتتر بتونیم پیداشون کنیم و تشخیصشون بدیم.