2015-05-16 29 views
0

简单的用户发布表单,它的所有工作都很好,但希望它生成一个使用数据库中的user_id的php文件。这样我可以生成该页面的链接以查看单个帖子。我正在使用fopen来创建也适用的页面。使用数据库中的user_id创建动态php页面作为文件名

我如何让它生成'user_id'.php作为新的文件名?你可以看到它现在命名文件'newfile.php'。

// Create Post 
session_start(); 
if(isset($_POST['createPostBtn'])){ 
    $myusername = $_SESSION['username']; 
    $postTitle = $_POST['postTitle']; 
    $postDesc = $_POST['postDesc']; 
    $id = $row['user_id']; 

    $myfile = fopen('newfile.php', 'w') or die("can't open file"); 

    $txt = "<?php include('init.inc.php'); ?>"; 
    $txt2 = "<?php include('header.php'); ?>"; 
    fwrite($myfile, $txt); 
    fwrite($myfile, $txt2); 
    fwrite($myfile, $myusername); 
    fwrite($myfile, $id); 
    fwrite($myfile, $postTitle); 
    fwrite($myfile, $postDesc); 
    fclose($myfile); 

    mysql_query("INSERT INTO `users` (`post_title`, `post_description`, `username`) VALUES ('{$postTitle}', '{$postDesc}', '{$myusername}')"); 
} 
+2

我想你在完全错误的方式打算。不要为每个用户创建一个文件,只需使用'.htaccess'来重写你的url,然后编写一个主用户页面 – Rizier123

+0

Rizier123是正确的。最好的方法是url重写,但如果你真的想要你的解决方案,你可以使用你的$ id而不是newfile.php'code'fopen($ id。'。php','w');'code'来获得最后一个插入ID可以使用'code'mysql_insert_id'code'从你的查询中获得ID,然后写入文件 – JSB

+0

谢谢,每当用户在这里创建一个帖子时,会产生一个新的PHP页面,然后写post数据,然后我可以链接到该页面的帖子标题..我想通过使用自动递增的ID将是生成页面的最佳方式,因为每个页面将有不同的文件名..我期待着做类似于craigslist的东西我猜你在哪里发布信息,并且它给了它(看起来像)发布自己的网页..它不是一个特定的项目即时通讯只是为了更好地学习PHP,所以最好的方法是最好的..再次感谢! –

回答

0

试试下面的代码:

$id = '$row['user_id'].'.php''; 
$myfile = fopen($id, 'w') or die("can't open file") 
+1

谢谢,我在发布之前先试过这个,它只是将文件保存为“.php”,任何想法为什么它不会生成user_id? –

+0

它为我工作。您可以检查获取$ row ['user_id']值时是否有错误。 –

+0

尝试一次这种格式$ id ='$ row ['user_id']。'。php'';将id和php扩展合并 –

0

好了,所以我想通了这一点,而不是创建实际的文件I动态地创建它。

这样的 -

$forum .= '<div id="ptitle">' . '<a href=\mysite/thread.php?cid=' .$id . '>' . $ptitle.'</a>' . '</div>' ; 

这将创建动态链接..

$cid = $_GET['cid']; 
$sql = "SELECT postid, username, post_title, post_description FROM post WHERE postid='".$cid."' LIMIT 1"; 
$res = mysql_query($sql) or die (mysql_error()); 
    if(mysql_num_rows($res) == 1) { 
     $sql2 = "SELECT * FROM post WHERE postid='" . $cid. "'"; 
     $res2 = mysql_query($sql2) or die (mysql_error()); 
    if(mysql_num_rows($res2) > 0) { 

    while ($row = mysql_fetch_assoc($res2)) { 
     $myid = $row['postid']; 
     $myname = $row['username']; 
     $mytitle = $row['post_title']; 
     $mydesc = $row['post_description']; 

     echo '<div id="mainCont">'; 
     echo '<div id="mainTitle">' . $mytitle . '</div>'; 
     echo '<div id="mainDesc">' . $mydesc . '</div>'; 
     echo '<div id="mainName">' . 'posted by: ' . $myname . '</div>'; 
     echo '</div>'; 
    } 
相关问题