(HTML)JavaScript+;PHP-$\u获取错误

(HTML)JavaScript+;PHP-$\u获取错误,javascript,php,html,get,Javascript,Php,Html,Get,我希望实现的目标是: 一个索引页面(index.html),允许用户注册,该页面在JavaScript(index.js)上运行,以检查字段(未在snippetindex.js中提及),然后重定向到注册页面(脚本/register.php),然后将值添加到数据库中 实际发生的事情: 它正确地重定向到PHP页面,但是当使用$\u GET方法时,似乎没有任何值被传输:我得到一个空页面 我做错了什么 代码: index.html(仅一个片段) scripts/register.php(仅一

我希望实现的目标是:

  • 一个索引页面(index.html),允许用户注册,该页面在JavaScript(index.js)上运行,以检查字段(未在snippetindex.js中提及),然后重定向到注册页面(脚本/register.php),然后将值添加到数据库中
实际发生的事情:

  • 它正确地重定向到PHP页面,但是当使用
    $\u GET
    方法时,似乎没有任何值被传输:我得到一个空页面
我做错了什么

代码:


index.html(仅一个片段)


scripts/register.php(仅一个片段)



编辑:我不小心复制了“scripts/register.php”的错误代码,很抱歉所有为我更正的答案

您从未提交过表单(因为您似乎没有表单),因此除了嵌入到URL中的数据之外,再也得不到任何东西(这是非常不安全的,发送像密码这样的敏感数据不是一个好主意)

不过,我不确定你为什么要把事情弄得这么复杂

如果您想使用GET,无需自己构建URL,只需使用GET方法设置表单并使用常规提交发送,无需javascript。使用aref值的隐藏字段(您可以在生成表单时、提交前等任何适合您的情况下填充该字段):


同样,将方法更改为POST将是一个更好的主意。当然,您需要访问变量,如$\u POST['aref'],等等。如下所示:

<form method="POST" action="scripts/register.php">
    <input name="aref" type="hidden" value="refcode" />
    <input name="user" type="text" id="user" size="25" />
    <input name="email" type="text" id="email" size="25" />
    <input name="pass" type="password" id="pass" size="25" />
    <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>

和PHP(用于POST):


要访问它们:

$_GET['username']
$_GET['password']
etc...
在代码中,您从不使用好的变量名:

<?php 
echo $_GET['email'];
echo $_GET['user']; 
echo $_GET['pass']; 
echo $_GET['accountref'];
?>

您的字段在URL和register.php中的命名方式不同。请尝试此方法

<?php 
echo $_GET['emailaddress'];
echo $_GET['username']; 
echo $_GET['password']; 
echo $_GET['aref'];
?>

对于不使用JS而使用PHP的解决方案:

<form action="scripts/register.php?<? echo $refcode /* HERES YOUR REFCODE */?>" method="GET">
    <input name="user" type="text" id="user" size="25" />
    <input name="email" type="text" id="email" size="25" />
    <input name="pass" type="password" id="pass" size="25" />
    <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>

执行所需操作的常规方法是在表单中使用
方法
属性或jquery中的
.submit()
事件。我将演示如何执行此操作:

HTML 没有使用
POST的javascript

<form method="post" id="login_form" action='register.php'> 
  <input name="user" type="text" id="user" size="25" />
  <input name="email" type="text" id="email" size="25" />
  <input name="pass" type="password" id="pass" size="25" />
  <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>
HTML使用

注意 我建议你在这种情况下应该使用
POST
方法

>代码>请求指定资源的表示。注意GET不应该用于导致副作用的操作,例如在Web应用程序中使用它来进行动作。这其中的一个原因是GET可以被机器人或爬虫任意使用,不应该考虑请求C应该产生的副作用。原因。

POST将要处理的数据(例如,从HTML表单)提交到已识别的资源。数据包含在请求正文中。这可能导致创建新资源或更新现有资源或两者兼而有之。


因此,基本上GET用于检索远程数据,POST用于插入/更新远程数据。

语法无效。您是否键入了
,错误?您没有通过POST发送输入数据,这就是问题所在……您可以使用method=“POST”或method=“GET”的形式进行归档,或者使用jquery.submit()进行归档它们与
index.js中的相同
window.location.href = 'scripts/register.php?emailaddress=' + document.getElementById("email").value + '&username=' + document.getElementById("user").value + '&password=' + document.getElementById("pass").value + '&aref=' + aref;
$_GET['username']
$_GET['password']
etc...
<?php 
echo $_GET['email'];
echo $_GET['user']; 
echo $_GET['pass']; 
echo $_GET['accountref'];
?>
<?php 
echo $_GET['emailaddress'];
echo $_GET['username']; 
echo $_GET['password']; 
echo $_GET['aref'];
?>
<form action="scripts/register.php?<? echo $refcode /* HERES YOUR REFCODE */?>" method="GET">
    <input name="user" type="text" id="user" size="25" />
    <input name="email" type="text" id="email" size="25" />
    <input name="pass" type="password" id="pass" size="25" />
    <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>
<form method="post" id="login_form" action='register.php'> 
  <input name="user" type="text" id="user" size="25" />
  <input name="email" type="text" id="email" size="25" />
  <input name="pass" type="password" id="pass" size="25" />
  <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>
$user = isset($_Post['user']) ? $_Post['user'] : NULL;
$email = isset($_Post['email']) ? $_Post['email'] : NULL;
$pass = isset($_Post['pass']) ? $_Post['pass'] : NULL;
<form id="login_form" method="post" action=""> 
  <input name="user" type="text" id="user" size="25" />
  <input name="email" type="text" id="email" size="25" />
  <input name="pass" type="password" id="pass" size="25" />
  <input type="submit" name="signup" id="signup" value="Sign Up" />
</form>
<script type = "text/javascript" src = "index.js"></script>
//You have a type with a comma
$('#login_form').submit(function(e){
  var data = $(this).serializeArray();
  $.post('register.php',data,
  function(result){
   //Your callback function
 })
})