2017-10-22 2 views
0

Ich erstellte eine Datenbank auf cpanel und ich wählte einen Namen und pass es. Also habe ich in services.php "database", "password", "user name", "localhost" deklariert.Fehler beim Verbinden mit dem Server

services.php:

<?php 
    if (isset($_REQUEST['action'])){ 
    $foo = $_REQUEST['action']; 
    }else{ 
    echo "Invalid Data"; 
    exit; 
    } 

    /*************************************************/ 
function connectToDatabase() 
    { 
    $servername ="localhost"; 
    $username = "us_utab"; 
    $password = "sk3%CkvH"; 
    $dbname = "us_utab"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    $conn->set_charset("utf8"); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 

    } 
    return $conn; 
    } 

    /*************************************************/ 

    if ($foo == 'search') 
    { search(); } 

    if ($foo == 'read') 
    { read();} 

    if ($foo == 'insert') 
    { insert();} 

    . 
    . 
    . 

änderte ich mein Android-Code.

HttpPost method = new HttpPost("http://192.168.1.2/test-website/services.php?action=read"); 

An:

HttpPost method = new HttpPost("https://utab.com:2083/services.php? 
action=read"); 

Ist das richtig?

Es ist nicht notwendig, Datenbankname, Passwort, Benutzername in android Ort zu verwenden?

Es verbindet sich nicht mit dem Server. so löschte ich Port 2083 und ich stoße Fehler unten:

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 

Antwort

0

Nun, Ihr Code scheint korrekt zu sein und nicht das Problem in diesem Fall.

Es ist nicht notwendig, Datenbankname, Passwort, Benutzername in Android-Ort zu verwenden?

Nein, Sie müssen nicht, wenn die PHP-Datei diese Werte bereits enthält.

Der tatsächliche Fehler, den wir sehen, ist ein SSLPeerUnverifiedException was bedeutet, dass das Zertifikat von https://utab.com einige Probleme hat. Also musst du das überprüfen. Überprüfen Sie auch das Datum Ihres Geräts, ist es korrekt?

+0

ja Datum ist korrekt. Wie kann ich das Zertifikat prüfen? – hordad

+0

Haben Sie versucht, die URL mit "http: //" anstelle von "https: //" zu verwenden? –

+0

ja ich habe http verwendet und es hat funktioniert. Vielen Dank. – hordad

0
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 

Das bedeutet, dass Sie versuchen, eine sichere https-Verbindung zu einem HTTP-Server herzustellen, der keine sicheren Verbindungen erwartet.

$servername ="localhost"; 
$username = "us_utab"; 
$password = "sk3%CkvH"; 
$dbname = "us_utab"; 

Ist das der einzige Inhalt von services.php? Wenn ja, dann fehlt der gesamte Code, um eine Verbindung zur Datenbank herzustellen, Argumente von der HTTP-Anfrage zu erhalten, wahrscheinlich eine Datenbankabfrage durchzuführen und eine Antwort zurückzugeben. Es scheint, dass, wenn das einzige Argument action=read ist, es nicht klar ist, was es antworten muss.

UPDATE

Nachdem Sie Ihren Kommentar zu lesen, wenn der Server vom selben Computer aus zugänglich ist, aber nicht von einem anderen Computer dann haben Sie ein IP-Routing-Problem, kein Programmierproblem. Der Computer auf dem Server verfügt möglicherweise über eine Firewall, die eingehende Verbindungen blockiert, oder die Netzwerkschnittstelle ist falsch konfiguriert.

Beachten Sie auch, dass in einem LAN die öffentliche IP-Adresse, mit der der Router eine Verbindung zum WAN herstellt, nicht von den LAN-Computern aus zugänglich ist. Zum Testen innerhalb des LANs müssen Sie die privaten LAN IPs verwenden, zum Beispiel 192.168.1.2, nicht "utab.com"

+0

Ich bearbeitet meine Frage .plz sehen, dass ich services.php schrieb.Mein Code funktioniert auf dem lokalen Server, funktioniert aber nicht auf einem echten Server. – hordad

+0

Ich habe meine Antwort aktualisiert –

Verwandte Themen