PDA

View Full Version : راهنمایی برای یه صفحه در چند حالت خاص



shnoit
جمعه 12 مهر 1387, 21:57 عصر
سلام
میخواستم صفحه ای که الان دارم رو به این صورت درست کنم.
به عنوان مثال اسم صفحه news.php هست.
و لینکهای خبر هم به این صورت: news.php?id=1 یا news.php?id=2

1- اگه کاربر آدرس صحیح صفحه رو زد یعنی sitename.com/news.php به صورت اتوماتیک به یه صفحه دیگه ارجاع داده بشه مثلا" sitename.com/news.php?id=archive
2- وقتی لینک خبرها زده شد، خبر رو نشون بده (news.php?id=1 محتوای خبر نشون داده بشه.
3- وقتی لینکی یافت نشد به صفحه sitename.com/news.php?id=error ارجاع داده بشه که مثلا وسط صفحه بگه هیچ رکوردی یافت نشد.
کد php من:



<?php

if ( isset($_GET['id']) )
{
mysql_query ("UPDATE `news` SET visits=visits+1 WHERE `id` = '".intval($_GET['id'])."' ;");
$row_rsNews = mysql_fetch_array(mysql_query ("SELECT * FROM `news` WHERE `id` = '".intval($_GET['id'])."'"));
}
else
{
header("location:./index.php");
exit();
}

?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="css/style.css" rel="stylesheet">
<title> Test </title>
</head>
<body>
<div align="center">
<table border="0" width="500" cellpadding="0" dir="rtl" class="newsbody">
<tr>
<td align="right" id="newstitle"><b>» <?php echo $row_rsNews['title']; ?></b></td>
</tr>
<tr>
<td align="right" dir="rtl"><?php echo nl2br($row_rsNews['short_desc']); ?></td>
</tr>
<tr>
<td align="right" dir="rtl" style="background:#eee" ><?php echo nl2br($row_rsNews['content']); ?></td>
</tr>
<tr>
<td align="left"><?php echo jdate("Y/n/d", $row_rsNews['date']) ?> | بازدیدها: <?php echo $row_rsNews['visits']; ?></td>

</td>

</tr>
</table>

</td>
</tr>
<tr>

</tr>
</table>

</div>
</body>
</html>



با تشکر از دوستان:قلب:

yaqubian
شنبه 13 مهر 1387, 01:47 صبح
دوست عزیز

echo ("<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=sitename.com/news.php?id=archive\">");
کد بالا رو بذارید تو صفحه news.php
صفحتون رو redirect می کنه. تو قسمت content هم می تونید بجای عدد بذارید که همون زمان تاخیره!
موفق باشید

shnoit
شنبه 13 مهر 1387, 10:59 صبح
ممنون از پاسختون دوست عزیز
ولی این چیزی که شما گفتین فقط برای ردیکت صفحه هست همین، فک کنم باید با دستور اینارو انجام داد حالا بقیشو نمیدونم. (من فقط نمیخوام صفحه رو یه راست ردیکت کنم که)



1- اگه کاربر آدرس صحیح صفحه رو زد یعنی sitename.com/news.php به صورت اتوماتیک به یه صفحه دیگه ارجاع داده بشه مثلا" sitename.com/news.php?id=archive
2- وقتی لینک خبرها زده شد، خبر رو نشون بده (news.php?id=1 محتوای خبر نشون داده بشه.
3- وقتی لینکی یافت نشد به صفحه sitename.com/news.php?id=error ارجاع داده بشه که مثلا وسط صفحه بگه هیچ رکوردی یافت نشد.

soheil_ce
شنبه 13 مهر 1387, 14:39 عصر
سلام



<?
if(isset($_GET['id'])
{
$id=$_GET['id'];
//connect
//query where id=$id
if($num_rows==1)
{
//show news
}
else
{
header("Location:news.php?id=error");
exit;
}
}
else
{
header("Location:news.php?id=archive");
exit;
}
?>

shnoit
شنبه 13 مهر 1387, 21:11 عصر
ممنون سهیل جان
ولی نمیدونم چرا با توضیحاتی که گذاشته بودین هم باز ارور داد.
میشه بی زحمت شما این دستورات رو تو کد اصلی قرار بدین. خیلی ممنون

soheil_ce
سه شنبه 16 مهر 1387, 19:32 عصر
خوب چه خطایی میده
در ضمن منکه همه کدها رو جاهاشو مشخص کردم ولی با این حال :



<?
if(isset($_GET['id'])
{
$id=$_GET['id'];
//connect
//query where id=$id
if($num_rows==1)
{
mysql_query ("UPDATE `news` SET visits=visits+1 WHERE `id` = '".intval($_GET['id'])."' ;");
$row_rsNews = mysql_fetch_array(mysql_query ("SELECT * FROM `news` WHERE `id` = '".intval($_GET['id'])."'"));
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="css/style.css" rel="stylesheet">
<title> Test </title>
</head>
<body>
<div align="center">
<table border="0" width="500" cellpadding="0" dir="rtl" class="newsbody">
<tr>
<td align="right" id="newstitle"><b>» <?php echo $row_rsNews['title']; ?></b></td>
</tr>
<tr>
<td align="right" dir="rtl"><?php echo nl2br($row_rsNews['short_desc']); ?></td>
</tr>
<tr>
<td align="right" dir="rtl" style="background:#eee" ><?php echo nl2br($row_rsNews['content']); ?></td>
</tr>
<tr>
<td align="left"><?php echo jdate("Y/n/d", $row_rsNews['date']) ?> |
بازدیدها: <?php echo $row_rsNews['visits']; ?></td>

</td>

</tr>
</table>

</td>
</tr>
<tr>

</tr>
</table>
</div>
</body>
</html>


<?
}
else
{
header("Location:news.php?id=error");
exit;
}
}
else
{
header("Location:news.php?id=archive");
exit;
}
?>


کد خوندن از دیتابیس رو نزاشته بودی .