【问题标题】:Directory conflict with my PHP page?目录与我的 PHP 页面冲突?
【发布时间】:2014-02-05 00:04:41
【问题描述】:

所以这个问题有点复杂,所以我会尽可能地描述性。

我最近开始在我的网站中实现 AJAX,所以我想通过制作它来改善用户体验,所以如果您没有帐户,只需单击登录框下方的链接,它就会加载视图文件夹中的registration.php 文件。

这让我很难过。注册只是回到索引页面,根本不更新数据库。但是当我转到正在加载的实际注册页面时,它就可以工作了。由于我是从文件夹根目录中的 index.php 文件加载它,这是否意味着我必须更改注册页面中链接的性质?

这是我的 JavaScript:

$(document).ready(function(){
    /* Switch to registration */

    $('a#registration').click(function(){
            $('#login').load('./views/registration.php');
    }); 
});

这是我的注册页面代码:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method='post'>

<label> Username </label><br><input type='text' name='reg_username' size='20'>

<?php

if (isset($_POST['reg_username'])) {
//standard validation
}
?>
<br>
<label> E-Mail </label><br><input type='email' name='email' size='20'>
<?php
if (isset($_POST['email'])) {
//standard validation
}
?>
<br>
<label> Password: </label><br><input type='password' name='reg_password' size='20'>
<?php
if (isset($_POST['reg_password'])) {
//standard validation
}
?>
<br>
<input type='submit' name='submitted' value='Register'>
</form>

<?php
if (isset($_POST['submitted'])) {
if ($valid) { 
    $username = $_POST['reg_username'];
    $email = $_POST['email'];
    $password = $_POST['reg_password'];
    $register_query = sprintf("INSERT INTO users(username, email, password) values('%s', '%s', '%s');", mysql_real_escape_string($username), 
        mysql_real_escape_string($email), mysql_real_escape_string(crypt($password, $username)));
    require_once '../models/dbconnect.php';
    database_connect();
    require_once '../models/database_validation.php';
    account_duplicate($username, $email);
    if ($valid) {
    $result = mysql_query($register_query);
    if ($result) {
        echo "Registration Successful!";
    } ELSE {
        echo "I think something went wrong...";
    }
    }   
}
}
?>

我认为重点是表单操作和页面上的要求功能。 我使用 require 功能对吗?你觉得哪里出了问题?

如果您想亲自动手玩,这里是它的存储库。这是我的第一个开源项目。

https://github.com/Lalien/Test_Site

【问题讨论】:

    标签: php file directory


    【解决方案1】:

    PHP_SELF 将您发送到浏览器上加载的页面,在本例中为索引页面。将您的表单操作更改为注册页面,以便它将表单发送到正确的页面。

    另外,由于您在其中缺少echo,因此您的操作是一个空白字符串,它将始终提交到当前页面。

    【讨论】:

    • PHP_SELF 终于开始工作了!谢谢你!我想我需要更多地关注细节并复习我的基础知识。
    • 顺便说一句,你不应该使用 mysql 扩展功能。使用 mysqli 或 PDO。 Mysql 扩展已经被弃用了一段时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多