2013-12-01 5 views
0

У меня есть быстрый вопрос.Чтение внешнего файла PHP с использованием Java

В настоящее время у меня есть файл PHP с именем «serverintegration.php», расположенный на моем веб-сайте по адресу: www.rune-shadows.com/serverintegration.php.

У меня есть java, который загружает и запускает PHP-код в файле.

Проблема в том, что он читает html (исходный код), а не работает PHP. Как заставить его читать и запускать PHP? Вот мой текущий код:

Ошибка:

[12/1/13 10:00 AM]: Web server not responding for query: <br /> 

ForumIntegration.java

package com.rs2.util; 

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import com.rs2.model.players.Player; 

public class ForumIntegration { 

private static final int CRYPTION_ID = 4469139; 
private static final String WEBSITE_DOMAIN = "http://www.rune-shadows.com"; 
private static String OUTPUT_DATA; 

public static int ProcessUser(Player player) { 
    try { 
     String URL = WEBSITE_DOMAIN + "/serverintegration.php?crypt=" 
       + CRYPTION_ID + "&name=" 
       + player.getUsername().toLowerCase().replace(" ", "_") 
       + "&pass=" + player.getPassword(); 
     HttpURLConnection CONNECTION_HANDLE = (HttpURLConnection) new URL(
       URL).openConnection(); 
     BufferedReader OUTPUT_HANDLE = new BufferedReader(
       new InputStreamReader(CONNECTION_HANDLE.getInputStream())); 

     OUTPUT_DATA = OUTPUT_HANDLE.readLine().trim(); 
     try { 
      // Parse returned internet data. 
      int RETURN_CODE = Integer.parseInt(OUTPUT_DATA); 
      switch (RETURN_CODE) { 

      case -1: 
       System.out.println("Wrong CRYPTION_ID."); 
       return 10; 

      case 1:// Invalid Password. 
       return 3; 

      case 2: 
       int memberGroupId = RETURN_CODE - 2; 
       return 2; 

      case 0:// no member exists for this username 

       return 12;// say they must register on forum 

      default: 

       return 12;// say they must register on forum 

      } 
     } catch (Exception e) { 

      System.out.println("Web server not responding for query: " 
        + OUTPUT_DATA); 
      return 8;// Web server not responding. 

     } 
    } catch (Exception e2) { 
    } 

    System.out.println("Web server not responding for query: " 
      + OUTPUT_DATA); 
    return 11;// website offline 
} 
} 

ServerIntegration.php

<?php 
$SQL_HOST = ""; 
$SQL_USERNAME = ""; 
$SQL_PASSWORD = ""; 
$DATABASE_NAME = ""; 
$CRYPTION_ID = 4469139; 

//Check if number is correct. 
if($_GET['crypt'] != $CRYPTION_ID) { 
echo '-1'; 
exit; 
} 

//Declare variables input. 
$NAME_INPUT = str_replace("_"," ",$_GET['name']); 
$PASS_INPUT = $_GET['pass']; 

//Try to connect with specified SQL Server. 
if([email protected]_connect($SQL_HOST, $SQL_USERNAME, $SQL_PASSWORD)) 
die("Error connecting to SQL Server - " . mysql_error()); 

//Select the specified SQL database. 
if([email protected]_select_db($DATABASE_NAME)) 
die("Error selecting SQL Database - " . mysql_error()); 

//Query Selected SQL Database. 
$SQL_QUERY = mysql_query("SELECT * FROM users WHERE ".$CALL_FROM." = '".$NAME_INPUT."'"); 

//Compare login information. 
if ($SQL_ROW = mysql_fetch_array($SQL_QUERY)){ 

if(strcmp($SQL_ROW["username"], $NAME_INPUT) != 0) {//Compare input username to SQL database. 

    echo '0'; //Query denied(No user found). 

} else { 
    $DATABASE_PASSWORD = md5(md5($PASS_INPUT).$SQL_ROW["salt"]);//Generate  correct Password to compare with SQL Database. 

    if(strcmp($DATABASE_PASSWORD, $SQL_ROW["password"]) == 0) { //Determine if  password is correct. 

     echo '2'; //Successful login. 

    } else { 

     echo '1'; //The input Password is incorrect. 
    } 
} 
} else { 
echo '0'; //Query denied(Database declined query). 
} 
?> 
+0

Почему вы хотите, чтобы клиент запускал PHP? – fdsa

ответ

0

Насколько я понимаю, вы хотите, чтобы клиент отображал страницу PHP локально?

PHP-код интерпретируется веб-сервером с модулем процессора PHP, поэтому, если у каждого клиента не запущен какой-то причудливый гибридный веб-сервер, то что вы не собираетесь работать.

+0

Я вижу, что вы удалили учетные данные. Я бы изменил их как можно скорее. – ryan

+0

Да, добавление их было ошибкой. – user3054667

0

Проблема в том, что вы получаете ошибку mysql на обратной стороне. Для грубого кода, чтобы проверить это, добавьте следующий код Строка line = null; while ((line = OUTPUT_HANDLE.readLine())! = Null) { System.out.println (строка); }

вместо OUTPUT_DATA = OUTPUT_HANDLE.readLine().trim(); и то, что я видел по hittng на URL с пустым Params был

<br /> 
<b>Warning</b>: mysql_fetch_array() expects parameter 1 to be resource, boolean given in <b>/home/content/23/9717823/html/serverintegration.php</b> on line <b>36</b><br /> 
0 
Web server not responding for query: null 

Надеется, что это помогает.

+0

Вот результат: http://pastebin.com/cDwHca7U – user3054667

+0

Вот сообщение об ошибке для PHP, найденное в исходном сообщении: http://pastebin.com/67CTvFcc – user3054667

+0

ну, вот что я делаю здесь, это то, что вы java-код просто считывает первую строку ответа, и вы ожидаете, что эта строка всегда будет возвращать int. Это неправильно в понимании. Исправьте свой PHP-код для обработки ошибочных условий. Если я отправляю пустые параметры с URL-адресом, ваш PHP-код прерывается. Добавьте пустые и пустые проверки в php-код. – Nazgul

Смежные вопросы