2014-02-13 179 views
0

当UNIX服务器上,以便我终于决定让在线的服务器,所以我可以分享我的网站,我很努力向世界。但是有一些成长的痛苦。我从来没有上过互联网服务器管理教育,所以我认为如果它在我的WAMP服务器上工作,那么它可以在任何服务器上工作。所以我选择ipage认为它可以工作,而且它原来是一个UNIX服务器。重定向提交表单

已经有这种趋势在我的网站,使用AJAX/Jquery的事件从另一个观点带来了一个表格,每当我提出它,它会到原来的形式页面。它会执行查询并完好无损,但您必须点击后退按钮,这对用户体验来说是不利的。但在我的本地WAMP服务器上,它完美运行。

让我给你排序的视觉代码:

形式:

<div id='addCard'> 
<form action='<?php echo $_SERVER['PHP_SELF']?>' method='post'> 
<label> Question </label><br><input type='text' name='question' size='30'> 
<?php 
if (isset($_POST['submitted'])) { 
    $valid = true; 
    if (empty($_POST['question'])) { 
     echo "<mark> You must have a question! </mark>"; 
     $valid = false; 
    } 
} 

?> 
<br> 
<label> Answer </label><br><input type='text' name='answer' size='30'> 
<br> 
<label> Extra Information </label><br><input type='text' name='information' size='30' height='100'rows='80' cols='90'> 
<br> 
<?php 
if (isset($_POST['submitted'])) { 
    if (empty($_POST['answer'])) { 
     echo "<mark> You must have an answer! </mark>"; 
     $valid = false; 
    } 
} 

if (isset($_POST['submitted'])) { 
    if ($valid) { 
     require_once '../Models/classes.php'; 
     $new_card = new Cards($_SESSION['user_id'], $_POST['question'], $_POST['answer'], 
      $_POST['information']); 
     $new_card->card_insert($_SESSION['user_id'], $_POST['question'], $_POST['answer'], 
      $_POST['information']); 
    } 
} 
?> 

<input type="submit" name="submitted" value="Add Card"> 
<input type="reset" value="Reset Fields"> 

</form> 
</div> 
用来召唤形式

jQuery函数:

$('#addCard').click(function() { 
     $('.bar').empty(); 
     $('.bar').load('add_card.php #addCard'); 
    }); 

的实际功能把卡插入数据库:

public function card_insert($user_id, $question, $answer, $information){ 
    $card_insert = sprintf("INSERT INTO Cards(user_id, question, answer, information) VALUES('%d', '%s', '%s', '%s');", 
    mysql_real_escape_string($user_id), mysql_real_escape_string($question), 
    mysql_real_escape_string($answer), mysql_real_escape_string($information)); 
    $result = mysql_query($card_insert) or die(mysql_error()); 
    if ($result) { 

     header("Location: my_cards.php"); 
    } 

} 

你觉得需要改变?它是我需要添加的标题函数吗?我正在使用绝对链接,并且仍然使用该视图。

如果你想尝试一下自己,然后尝试在:http://www.wonderpenguin.com/Study_Penguin/index.php

如果你想看到的文件夹结构,然后检查了我的github页: https://github.com/Lalien/Study_Penguin

+0

在许多情况下 - 特别是在你的情况 - 不应该有操作系统的差异。 – SteAp

+0

@SteAp,这就是我想,但也有很多事情困扰着我,就像一切是区分大小写和诸如此类的东西。 – LalienX

回答

0

也许你有不同的输出缓冲区大小在机器上。无论如何,header只有在没有输出发送到客户端的情况下才能设置。

card_insert试图设置位置头,但有很多的HTML代码已被隐式印刷到客户端已经功能。尝试更改顺序,并有HTML代码后始终header(...)

0

PHP是独立于操作系统和脚本语言,所以它不会是,你必须writen代码或者WAMP或Mac或Linux上

交叉检查PHP_SELF功能托管问题?

See example below