2017-04-21 2 views
0

Also ich arbeite an einem Login/Register-System mit PHP, das ich für meine Android-App verwenden kann (mit Android Studio 2.3.1 arbeiten).Wie wird angezeigt: "Fehler: keine Verbindung" in PHP, wenn keine Internetverbindung besteht?

Ich kann bereits über mein Telefon registrieren. Aber ich habe herausgefunden, dass, wenn ich das WLAN und meine Daten ausschalte und ich versuche, eine leere Nachricht anzuzeigen, angezeigt wird. Ich möchte diese leere Nachricht mit dem Text füllen: "Fehler: keine Verbindung", aber ich weiß wirklich nicht wie.

Mein Code ist:

<?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); 
} 

ich mit PHP und seinen Funktionen noch nicht sehr erfahren bin, oder mit Stackoverflow für diese Angelegenheit und so habe ich nicht in der Lage, die Lösung selbst noch, um herauszufinden, und Ich kann es nicht online finden, weil alles, was ich bekomme, Leute sind, die Probleme haben, sich mit dem WLAN zu verbinden, aber das habe ich nicht. Ich möchte nur, dass eine Nachricht angezeigt wird, wenn keine Internetverbindung verfügbar ist.

+1

** WARNUNG **: wenn Sie nur PHP lernen, bitte benutzen Sie nicht die [ 'mys ql_query'] (http://php.net/manual/en/function.mysql-query.php) Schnittstelle. Es ist so schrecklich und gefährlich, dass es in PHP 7 entfernt wurde. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps) -pdo-for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) erläutert Best Practices. Ihre Benutzerdaten sind ** nicht ** [richtig maskiert] (http://bobby-tables.com/php.html) und es gibt [SQL injection bugs] (http://bobby-tables.com/) und kann ausgenutzt werden. – tadman

+1

** WARNUNG **: Das Schreiben Ihrer eigenen Zugriffskontrollschicht ist nicht einfach und es gibt viele Möglichkeiten, es schwer falsch zu machen. Bitte schreiben Sie nicht Ihr eigenes Authentifizierungssystem, wenn Sie ein modernes [Entwicklungsframework] (http://codegeekz.com/best-php-frameworks-for-developers/) wie [Laravel] (http://laravel.com/) verfügt über ein integriertes [Authentifizierungssystem] (https://laravel.com/docs/5.4/authentication). Am absolutesten folgen Sie [empfohlene Best Practices für die Sicherheit] (http://www.phptherightway.com/#security) und ** speichern Sie Passwörter niemals als Nur-Text **. – tadman

+1

Wie werden Sie eine Nachricht von PHP auf dem Server an Ihr Telefon senden, wenn es buchstäblich keine Verbindung zwischen den beiden gibt? Was du verlangst * muss * auf Android-Seite geschehen. PHP hat damit nichts zu tun. – tadman

Antwort

0

Wenn Sie keine Verbindung haben, wie können Sie die PHP-Seite laden? Sie müssen den Client überprüfen, wenn Sie einen Internetzugang haben, z. indem Sie den Server anpingen.

Alternativ, wenn Sie die Websites Ausgabe sind Handhabung (‚Benutzername existiert bereits‘ und so weiter), könnten Sie prüfen

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

Sie mit Javascript auf der Clientseite überprüfen sollen, weil die PHP-Server Seite und nur ausgeführt werden, wenn online

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

Verwandte Themen