(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
})
})