gpt4 book ai didi

php - 数据 POST 到 PHP 脚本时的奇怪之处

转载 作者:行者123 更新时间:2023-11-29 08:55:28 25 4
gpt4 key购买 nike

我使用以下代码将数据从 Android 应用程序发布到 PHP 脚本:

public class Upload extends Activity implements OnClickListener {
EditText joke;
Button upload = (Button) findViewById(R.id.bUpload);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.upload);
upload.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bUpload:
uploadJoke();
break;
}

}
private void uploadJoke() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://xxxx/telejoke.php");

try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "test"));
nameValuePairs.add(new BasicNameValuePair("joke", joke.getText().toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}

此代码将数据发送到 PHP 脚本,然后该脚本将其发送到 SQL 数据库。此数据显示在 SQL 数据库中,但如果我尝试类似 echo $username 的操作,当我转到 http://xxxx/telejoke.php 时,它不会显示用户名。 .

PHP 脚本:

<?php
include 'DBConnect.php';
include 'JokeValidate.php';

$username = $_POST['username'];
$joke = $_POST['joke'];
$dbname = 'Telejoke';
mysql_select_db($dbname);

echo $username. " " . $joke;

if (validate()){
$query = "INSERT INTO jokes (username, joke) VALUES ('$username','$joke')";
mysql_query($query) or die('Error, insert query failed');
}
mysql_close($conn);
?>

请帮忙。除了将其发送到数据库之外,我还想用 PHP 对发布的数据进行处理。

最佳答案

我猜 register_globals 已关闭(这很好)!!!

您必须通过 $_POST['username'] 来寻址用户名(当然在 telepost.php 中)。

好的(在你发布你的 php 脚本之后,我想我明白了)。您说“转到http://xxx/telejoke.php后我看不到我的用户名,但数据已正确上传”。

--> 是的,这种行为是正确的。您没有将任何 POST 参数传递给 php 脚本,因此 $_POST['username'] 为空。

--> 但是,如果您通过应用程序调用脚本,则将所需的 POST 参数(用户名、笑话等)传递给脚本。这样它就可以将您的数据正确写入数据库。

此外,您应该优化 SQL/脚本以防止 SQL 注入(inject)。不良用户可能会对您的网站造成损害(例如删除所有笑话等...)

关于php - 数据 POST 到 PHP 脚本时的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10077354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com