PDA

View Full Version : سوال: کدی برای کوتاه کردن نام کاربری



aali361
دوشنبه 15 شهریور 1389, 18:56 عصر
سلام و خسته نباشید.
دوستان من یه چت روم دارم بعضی افراد گاهی با اسم های طولانی وارد روم میشند و باعث هنگ روم میشم . میخواستم بدونم چه جوری میتونم نام کاربری را محدود کنم مثلا بیشتر از 10 کارکتر قبول نکنه ؟

اینم آدرس چت روم

http://www.bia2chatkon.ir/chat/flashchat.php

sama01
دوشنبه 15 شهریور 1389, 19:29 عصر
خوب در زمان ثبت نام، یکی از مواردی که باید چک کنید اینه که طول رشته هم بین x تا y کاراکتر باشه.

binyaft
دوشنبه 15 شهریور 1389, 19:54 عصر
با کد زیر

if(strlen($username)<11){


}
این مد تا 10 کاراکتر رو قبول میکنه

aali361
دوشنبه 15 شهریور 1389, 20:23 عصر
خوب دوست عزیز میشه این کد رو باید کجا قرار بدی؟

//Login config
'login' => array(
'btn' => 'true', // if false, "Login" button is hidden
'title_bar' => 'true', // if false, title bar is hidden
'theme' => 'macintosh',
'width' => '',//400,
'height' => '',//300,
'username' => array(
'req' => 'false',// if true, message appears if not inputted
'align' => 'right',// 'left' or 'right'
'x_label' => '',
'y_label' => '',
'x_field' => '',
'y_field' => '',
'type' => 'text',//'text' or 'password' (if password, **** appears)
'width' => 150
),
'password' => array(
'req' => 'false',
'align' => 'right',
'x_label' => '',
'y_label' => '',
'x_field' => '',
'y_field' => '',
'type' => 'password',
'width' => 150
),
'lang' => array(
'align' => 'right',
'x_label' => "",
'y_label' => "",
'x_field' => "",
'y_field' => "",
),
'title' => array(
'align' => 'center',
'x_label' => '',
'y_label' => '',
'x_field' => '',
'y_field' => '',
),
),

sama01
دوشنبه 15 شهریور 1389, 20:43 عصر
1.
کدهاتون رو برای نمایش در فروم در تگ php قرار دهید تا خوانا شود. (یک دکمه به نام php بالای قسمت ادیتو وجود داره) لطف کنید پست قبلی رو درست کنید.

2.
این کد شما چه ربطی داره؟

3.
اگر هیچ اطلاعاتی از php ندارید، خود و دیگران را به زحمت نندازید.

aali361
دوشنبه 15 شهریور 1389, 20:57 عصر
مگه فلش چت ها با این زبان برنامه نویسی نشده اند ؟ اگه نشدند پس با چه زبانی هستند تا من سوالام رو در اون قسمت بپرسم؟

sama01
دوشنبه 15 شهریور 1389, 21:18 عصر
مگه من گفتم که سوالاتان را جای دیگری بپرسید؟

ببین.php تقریبا یک زبان برنامه‌نویسی است. بازی نیست که با یه کد مخفی بشه فلان کار رو کرد. ترفند نداره. باید بتونی کد بنویسی.
اگر php بلد نیستید فقط یه کار می‌تونید بکنید و آن اینکه منتظر باشید کسی برای شما کد نویسی کنه.

این‌جا فرومه. جای بحث و تبادل نظر و البته رفع اشکال.
الآن شما (این طور که من برداشت می‌کنم) نمی‌توانید کدهای برنامه‌تان را تحلیل کنید. برای همین هم کدی را این‌جا ارسال کرده‌اید که ربطی به سوال اصلی شما نداره.

شما برید ببینید در زمان ثبت‌نام، اطلاعات به کدام صفحه ارسال می‌شه و در کجای آن صفحه عملیات اعتبار سنجی روی داده‌های ورودی انجام می‌شه. همان‌جا باید محدودیت طول بگذارید که کسی نتونه با username طولانی ثبت نام کنه.

aali361
سه شنبه 16 شهریور 1389, 12:48 عصر
سلام . میشه حالا کمکم کنید تا صفحه ی لوگین رو پیدا کنم

aali361
سه شنبه 16 شهریور 1389, 17:41 عصر
این کد رو از صفحه ی ایندکس برداشتم.
این نیست؟

<?php
error_reporting( E_ALL ^ E_NOTICE );

require_once('inc/smartyinit.php');

//check for install--------------------------------------------------------------------------
$stmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}connections LIMIT 1");
$res = $stmt->process();
if($res == null)
{
Header("Location: install.php");
die;
}
//-------------------------------------------------------------------------------------------
$data = array();

$data['version'] = $GLOBALS['fc_config']['version'];
$data['file_exists'] = file_exists('install.php') || file_exists('install_files');

ChatServer::loadCMSclass();
$cms = $GLOBALS['fc_config']['cms'];
$cmsclass = strtolower(get_class($cms));
$data['is_cms'] = ($cmsclass == 'defaultcms') && (! isset($cms->constArr) );

$data['languages'] = $GLOBALS['fc_config']['languages'];
$data['defaultLanguage'] = $GLOBALS['fc_config']['defaultLanguage'];

$data['is_statelesscms'] = ($cmsclass == 'statelesscms');
$data['adminPassword'] = $GLOBALS['fc_config']['adminPassword'];
$data['moderatorPassword'] = $GLOBALS['fc_config']['moderatorPassword'];
$data['spyPassword'] = $GLOBALS['fc_config']['spyPassword'];

$smarty->assign('data', $data);
$smarty->display('index.tpl');
?>

aali361
سه شنبه 16 شهریور 1389, 17:47 عصر
اینم از login.php برداشتم فکر کنم این باشه

<?php

require_once('init.php');

//@error_reporting(0);
$error = '';

function doLogin($userid) {
global $smarty;
$_SESSION['userid'] = $userid;
include('index.php');
exit;
}

$userid = ChatServer::isLoggedIn();
if($userid != null && ChatServer::userInRole($userid, ROLE_ADMIN))
{
doLogin($userid);
}
else
{
unset($_SESSION['userid']);
}

if(isset($_REQUEST['do'])) {
if(
($userid = ChatServer::login($_REQUEST['login'], $_REQUEST['password']))
&& (ChatServer::userInRole($userid, ROLE_ADMIN) || ChatServer::userInRole($userid, ROLE_MODERATOR))
)
{
doLogin($userid);
}
else
{
unset($_SESSION['userid']);
$error = 'Could not grant admin role for this login and password. '.mysql_error();
}
} else {
unset($_SESSION['userid']);
$_REQUEST['login'] = '';
$_REQUEST['password'] = '';
}

$installed = isInstalled();
if( !$installed )
{
unset($_SESSION['userid']);
$error = 'FlashChat is not installed.';
}

//Assign Smarty variables and load the admin template
$smarty->assign('error',$error);
$smarty->assign('installed',$installed);
$smarty->display('login.tpl');
?>
--------------------
حالا میشه بگید این کدی که دادید رو باید کدوم قسمت بزارم؟
لطفا راهنماییم کنید

sama01
سه شنبه 16 شهریور 1389, 20:03 عصر
دوست عزیز؛
شما باید جلوی ایجاد کاربرانی با نام کاربری طولانی را بگیرید.
برای این کار باید در صفحه‌ای که می‌توان در آن register کرد محدودیت اعمال کنید.

aali361
پنج شنبه 18 شهریور 1389, 18:37 عصر
کسی نبود جواب ما رو بده
--------------------
خوب صفحه ی ریجستر کجاست

xoogle.ir
پنج شنبه 18 شهریور 1389, 18:49 عصر
فکر کنم سایت ایشون اصلا عضویت نداره ....
هرکسی میاد یه نام کاربری انتخاب میکنه و وارد چت میشه

sama01
پنج شنبه 18 شهریور 1389, 21:52 عصر
خوب در همون صفحه، باید username رو چک کنه دیگه
هر جایی که قراره username وارد بشه، باید این کار انجام بشه.

shahriyar3
پنج شنبه 18 شهریور 1389, 22:15 عصر
احتياجي به php نداريد شما
اگر بين كد هاي action script از html استفاده كرده ايد ميتونيد مقدار سايز فيلد user name در اين صفحه كم كنيد!
خيلي سادست

sama01
پنج شنبه 18 شهریور 1389, 22:36 عصر
مگه بین کدهای action script از html استفاده می‌کنند؟

شما باید بررسی سمت سرور را هم انجام دهید. به بررسی‌های سمت کاربر اعتباری نیست. و امکان دور زدن دارند.

در ضمن شما چرا در زمان نمایش، نام کاربری افراد را کوتاه نمی‌کنید.
حالا فرض کنیم که کسی اومده نام کاربری adfasdfkahflaljg'aslg'al;gk'agk را وارد کرده.
خوب شما بیایید و مثلا adfasdfka... را نشان دهید.

shahriyar3
پنج شنبه 18 شهریور 1389, 22:51 عصر
مگه بین کدهای action script از html استفاده می‌کنند؟

شما باید بررسی سمت سرور را هم انجام دهید. به بررسی‌های سمت کاربر اعتباری نیست. و امکان دور زدن دارند.

در ضمن شما چرا در زمان نمایش، نام کاربری افراد را کوتاه نمی‌کنید.
حالا فرض کنیم که کسی اومده نام کاربری adfasdfkahflaljg'aslg'al;gk'agk را وارد کرده.
خوب شما بیایید و مثلا adfasdfka... را نشان دهید.

دوست عزيز
دنبال دادن solution براي ديگران نيستم !!
ايشون مشكلشونو مطرح كردن كه فقط ميخوان تعداد كاراكتر هارو كم كنند منم با توجه به سطح معلوماتشون براشون راه حل مطرح كردم.

aali361
جمعه 19 شهریور 1389, 12:18 عصر
خوب برای ورود به چت روم لازم به ثبت نام نیست . هر کس یک اسم انتخاب میکنه و وارد میشه .
حالا من نفهمیدم از این صحبت هایی که شده چه نتیجه ای باید بگیرم؟

:متفکر::اشتباه:

sama01
جمعه 19 شهریور 1389, 12:34 عصر
خوب من که گفتم:

هر جایی که قراره username وارد بشه، باید این کار انجام بشه.

binyaft
جمعه 19 شهریور 1389, 13:16 عصر
طبق چیزی که دوستان گفتن میشه با html ساخت
اول فیلد username رو در صفحه پیدا کنید و این رو بهش اضافه کنید

maxlength="75"
کد بالا میتونه تا 75 کارکتر رو قبول کنه

شما باید بررسی سمت سرور را هم انجام دهید. به بررسی‌های سمت کاربر اعتباری نیست. و امکان دور زدن دارند.
به نظر من کسی اگر بیاد چت رو برای انتخاب اسم با کاراکتر بیشتر دور بزنه ادم بیکاری هست

xoogle.ir
جمعه 19 شهریور 1389, 13:19 عصر
فیلد یوزرنیمت باید توی فایل login.tpl باشه اون فایل رو باز کن و طبق گفته binyaft عمل کن.
همون کار برای شما و یوزرهات کفایت میکنه

aali361
جمعه 19 شهریور 1389, 15:51 عصر
خوب اینم
login.tpl
حالا اگه بگید کجا باید بزارک که دیگه خیلی باحالید

<?php

require_once('init.php');

//@error_reporting(0);
$error = '';

function doLogin($userid) {
global $smarty;
$_SESSION['userid'] = $userid;
include('index.php');
exit;
}

$userid = ChatServer::isLoggedIn();
if($userid != null && ChatServer::userInRole($userid, ROLE_ADMIN))
{
doLogin($userid);
}
else
{
unset($_SESSION['userid']);
}

if(isset($_REQUEST['do'])) {
if(
($userid = ChatServer::login($_REQUEST['login'], $_REQUEST['password']))
&& (ChatServer::userInRole($userid, ROLE_ADMIN) || ChatServer::userInRole($userid, ROLE_MODERATOR))
)
{
doLogin($userid);
}
else
{
unset($_SESSION['userid']);
$error = 'Could not grant admin role for this login and password. '.mysql_error();
}
} else {
unset($_SESSION['userid']);
$_REQUEST['login'] = '';
$_REQUEST['password'] = '';
}

$installed = isInstalled();
if( !$installed )
{
unset($_SESSION['userid']);
$error = 'FlashChat is not installed.';
}

//Assign Smarty variables and load the admin template
$smarty->assign('error',$error);
$smarty->assign('installed',$installed);
$smarty->display('login.tpl');
?>

xoogle.ir
جمعه 19 شهریور 1389, 16:16 عصر
من با اسمارتی کار نکردم اما فکر نمیکنم این فایل باشه.
آخر همین فایل رو اگه نگاه کنی میاد و فایل login.tpl رو نشون میده شما اون فایل رو باید پیدا کنی بذاری اینجا.
این فایلی که الان گذاشتی احتمالا login.php هست.

aali361
جمعه 19 شهریور 1389, 17:38 عصر
اینه؟


{include file=top.tpl}
<center>

{if $error}
<font color="red">{$error}</font>
{/if}
{if $installed}
<h4>FlashChat Admin Panel Login</h4>
<form name="login" action="login.php" method="post">
<table border="0">
<tr>
<td align="right">login</td>
<td><input type="text" name="login" value=""></td>
</tr>
<tr>
<td align="right">password</td>
<td><input type="password" name="password" value=""></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="do" value="Login"></td>
</tr>
</table>
</form>
{/if}
</center>

{include file=bottom.tpl}

xoogle.ir
جمعه 19 شهریور 1389, 17:53 عصر
آره همینه
اینم از کدی که میخای :



<input type="text" name="login" value="" maxlength="20">


ابنو جایگزین فیلد لاگین کن این کد به کاربر اجازه میده که نامش رو تا 20 کاراکتر انتخاب کنه اگر میخای بیشتر یا کمترش کنی همون عدد 20 رو عوض کن.

aali361
جمعه 19 شهریور 1389, 19:02 عصر
سلام . مرسی دوست عزیز
این کدی که دادی کار کرد . اما راستش این صفح لوگین واسه لوگین چت روم نبود و برای یه جای دیگه بود . شما که واردید از روی این کد بتونید بفهمید صفحه ی لوگین چت روم کدومه


<?php
require_once('inc/common.php');

$id = 'flashchat';

$params = array();

if(isset($_REQUEST['username']) && !isset($_REQUEST['flash_login'])) {
if($_REQUEST['username'] == '__random__') $_REQUEST['username'] = 'user_' . time();
if(!isset($_REQUEST['lang'])) $_REQUEST['lang'] = $GLOBALS['fc_config']['defaultLanguage'];
if(!isset($_REQUEST['password'])) $_REQUEST['password'] = '';
if(!isset($_REQUEST['room'])) $_REQUEST['room'] = 0;

$params = array_merge($params, array(
'login' => $_REQUEST['username'],
'password' => $_REQUEST['password'],
'lang' => $_REQUEST['lang'],
'room' => $_REQUEST['room']
));
}
?>
<html>
<head>
<title>FlashChat v<?php echo $GLOBALS['fc_config']['version']?></title>
<script type="text/javascript">
function showLogger() {
win = window.open("logger.php", "logger", "width=500,height=400,left=0,top=0,location=no,menu bar=no,resizable=yes,scrollbars=no,status=no,toolb ar=no");
win.focus();
}
<?php if($GLOBALS['fc_config']['debug']) {?>showLogger();<?php } ?>
</script>

<script language="JavaScript" type='text/javascript' src="javascript/ActivateFlash.js"></script>
</head>

<body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" scroll="no">
<center><?php echo flashChatTag('100%', '100%', $params)?></center>
</body>
</html>

aali361
دوشنبه 22 شهریور 1389, 13:29 عصر
کسی نبود به این بنده ی خدا کمک کنه

aali361
دوشنبه 22 شهریور 1389, 13:38 عصر
کسی از روی این کد نمیدونه صفحه ی یوزر و پسورد کجاست؟

sama01
دوشنبه 22 شهریور 1389, 14:53 عصر
از روی این کدها، خیر.
در ضمن باید دید نوع ارتباط میان php و flash‌ چگونه است. باید طوری در Php خطا تولید شود که قابل نمایش در flash هم باشد. و این موضوع بستگی به سیستم برنامه نویسی و ارتباط میان این دو دارد.