2013-12-15 38 views
0

我正在處理一些代碼,爲我的網站上的頁面生成一些隨機URL。我的意圖是讓這個人重定向到他們剛剛創建後創建的頁面,但他們被轉發到'switch',一個php代碼,用於根據按下哪個單選按鈕確定觸發哪個函數。這是我的頁面,允許他們'上傳'到我的網站:爲什麼file_put_contents不創建頁面?

<html> 
<head> 
<link rel="stylesheet" type="text/css" href="/style.css"> 
    <title> 
    Learning Made Easy 
    </title> 
</head> 
<body> 

    <?php include_once 'googleanalytics.php'; ?> 

<a href="http://terrythetutor.com"> 
    <div class="banner"> </div> 
</a> 

<?php include 'menu.php'; ?> 

<div class="content"> 
</br> 
</br> 
</br> 
    <form action="../scripts/switch.php" method="post"> 
    Title: 
    </br><input type="text" name="Title"> 
</br> 
</br> 
</br> 
    Summary of the video (including questions used in the video): 
    </br><textarea name="Summary" COLS=60 ROWS=10></textarea> 
</br> 
</br> 
</br> 
    URL of the video (Yes, this means you need to upload it to an external website.): 
    </br><input type="text" name="URL"> 
    </br> 
    </br> 
    Which course does your video pertain to?</br> 
    <input type="radio" name="course" value="intermediate"> Intermediate and below</br> 
    <input type="radio" name="course" value="college"> College Algebra</br> 
    <input type="radio" name="course" value="precalculus"> PreCalculus</br> 
    <input type="radio" name="course" value="trigonometry"> Trigonometry</br> 
    <input type="radio" name="course" value="calculus I"> Calculus I</br> 
    <input type="radio" name="course" value="calculus II"> Calculus II</br> 
    <input type="radio" name="course" value="calculus III"> Calculus III</br> 
    <input type="radio" name="course" value="differential equations"> Differential Equations</br> 
    </br> 
    </br> 
    <input type="submit" value="Submit, foo!"> 
    </form> 
</br> 
</br> 
</br> 
<p> 
Please understand that you will not be able to change the title, summary, or URL of your video after submission. 
</p> 


</div> 

<div class="footer"> 
    <?php include 'footer.php'; ?> 
</div> 


</body> 

</html> 

這個位很好用。之後,他們被重定向到一個'switch.php'。你已經知道那是什麼。

<?php 
    if (isset($_POST['course']) && $_POST['course'] == 'intermediate') { 
     include('storeintermediate.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'college') { 
     include('step2a.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'precalculus') { 
     include('replace.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'trigonometry') { 
     include('replace.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'calculus I') { 
     include('replace.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'calculus II') { 
     include('replace.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'calculus III') { 
     include('replace.php'); 
    } elseif (isset($_POST['course']) && $_POST['course'] == 'differential equations') { 
     include('replace.php'); 
     } 
?> 

從那裏,我們去storeintermediate.php,在那裏我有抓住所有的變量,它們存儲在數據庫中,與模板格式創建一個新的隨機生成網頁的功能,並提取URL他們正在上傳的視頻。

<?php 
// Create connection 
$con = mysqli_connect("*******","******","************","*"); 
$IP = $_SERVER['REMOTE_ADDR']; 
$IP = mysqli_real_escape_string($con, $IP); 
$Title = mysqli_real_escape_string($con, $_POST[Title]); 
$Summary = mysqli_real_escape_string($con, $_POST[Summary]); 
$URL = mysqli_real_escape_string($con, $_POST[URL]); 


$number = mt_rand(100,99999999); // see $new_url 

$nospace = str_replace(' ', '_', $Title); // to enable URL friendly titles 

$new_url = $number . $nospace ; // to ensure that each URL is unique 

$data = include('../template.php'); 

$embed_URL = substr($URL, -11); 

file_put_contents("../videos/" . $new_url, $data, FILE_APPEND) ; 


// Check connection 
if (mysqli_connect_errno($con)) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $sql="INSERT INTO `Intermediate Algebra` (Title, URL, IP, Summary) 
VALUES 
('$Title','$URL','$IP','$Summary')"; 

if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 

header('Location: http://terrythetutor.com/'.$new_url); 

?> 

現在,我的問題:當我提交測試頁時,頁面被創建。但大小是1個字節,文件中唯一的是'1'。我無法理解爲什麼。

其次,被重定向到的頁面(也出於某種原因持有提交的內容)IS switch.php,但它確實應該是創建的頁面。

第三(也可能與第二個有關),當我嘗試重定向到新生成的頁面時,我的頭部出現錯誤。

任何幫助將不勝感激。非常感謝大家,

特里。

+3

而不是每次使用框架(它將處理路由和不同的頁面URL而不創建額外的文件)或使用一個基本的'page.php'來創建一個新文件,該頁面將基於URL參數顯示內容你的網址就像'page.php?page = some_page_id')。 – 2013-12-15 20:29:04

+1

準備寫@安德烈所說的。您不以這種方式創建頁面,將數據存儲在數據庫中並加載與目標URL匹配的數據(使用模板)。除此之外,你發佈的代碼有很多錯誤(例如URL友好的代碼片段,混合問題),所以我嚴重建議你看一下現有的框架之一(例如[Symfony 2](http:// symfony的.com /))。 – nietonfir

+0

@nietonfir代碼有什麼問題?什麼是網址友好的片段和「混合關注」? – user2666324

回答

3

返回值include("../template.php")不是您認爲的那樣。 include不返回包含的文件輸出,它返回包含的文件返回1如果文件在文件範圍不包含return語句。

+0

但是爲什麼信息會顯示在'switch.php'頁面? – user2666324

+0

某種程度上的好方法是什麼(因爲沒有更好的詞)在每個新頁面中包含一個模板? – user2666324

+0

以某種方式(缺少更好的單詞)將'模板'包含到每個新頁面中的好方法是什麼? – user2666324