beh9am 96 ارسال شده در اردیبهشت 94 گزارش بازنشر ارسال شده در اردیبهشت 94 (ویرایش شده) سلام و خسته نباشیدیک اسکریپت دارم که از دیتابیس مطالب رو میخونه و نمایش میده اما آدرس ها با عدد نشون داده میشه یعنی : site.ir/page-53954.htmlمیخوام به جای اعداد عنوان نوشته ها نمایش داده بشهمطالب رو با این کدذها از دیتابیس میخونه که بر اساس id هست :<?phpob_start();include 'dataload.php';/********/ini_set("display_errors","0");ini_set("register_globals","0");/********/$pageid = isset($_GET['pageid'])?intval($_GET['pageid']):'1';$servername = strtolower($_SERVER['SERVER_NAME']);$servername = (substr($servername,0,4) == 'www.')?substr($servername,4):$servername;/*//visit$res=mysql_query("update `amar` set `count`=count+1 where `date`='".date("Y-m-d")."' limit 1;");if(mysql_affected_rows()!=1){mysql_query("INSERT INTO `amar` (`id`, `date`, `count`, `click`) VALUES (NULL, '".date("Y-m-d")."', '1', '0');");}*/#------if(preg_match('#([a-z0-9-]+?)\.site\.ir#i', $servername, $blogname)){if(isset($_GET['id']) ){$res=mysql_query("select id,username from `feeds` where `id`=(select fid from `news_tmp` where `id`=$_GET[id]) limit 1");if(mysql_num_rows($res)>0){list($id,$username)=mysql_fetch_array($res);if($blogname[1]!=$username){ Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://$username.site.ir/page-$_GET[id].html" ); exit;}}}$username=$blogname[1];$res=mysql_query("select id,title from `feeds` where `username`='{$blogname[1]}'");if(mysql_num_rows($res)>0){list($id,$title)=mysql_fetch_array($res);$res=mysql_query("select `title`,`text`,`date`,`keywords` from `news_tmp` where `fid`=$id ".(isset($_GET['id'])?"and `id`=$_GET[id] ":'')." /*order by `date` DESC*/");while($row=mysql_fetch_assoc($res)){if(isset($_GET['id']))$title=$row['title'];?> <div class="post-title"> <div class="post-title-space"> <h1><span lang="fa"><?=$row['title'];?></span></h1> </div> <div id="post-content"> <div class="post-content-text"> <div class="style2"> <span lang="fa"><?=$row['text'];?></span> </div> <div class="clear"></div> <div class="clear"></div> </div> </div> <div id="post-footer"></div> </div><?}}else{echo 'user not found in feed.';}}else{if(isset($_GET['id']) ){$res=mysql_query("select id,username from `feeds` where `id`=(select fid from `news_tmp` where `id`=$_GET[id]) limit 1");if(mysql_num_rows($res)>0){list($id,$username)=mysql_fetch_array($res);Header( "HTTP/1.1 301 Moved Permanently" );Header( "Location: http://$username.site.ir/page-$_GET[id].html" );exit;}}$res=mysql_query("select `title`,`id` from `news_tmp` order by `date` DESC limit 200");if(mysql_num_rows($res)>0){echo '<ul>';while($row=mysql_fetch_assoc($res)){echo "<li><a href=\"page-$row[id].html\" target=\"_blank\">$row[title]</a></li>\n";}echo '</ul>';}echo 'user not found.';}$out_html=ob_get_clean();include 'tmp.php';?>چجوری میتونم کاری کنم که بر اساس title باشه آدرس ها یعنی site.ir/page-onvane-neveshteجدول های دیتابیس هم اینه :میشه اینکارو کرد ؟تشکر ویرایش شده اردیبهشت 94 توسط beh9am نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در اردیبهشت 94 گزارش بازنشر ارسال شده در اردیبهشت 94 مطالب شما بر اساس شماره آی دی هاشون شناخته شده اگر با عنوان هم لینک بسازید به 404 می خوره و پیغام خطا می دهاول باید ساختار پیوند یکتاتون رذو به چیزی که می خواهید تبدیل کنید (در اکشن فرم ذخیره مطالب) و برای اینکار باید از عناوین نامک بسازید که فاصله ها حذف بشند و نامک ها را در یک ستون جدول دیتابیس ذخیره کنید و در اکشنتون هم باید یک کوئری اجرا کنید تا تمام نامک ها مقایسه بشند و دز صورت تکراری بودن بهش یک عدد اضافه کنه وگرنه پیوندهاتون روی هم قرار می گیرند و در نهایت اگر فرض کنیم ستون نامکهاتون نامش slug باشه در کدتون بجای page-$row[id].htmlباید بگذارید page-$row[slug].htmlو کوئریتون هم اینطوری می شه به عنوان مثال $res=mysql_query("select `title`,`id` from `news_tmp` order by `date` DESC limit 200");می شه$res=mysql_query("select `title`,`slug`,`id` from `news_tmp` order by `date` DESC limit 200"); 3 نقل قول لینک به ارسال
beh9am 96 ارسال شده در اردیبهشت 94 مالک گزارش بازنشر ارسال شده در اردیبهشت 94 مطالب شما بر اساس شماره آی دی هاشون شناخته شده اگر با عنوان هم لینک بسازید به 404 می خوره و پیغام خطا می دهاول باید ساختار پیوند یکتاتون رذو به چیزی که می خواهید تبدیل کنید (در اکشن فرم ذخیره مطالب) و برای اینکار باید از عناوین نامک بسازید که فاصله ها حذف بشند و نامک ها را در یک ستون جدول دیتابیس ذخیره کنیدو در اکشنتون هم باید یک کوئری اجرا کنید تا تمام نامک ها مقایسه بشند و دز صورت تکراری بودن بهش یک عدد اضافه کنه وگرنه پیوندهاتون روی هم قرار می گیرند و در نهایت اگر فرض کنیم ستون نامکهاتون نامش slug باشه در کدتون بجایpage-$row[id].htmlباید بگذاریدpage-$row[slug].htmlو کوئریتون هم اینطوری می شه به عنوان مثال$res=mysql_query("select `title`,`id` from `news_tmp` order by `date` DESC limit 200");می شه$res=mysql_query("select `title`,`slug`,`id` from `news_tmp` order by `date` DESC limit 200");تشکر جناب فخارپس برای چیزی که میخواستم باید از پایه همه چی تغییر کنه که خوب من اونقدرا کدنویسی بلد نیستم که بتونمفکر کنم راحت ترش این باشه که آیدی + عنوان در url باشه درسته ؟یعنی الان که اینطوریه :site.ir/page-53954.htmlبشه اینجوری :site.ir/53954-post-title.htmlاینجوری اگر بخوام فقط تغییرات در نوع فراخوانی کافیه ؟یعنی اینجوری بشه :page-$row[id]-[title].htmlالبته گذاشتم اما کار نکرد نقل قول لینک به ارسال
beh9am 96 ارسال شده در اردیبهشت 94 مالک گزارش بازنشر ارسال شده در اردیبهشت 94 راستی اینم کدهای htaccess فکر کنم اینا هم باید تغییر کنندRewriteEngine On#RewriteBase /RewriteRule page-([0-9]*).html ./index.php?id=$1 [L]RewriteRule ^list/(.*)-([0-9]*)\.html$ ./search.php?key=$1&start=$2 [L]RewriteRule ^list/(.*)\.html$ ./search.php?key=$1 [L]Rewriterule ^rss.xml ./rss/rss.php### EXPIRES# month A2592000, week A604800, day A86400, hour A3600,15 min A900ExpiresActive OnExpiresDefault A86400ExpiresByType image/x-icon A2592000ExpiresByType application/x-javascript A2592000ExpiresByType text/css A2592000ExpiresByType image/gif A604800ExpiresByType image/png A604800ExpiresByType image/jpeg A604800ExpiresByType text/plain A604800ExpiresByType application/x-shockwave-flash A604800ExpiresByType video/x-flv A604800ExpiresByType application/pdf A604800ExpiresByType text/html A900 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در اردیبهشت 94 گزارش بازنشر ارسال شده در اردیبهشت 94 هر تغییری بخواهید بدید مشمول همون مراحله اینکه در وردپرس شما می تونید چنین تغییراتی رو به راحتی اعمال کنید بخاطر اینه که وردپرس قبلا تمام شکلهای مختلفش را پیش بینی کرده و کد نویسی های لازمش رو انجام داده 1 نقل قول لینک به ارسال
beh9am 96 ارسال شده در اردیبهشت 94 مالک گزارش بازنشر ارسال شده در اردیبهشت 94 هر تغییری بخواهید بدید مشمول همون مراحله اینکه در وردپرس شما می تونید چنین تغییراتی رو به راحتی اعمال کنید بخاطر اینه که وردپرس قبلا تمام شکلهای مختلفش را پیش بینی کرده و کد نویسی های لازمش رو انجام دادهآهانتشکربه همین شکلی که گفتم هم نمیشه ؟چون گفتید مطالب با آیدی فراخوانی میشه در این چیزی که گفتم id هم در آدرس بار هست فکر کنم باید بشهالان خودم تونستم با htacceess یه کارایی کنم که ریدایرکت بشه اما 404 میده نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .