【问题标题】:PHP file won't work in root folder of websitePHP文件在网站的根文件夹中不起作用
【发布时间】:2013-06-20 03:32:03
【问题描述】:

我的 PHP 文件无法在网站的根文件夹中使用。如果它在另一个文件夹中,称为whatever,它可以工作。但它在根文件夹中不起作用。这是一个空白页。

这是一个简单的联系表单 (contact.html),带有一个用于处理表单的 contact.php 文件。我总是将它们放在同一个文件夹中。它不会在 root 中工作。

Contact.php 文件:

    <?php
    $subject = $_POST['sub'];
    $name = $_POST['name'];
    $from = $_POST['email'];
    $message = $_POST['msg'];
    $to = "stackoverflow@gmail.com";
    $send_email = mail($to,$subject,$message);
     if($send_email){
     echo "Your message is successfully sent!!!";
    }
    else{
     echo "Error in sending contact email!!!";
    }
    ?>

按要求添加了contact.html:

    <html>
    <body>
    <table>
    <form name="contact_form" method="post" action="contact.php">
    <tr>
    <td><b>PHP Contact Form</b></td>
    </tr>
    <tr>
    <td>Subject</td>
    <td><input name="sub" id="sub" type="text" size="75"></td>
    </tr>
    <tr>
    <td>Name:</td>
    <td><input name="name" id="name" type="text"></td>
    </tr>
    <tr>
    <td>Email</td>
    <td><input name="email" id="email" type="text"></td>
    </tr>
    <tr>
    <td>Message</td>
    <td><textarea name="msg" cols="60" rows="5" id="msg"></textarea></td>
    </tr>
    <tr>
    <td><input type="submit" name="Submit" value="Submit">
    </tr>
    </form>
    </table>
    </body>
    </html>

.htaccess 文件

    # Use PHP5 Single php.ini as default
    AddHandler application/x-httpd-php5s .php

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    # END WordPress

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    # Adaptive-Images ------------------------------------------------------------------        -----------------

    # Add any directories you wish to omit from the Adaptive-Images process on a new         line, as follows:
    # RewriteCond %{REQUEST_URI} !some-directory
    # RewriteCond %{REQUEST_URI} !another-directory

    RewriteCond %{REQUEST_URI} !assets

    # Send any GIF, JPG, or PNG request that IS NOT stored inside one of the above directories
    # to adaptive-images.php so we can select appropriately sized versions

    RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

    # END Adaptive-Images -------------------------------------------------------------------------------
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
           RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . /index.php [L]
            </IfModule>

            # END WordPress

【问题讨论】:

  • 所以代码工作在一个地方但不是另一个地方。因此可以得出结论,问题不在于代码(即发布它毫无意义),而在于您的 Web 服务器的配置。 htaccess 等等?
  • 你能把你的html代码也放上来吗?
  • 你能从html文件中显示你的&lt;form标签吗
  • 没有标题 等于 失败完全
  • stackoverflow@gmail.com,不错的“插件”。

标签: php wordpress root


【解决方案1】:

如果 formn.try 提供完整的 URL 以访问文件,您可能在 action 处出错。

1. 将页面名称联系起来并进行如下操作:

   <form name="contact_form" method="post" action="/contact">

它会通过抓取它的 slug 将您重定向到联系页面。

2.可以设置bloginfo URL:

   <form name="contact_form" method="post" action="<?php bloginfo('template_url')?>/contact.php">

注意:别忘了初始化global $wpdb;global $post;

【讨论】:

    【解决方案2】:

    我有同样的问题,只有当我将 contact.php 移到另一个文件夹而不是 root 时才解决,例如:contact/contact.php 并重新制作链接 再见

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 2016-07-06
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2012-07-01
      相关资源
      最近更新 更多