2017-04-21 8 views
0

私はAndroidスタジオ2.3.1で動作する私のAndroidアプリに使用できるphpのログイン/登録システムに取り組んでいます。表示方法:インターネットに接続されていないときにPHPで「エラー:接続しない」と表示されますか?

私は既に電話で登録することができます。しかし、私は無線LANと私のデータをオフにして、私が空のメッセージを登録しようとすると表示されることがわかった。私はこの空のメッセージに "Error:no connection"というテキストを記入したいと思います。

私のコードは次のとおりです。私は非常にまだPHPとその機能を経験していないよ

<?php 
if($_SERVER['REQUEST_METHOD']=='POST') 
{ 
$hostname = "hostname"; 
$username = "username"; 
$password = "password"; 
$dbname = "databasename"; 

$conn = mysql_connect($hostname, $username, $password); 

if (!$conn) 
{ die('Could not connect: ' . mysql_error()); } 

mysql_select_db($dbname, $conn); 

$name = $_POST["name"]; 
$username = $_POST["username"]; 
$password = $_POST["password"]; 
$email = $_POST["email"]; 
$repeatpassword = $_POST["repeatpassword"]; 

if($name == '' || $username == '' || $password == '' || $email == ''){ 
echo 'Please fill in the missing fields'; 
}else{ 

$checkusername = mysql_query("SELECT * FROM users WHERE 
username='$username'"); 
$checkemail = mysql_query("SELECT * FROM users WHERE email='$email'"); 
$testusername = mysql_fetch_array($checkusername); 
$testemail = mysql_fetch_array($checkemail); 

if($testemail) { 
echo 'Email is already used'; 
}else { 

if ($testusername){ 
echo 'Username already exists'; 
} else{ 

if ($_POST["password"] <> $_POST["repeatpassword"]) { 
echo 'Passwords do not match'; 
}else { 

if (mysql_query("INSERT INTO users (name, username, password, email) VALUES 
('$name','$username', '$password','$email')")){ 
echo 'Successfully registered. Now try logging in.'; 
}else{ 
echo 'Oops! Please try again!'; 
} 

} 
} 
} 
} 

mysqli_close($conn); 
} 

、またはそのことについてはstackoverflowのととのため、私はまだ解決策自分自身を把握することができていないと私はオンラインで見つけることができません。なぜなら、私が得ているのはwifiに接続するのに問題がある人だからですが、私はそれを持っていません。私は、インターネット接続が利用できない場合、メッセージを表示させたいだけです。

+1

**警告**:あなただけのPHPを学習している場合は、[ 'MYSを使用しないでくださいql_query'](http://php.net/manual/en/function.mysql-query.php)インタフェースを使用します。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーデータは**適切にエスケープされていません**(http://bobby-tables.com/php.html)、[SQLインジェクションバグ](http://bobby-tables.com/)があります。悪用される。 – tadman

+1

**警告**:独自のアクセス制御レイヤーを作成するのは簡単ではなく、重大な誤りを犯す機会がたくさんあります。 [Laravel](http://laravel.com/)のような最新の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)がある場合は、独自の認証システムを作成しないでください。強力な[認証システム](https://laravel.com/docs/5.4/authentication)が組み込まれています。絶対に[推奨されるセキュリティのベストプラクティス](http://www.phptherightway.com/#security)に従ってください。パスワードはプレーンテキスト**として保存しないでください。 – tadman

+1

文字通り2つの間に接続がない場合、サーバからPHPへのメッセージをあなたの電話機に送信しますか?あなたが求めているのは、* Android側で*する必要があります*。 PHPはそれとは関係ありません。 – tadman

答えて

0

接続していない場合は、PHPページをどのように読み込むことができますか?インターネットにアクセスできない場合は、クライアントをチェックする必要があります。サーバーにpingを実行します。あなたは(「ユーザー名が既に存在する」など)サイトの出力を処理している場合

また、あなたは

if(answer = "") { 
//seems to have no connection 
//your code goes here 
} 
1

をチェックすることができ、PHPはサーバーであるため、あなたは、クライアント側のJavaScriptで確認する必要があります側、オンラインである場合にのみ実行されます

<script> 
 
    $.ajax({ 
 
     url: "http://www.google.com", 
 
     context: document.body, 
 
     error: function(jqXHR, exception) { 
 
      alert('offline') 
 
     }, 
 
     success: function() { 
 
      alert('ONline') 
 
     } 
 
    }) 
 
    </script>