从PHP文件读取和写入有问题

从PHP文件读取和写入有问题,php,html,mysql,Php,Html,Mysql,我要做的是首先生成一个动态下拉框,其中显示页面名称 然后我想做的是,根据下拉列表中选择的文件,将该文件加载到文本框中,然后在提交更改时,新文件将包含文本框中的新文本 这就是我尝试过的: <select name="page_name"> <?php include_once('lib/sql.php'); $sq

我要做的是首先生成一个动态下拉框,其中显示页面名称

然后我想做的是,根据下拉列表中选择的文件,将该文件加载到文本框中,然后在提交更改时,新文件将包含文本框中的新文本

这就是我尝试过的:

   <select name="page_name">

                        <?php
                            include_once('lib/sql.php');
                            $sql = new sql();
                            $mysqli = new mysqli(blah);
                            /*$arr = array(
                               'cust_id' => "{$_SESSION['cust_id']}"
                            );
                            $query = $sql->select_query("code",$arr);
                            */
                            $query = "SELECT * FROM code";
                           $result = $mysqli->query($query);


                            while ($row = $result->fetch_assoc()) {
                              //var_dump($row['pagename']);
                            ?>
                                 <option name="<?php echo $row['pagename']; ?>" > <?php echo $row['pagename']; ?> </option>
                            <?php
                            } 
                            ?>

                       </select>
                   </td>
                <tr/>
                <tr>
                    <td>
                        <input type="submit" name="edit_page" Value="Select Page">
                    </td>
                </tr>
                 <tr>
                   <td>PHP/HTML CODE:</td>
                   <td>       
                   <?php
                   if(isset($_POST['page_name']) && $_POST['page_name'] != '' && isset($_POST['edit_page'])){
                      $_POST['page_name'] = $_SESSION['pgname'];
                      var_dump($_POST['page_name']);
                      //die();

                      if(isset($_POST['editcode']) && isset($_POST['commit_changes']))
                      {
                          file_put_contents("{$_SESSION['pgname']}","{$_POST['editcode']}");
                          header("Location: ".$_SERVER['PHP_SELF']);
                          //exit;
                      }
                      $text = file_get_contents("{$_SESSION['pgname']}");
                     echo " <textarea id='textarea_2' name='editcode' cols='90' rows='20'>";echo trim($text);echo "</textarea>";

                  ?>
                   </td>

PHP/HTML代码:
编辑:


检查服务器上目标文件夹的权限


您必须具有用户在服务器上的写入权限才能写入文件。

我们应该如何运行您的代码?发布您得到的错误。当i var_dump($_Post['page_name'])时,仍然以NULL响应;,是的,我熟悉$mysqli=newmysqli(废话);我正忙着编辑我的帖子,等等。这仍然不起作用,我收到了一些错误,比如未定义的索引:pgname和PHP警告:file\u get\u contents():Filename不能为空感谢您的帮助,因为您在“name”中输入了一个页面名。这就是它不起作用的原因。
<form method="post" action="subForm.php">    
<table>
    <tr>    
    <select name="page_name">
        <?php
        include_once('lib/sql.php');
        $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
        $query = "SELECT * FROM code";
        $result = $mysqli->query($query);
        while ($row = $result->fetch_assoc()) { ?>
            <option 
                name="page_name" 
                value="<?php echo $row['pagename']; ?>" 
            > 
                <?php echo $row['pagename']; ?> 
            </option>
        <?php } ?>
    </select>
    </td>
    <tr/>
    <tr>
        <td>
            <input type="submit" name="edit_page" Value="Select Page">

        </td>
    </tr>
</table>
</form>
<?php //here your other PHP code or to external file ?>
<table>
    <tr>
         <td>PHP CODE:</td>
    </tr>
    <tr>
         <td>
    <?php
    if(isset($_POST['page_name']) && $_POST['page_name'] != '' && isset($_POST['edit_page'])) {
        $_POST['page_name'] = $_SESSION['pgname'];
        var_dump($_POST['page_name']);    
        if(isset($_POST['editcode']) && isset($_POST['commit_changes'])) {
            file_put_contents("{$_SESSION['pgname']}","{$_POST['editcode']}"); // I dont know if this right, but ok.
            header("Location: ".$_SERVER['PHP_SELF']);
            //exit;
        }
        $text = file_get_contents("{$_SESSION['pgname']}");
        echo " <textarea id='textarea_2' name='editcode' cols='90' rows='20'>"; 
        echo trim($text); 
        echo "</textarea>";  ?>
        </td>
    </tr>
</table>