2015-05-16 3 views
0

Простая форма сообщения пользователя, которая отлично работает, но хочет, чтобы она создавала файл php, который использует базу данных user_id. Таким образом, я могу создать ссылку для этой страницы, чтобы просмотреть отдельную запись. Я использую fopen, чтобы создать страницу, которая также работает.Создание динамической php-страницы с использованием user_id из базы данных в виде имени файла

Как мне создать имя пользователя 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', чтобы получить последний идентификатор вставки вы можете использовать 'code'mysql_insert_id'code', чтобы получить идентификатор из вашего запроса, а затем записать файл – JSB

+0

Спасибо, что им нужно, каждый раз, когда пользователь создает сообщение здесь, он генерирует новую страницу php, затем напишите данные сообщения, затем я могу ссылаться на эту страницу по заголовку сообщения. Я полагал, что использование auto-incrementing 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 ''; объединить идентификатор с расширением php –

0

Ok, так что я понял это, вместо создания фактического файла я создаю динамически.

как это -

$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>'; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^