尝试根据登录的user_id
运行查询以获取username
。
users.php ....
<?php
session_start();
include_once 'error.php';
class User{
private $db;
private $db_table = "users";
public function __construct()
{
$this->db = new DbConnect();
}
public function isLoginExist($username, $password)
{
$query = "select * from " . $this->db_table . " where username =
'$username' AND password = '$password' Limit 1";
$result = mysqli_query($this->db->getDb(), $query);
if(mysqli_num_rows($result) > 0){
mysqli_close($this->db->getDb());
return true;
}
mysqli_close($this->db->getDb());
return false;
}
public function createNewRegisterUser($username, $password, $email)
{
$query = "insert into users (username, password, email, created_at,
updated_at) values ('$username', '$password', '$email', NOW(), NOW())";
$inserted = mysqli_query($this->db->getDb(), $query);
if($inserted == 1){
$json['success'] = 1;
}else{
$json['success'] = 0;
}
mysqli_close($this->db->getDb());
return $json;
}
public function loginUsers($username, $password){
$json = array();
$canUserLogin = $this->isLoginExist($username, $password);
if($canUserLogin){
$json['success'] = 1;
}else{
$json['success'] = 0;
}
return $json;
}
}
?>
的index.php
<?php
session_start();
require_once 'users.php';
$username = "";
$password = "";
$email = "";
if(isset($_POST['username'])){
$username = $_POST['username'];
}
if(isset($_POST['password'])){
$password = $_POST['password'];
}
if(isset($_POST['email'])){
$email = $_POST['email'];
}
// Instance of a User class
$userObject = new User();
// Registration of new user
if(!empty($username) && !empty($password) && !empty($email)){
$hashed_password = md5($password);
$json_registration = $userObject->createNewRegisterUser($username,
$hashed_password, $email);
echo json_encode($json_registration);
}
// User Login
if(!empty($username) && !empty($password))
{
$hashed_password = md5($password);
$json_array = $userObject->loginUsers($username, $hashed_password);
session_start();
$_SESSION['username'] = $username;
echo json_encode($json_array);
}
//var_dump($_SESSION['username']);displays current users name on android LOG
?>
topics.php
<?php
session_start();
include_once 'error.php';
class Topic{
private $db;
private $db_table = "topics";
private $db_table1 = "created_topics";
public function __construct()
{
$this->db = new DbConnect();
}
public function createNewTopic($topic_name, $content)
{
session_start();
include_once 'index.php';
//query to get current logged in user_id
$un = "SELECT user_id FROM users WHERE username = " .
$_SESSION['username'] . " LIMIT 1";
//running query
$unResults = mysqli_query($this->db->getDb(), $un);
//insert into db topic_name and content
$query = "INSERT INTO topics (topic_name, content, created_at,
updated_at) values ('$topic_name', '$content', NOW(), NOW())";
$inserted = mysqli_query($this->db->getDb(), $query);
//query to insert into created_topics table with user_id and topic_id
$q = "insert into created_topics(user_id, topic_id,created_at) values
('$unResults',LAST_INSERT_ID(),NOW())";
mysqli_query($this->db->getDb(), $q);
if($inserted == 1){
$json['success'] = 1;
}else{
$json['success'] = 0;
}
mysqli_close($this->db->getDb());
return $json;
}
}
?>
created_topic.php
<?php
session_start();
require_once 'topics.php';
$topic_name = "";
$content = "";
$username = $_SESSION['username'];
if(isset($_POST['topic_name']))
{
$topic_name = $_POST['topic_name'];
}
if(isset($_POST['content']))
{
$content = $_POST['content'];
}
// Instance of a Topic class
$topicObject = new Topic();
// Registration of new topic
if(!empty($topic_name) && !empty($content))
{
$json_registration = $topicObject->createNewTopic($topic_name, $content);
echo json_encode($json_registration);
}
?>
Android create_topic页面
package com.example.mrbuknahsty.annovoteexdb;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class createTopic extends AppCompatActivity
{
protected EditText enteredTopicName,enteredContent;
Button create;
protected String topic_name;
private final String serverUrl1 =
"http://lkirkpatrick.btcwsd.com/anno/create_topic.php";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_topic);
enteredTopicName = (EditText) findViewById(R.id.topicNameET);
enteredContent = (EditText) findViewById(R.id.contentEdit);
create = (Button)findViewById(R.id.createBtn);
create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
topic_name = enteredTopicName.getText().toString();
String content = enteredContent.getText().toString();
if(topic_name.equals("") || content.equals("")){
Toast.makeText(createTopic.this, "Topic Name or Content must
be filled", Toast.LENGTH_LONG).show();
return;
}
if(topic_name.length() <= 1 || content.length() <= 1){
Toast.makeText(createTopic.this, "Topic Name or Content
length must be greater than one", Toast.LENGTH_LONG).show();
return;
}
// request authentication with remote server4
AsyncDataClass asyncRequestObject = new AsyncDataClass();
asyncRequestObject.execute(serverUrl1, topic_name, content);
}
});
}
private class AsyncDataClass extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpPost httpPost = new HttpPost(params[0]);
String jsonResult = "";
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>
(2);
nameValuePairs.add(new BasicNameValuePair("topic_name",
params[1]));
nameValuePairs.add(new BasicNameValuePair("content", params[2]));
nameValuePairs.add(new BasicNameValuePair("content", params[2]));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
jsonResult =
inputStreamToString(response.getEntity().getContent()).toString();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonResult;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
System.out.println("Resulted Value: " + result);
if(result.equals("") || result == null){
Toast.makeText(createTopic.this, "Server connection failed",
Toast.LENGTH_LONG).show();
return;
}
int jsonResult = returnParsedJsonObject(result);
if(jsonResult == 0){
Toast.makeText(createTopic.this, "Something Went Wrong",
Toast.LENGTH_LONG).show();
return;
}
if(jsonResult == 1){
Intent intent = new Intent(createTopic.this, login.class);
intent.putExtra("USERNAME", topic_name);
intent.putExtra("MESSAGE", "Topic successfully created!");
startActivity(intent);
}
}
private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
while ((rLine = br.readLine()) != null) {
answer.append(rLine);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return answer;
}
}
private int returnParsedJsonObject(String result){
JSONObject resultObject = null;
int returnedResult = 0;
try {
resultObject = new JSONObject(result);
returnedResult = resultObject.getInt("success");
} catch (JSONException e) {
e.printStackTrace();
}
return returnedResult;
}
}
一切运行正常,直到我添加查询以获取user_id from users where username = '$username';
现在在我的android日志中我只得到 - 结果值:
我的吐司说服务器连接失败了。任何帮助都会很棒。
由于
答案 0 :(得分:0)
您应该阅读Google Documentation。
检查createNewTopic
中的topics.php
函数以及您在其中定义/使用的变量。我相信你会发现错误;)