2016-06-11 12 views
-1

Ich habe eine vb.net-Software und ich werde PHP-Code auf meiner Website verwenden, um einen Benutzer für den Kunden zu machen. Ich habe viele Codes versucht, aber ich habe immer den gleichen Fehler:PHP MySQL SSL-Zertifikat

Warning:

mysqli_ssl_set() expects parameter 1 to be mysqli, null given in xxxxxxxxxxx/makeuser/insert.php on line 12 Warning: mysqli::mysqli(): (HY000/2002):

Der PHP-Code muss auch Zertifikat also wo soll ich das Zertifikat speichern. Soll ich sie auf meinem Webserver speichern? Ich verstehe, dass ich das Zertifikat auf meinem Webserver speichern kann, aber ist es sicher?

Wenn ich meinen SQL-Skript ausführen soll ich so tue:

$sql = $conn->prepare ("CREATE DATABASE '$_POST[group]' /*!40100 DEFAULT CHARACTER SET latin1 */;"); 

ich auf dem ausführen Prozess auch einen Fehler. Wenn ich $ssl anstelle von $conn verwende, erhalte ich den Fehler nicht. Ist das korrekt?

+0

Mögliche Duplikate von [Was erwartet der mysqli \ _error() -Parameter 1 als mysqli, null gegeben bedeutet?] (http://stackoverflow.com/questions/7457191/what-does-the -mysqli-error-expects-parameter-1-zu-mysqli-null-given-mean) –

+0

Ich denke, dass das Erstellen von Datenbanken/Tabellen ein seltenes Ereignis sein sollte. Es hat viele Auswirkungen auf die Leistung –

+0

Willkommen bei SO. Bitte lesen Sie [Welche Themen kann ich fragen?] (Http://stackoverflow.com/help/on-topic) und [Wie stelle ich eine gute Frage] (http://stackoverflow.com/help/how-to -ask) Und [die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) Und [Wie man ein minimales, vollständiges und verifizierbares Beispiel erstellt] (http://stackoverflow.com/help/mcve) – RiggsFolly

Antwort

1

Whoa.

Das Wichtigste zuerst NIEMALS $_POST direkt in SQL verwenden. Das ist gefährlich. Ich könnte "; drop all databases" posten und es würde laufen.

Als nächstes ist die Abfrage, dass Fehler, weil Ihre MySQL-Abfrage fehlgeschlagen ist, entweder Syntaxfehler oder Verbindung. Wie erstellen Sie das Objekt $conn? Sollte

$conn = mysqli_connect($host... 

sein, wenn Sie nicht mit Ihrem MySQL-Server verbunden sind, das ist Ihr Problem, lesen Sie die PHP-Dokumentation in Bezug auf mysqli.

SSL-Zertifikat - Sprechen Sie über Ihre MySQL-Verbindung oder den Webserver selbst? Es sollte nicht irgendwo zugänglich im Web platziert werden, nein, es in der Regel auf den Server und konfigurierte mit Ihrer Web-Server-Software (Apache/nginx)

-1

Hier ist wenig von meiner Code installiert ist:

mysqli_ssl_set($dbc,"client-key.pem", "client-cert.pem", "ca-key.pem", NULL, NULL) ; 

$conn = new mysqli_connect($servername, $username, $password, $dbc); 
// Check connection 
if ($conn->connect_error) { 
    echo("Connection failed: " . $conn->connect_error); 
} 

Ich spreche über das SSL-Zertifikat für meinen MySQL-Server. Ich habe meinen $ conn repariert und einen neuen mysqli_connect hinzugefügt, wie Sie sehen.

ich diesen Fehler jetzt: Warnung: mysqli_ssl_set() erwartet Parameter 1 in mysqli, null gegeben sein xxxxxxxxxx/makeuser/insert.php on line 12 Fatal error: Class 'mysqli_connect' nicht gefunden in xxxxxxx/makeuser/Insert .php in Zeile 14

+0

Sie sollten dies wirklich als Kommentar, keine Antwort setzen. Aber wenn das Ihr Code oben ist, was ist '$ dbc'? – verenion

+0

versuchen: '$ conn = neue mysqli_connect ($ Servername, $ Benutzername, $ Passwort, $ dbc); mysqli_ssl_set ($ conn, "client-key.pem", "client-cert.pem", "ca-key.pem", NULL, NULL); ' – verenion