ช่วยดูโค้ดให้หน่อยครับ ทำไมมันไม่ redirect

เริ่มโดย ความว่างเปล่า, 08 ตุลาคม 2010, 12:53:47

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

ความว่างเปล่า

พอดีผมได้สคริปมา นั่งแก้อยู่หลายวัน แต่เหลือเพียงแค่โค้ดตัวนี้ ที่ผมแก้ยังไงก็แก้ไม่ได้สักที - -*

เป็นสคริปย่อลิงค์ทั่วๆไปนั่นแหละครับ เพียงแต่ว่าพอย่อลิงค์เสร็จแล้ว มันไม่ยอมไปยังหน้าที่มีการหน่วงเวลาไว้

แล้วพอไม่ไปหน้าหน่วงเวลา มันเลยไม่ยอมไปลิงค์จริงๆน่ะครับ ไม่รู้จะแก้ยังไง เลยรบกวนช่วยดูให้หน่อยนะครับ
[ยกโค้ดมาเฉพาะที่คิดว่าน่าจะมีปัญหาอยู่]

อันนี้เป็นโค้ดย่อลิงค์ครับ
<?php


/** include header **/
include("header.php");

/** shorten url **/
if(isset($_POST['task']) && $_POST['task'] == 'shorten')
{
/** pass variables to short url class **/
$short_url->create_url(urldecode($_POST['url']), false);

/** if there is an error output it **/
if($short_url->is_error == 1){ echo $short_url->error_message; }

/** exit **/
exit;
}

?>


อันนี้เป็นหน้าหน่วงเวลา(goto.php)
<?php
include("header.php");

/** reset error vars **/
$error 0;

/** get url id **/
$id = isset($_GET['id']) ? $_GET['id'] : '';

/** run query **/
$query = @mysql_query("SELECT * FROM short_urls WHERE url_id = '".$id."' LIMIT 1");
$num = @mysql_num_rows($query);
$row = @mysql_fetch_array($query);

/** if url does not exist throw to home page **/
if($num == 0){ redirect($url->url_base); exit; }else

/** if url exists go to it **/
if($num != 0)
{
/** update hits **/
@mysql_query("UPDATE short_urls SET url_hits = url_hits+1 WHERE url_id = '".$id."'");

/** redirect to long url **/
$url_2 $row['long_url'];
}
?>


อันนี้เป็น .htaccess
## Turn on and setup apache rewrite ##
RewriteEngine On
Options +Followsymlinks
RewriteBase /

## Dissable directory indexing ##
Options -Indexes

## Remove trailing slash from end of uri ##
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Redirect to non.php extension
RewriteCond %{THE_REQUEST} ^GET\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$ $1 [R=301,L]

## Rewrite Rules ##
RewriteRule ^([0-9-a-z-A-Z-_]+)/?$ goto.php?id=$1 [L]
RewriteRule ^account/(.*)$ $1.php [L]


พอย่อลิงค์แล้วลองรัน URL ดูก็เป็น
Not Found

The requested URL /goto.php was not found on this server.


แต่ถ้าลบตัว .htaccess ไป ก็จะปรากฏไอดีของย่อลิงค์มาแทน
Not Found

The requested URL /ชื่อโฟลเดอร์/TX127Z was not found on this server.


ก็เป็นประมาณนี้ครับ รบกวนผู้รู้ช่วยวิเคราะห์โค้ดให้ผมทีนะครับ

อีกอย่างนึง ถ้าผมเรียก localhost/ชื่อโฟลเดอร์/goto.php มันก็จะโยงมาเป้นหน้า index ของสคริปแทน
แต่ถ้าลอง Open With ของ goto.php ก็จะเป็นหน้าที่ถูกต้อง คือมีการถ่วงเวลาอยู่

ยังไงก็รบกวนทีนะครับ ขอบพระคุณมากครับ  :wanwan017: :wanwan017:
ขายเว็บไซต์ อินดี้ไทย.com PM ครับ
- รับดูแลเว็บไซต์,แฟนเพจ
- รับทำภาพคำคมต่างๆ
- รีวิว App Android

ohmohm

เอาสคริปที่ว่านี้ ไปใว้ใน /ชื่อโฟลเดอร์ แทนที่จะเป็น / หรือเปล่า เลยทำให้ไม่มี /goto.php เพราะมันไปอยู่ที่ /ชื่อโฟลเดอร์/goto.php mod_rewrite มันเลยไม่เห็น

ความว่างเปล่า

อ้างถึงจาก: ohmohm ใน 08 ตุลาคม 2010, 22:06:59
เอาสคริปที่ว่านี้ ไปใว้ใน /ชื่อโฟลเดอร์ แทนที่จะเป็น / หรือเปล่า เลยทำให้ไม่มี /goto.php เพราะมันไปอยู่ที่ /ชื่อโฟลเดอร์/goto.php mod_rewrite มันเลยไม่เห็น

แต่ว่าผมเคยลองแก้ไขในไฟล์ .htaccess ให้เป็น  /ชื่อโฟลเดอร์/goto.php แล้วนะครับ ก็ยังไม่ได้  ???
ขายเว็บไซต์ อินดี้ไทย.com PM ครับ
- รับดูแลเว็บไซต์,แฟนเพจ
- รับทำภาพคำคมต่างๆ
- รีวิว App Android

ความว่างเปล่า

พอจะมีผู้รู้ ท่านเทพไหนพอจะช่วยผมได้บ้างครับ   :wanwan003:

จนปัญญาจริงๆ [ไม่เก่ง php ซะด้วย]  :'(
ขายเว็บไซต์ อินดี้ไทย.com PM ครับ
- รับดูแลเว็บไซต์,แฟนเพจ
- รับทำภาพคำคมต่างๆ
- รีวิว App Android

Party

ข้อมูลแค่นี้ไม่รู้จะช่วยยังไง ต้องเอาสคริปมาลองครับถึงจะรู้ปัญหา
ใช้ทุนเริ่มต้น $200 เก็บกำไรยาว ๆ
[direct=https://www.facebook.com/groups/1655397921338660/]Forex EA[/direct] | [direct=https://www.facebook.com/groups/1655397921338660/]Monster EA[/direct] | [direct=https://www.facebook.com/groups/1655397921338660/]EA Free[/direct]

ohmohm

อ้างถึงจาก: ความว่างเปล่า ใน 09 ตุลาคม 2010, 08:43:55
อ้างถึงจาก: ohmohm ใน 08 ตุลาคม 2010, 22:06:59
เอาสคริปที่ว่านี้ ไปใว้ใน /ชื่อโฟลเดอร์ แทนที่จะเป็น / หรือเปล่า เลยทำให้ไม่มี /goto.php เพราะมันไปอยู่ที่ /ชื่อโฟลเดอร์/goto.php mod_rewrite มันเลยไม่เห็น

แต่ว่าผมเคยลองแก้ไขในไฟล์ .htaccess ให้เป็น  /ชื่อโฟลเดอร์/goto.php แล้วนะครับ ก็ยังไม่ได้  ???
ลองไปเรื่อยๆ
- เอา .htaccess ไปใว้ใน /ชื่อโฟลเดอร์/
- แก้ RewriteBase เป็น /ชื่อโฟลเดอร์/
- เรียก goto.php เองตรงๆ
- ฯลฯ

ความว่างเปล่า

อ้างถึงจาก: ohmohm ใน 09 ตุลาคม 2010, 19:03:56
ลองไปเรื่อยๆ
- เอา .htaccess ไปใว้ใน /ชื่อโฟลเดอร์/
- แก้ RewriteBase เป็น /ชื่อโฟลเดอร์/ 
- เรียก goto.php เองตรงๆ
- ฯลฯ

อ๊ากกก ขอบพระคุณมากเลยครับ ได้แล้วครับ !! ลองทำวิธีที่ 2 ดู ขอบคุณมากจริงๆครับ  :wanwan017:
ขายเว็บไซต์ อินดี้ไทย.com PM ครับ
- รับดูแลเว็บไซต์,แฟนเพจ
- รับทำภาพคำคมต่างๆ
- รีวิว App Android