Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

1 Zum Seitenanfang

Sonntag, 4. Dezember 2011, 12:42

MySQL Server URL bei Fremdzugriff?

Hi!

ich wollte eben mit einem selbstgeschriebenen C# Programm auf meine MySQL Datenbank hier zugreifen.
Allerdings habe ich Probleme beim Server.
Über PHP gibt man ja einfach localhost an.
Nur wie ist die Server URL wenn man von woanders zugreift?

Ich hatte meine Webspace URL probiert und mit /localhost, brachte mich aber nicht zum Ziel ;)
Hatte auch dagobert-ng.wmw.cc versucht aber auch ohne Erfolg.

Ich bin sicher dass jemand von euch die Antwort kennt ;)

MFG Simon

//Edit:

Habe jetzt auch die Server Adresse und die Remote Adresse probiert aber ohne Erfolg.
Ich hab gelesen dass bei fast allen SQL Servern der externe Zugriff gesperrt ist.
Ist es also nicht möglich?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Deffcon« (4. Dezember 2011, 12:42)

 

KevinHu

Routinier

Dabei seit: 05.09.2010

Beiträge: 265

 

2 Zum Seitenanfang

Sonntag, 4. Dezember 2011, 13:58

Nein das ist hier nicht möglich.
Das kann ich aber auch gut nachvollziehen, ich sperre das auf meinem Server genauso..
Es ist halt sicherheitstechnisch besser es zu sperren als anders herum.. ich glaube auch nicht, dass das entsperrt wird

Würde mich auch interessieren, ob es mysql Datenbanken mit externen Zugriff kostenlos o.ä gibt.. (würde mich aber wundern)

Wenn du es unbedingt brauchst, dann müsstest du dir einen vServer mieten und selber Datenbanken erstellen (Host auf "alle" stellen - ist dann im phpmyadmin verfügbar)


Grüße,
Kevin

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KevinHu« (4. Dezember 2011, 13:58)

 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

3 Zum Seitenanfang

Montag, 5. Dezember 2011, 11:14

eventuell hilft ja db4free.net

ein reines Datenbank Angebot - aber ausdrücklich mit dem Hinweis das es als Testumgebung gedacht ist
 

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

4 Zum Seitenanfang

Montag, 5. Dezember 2011, 12:27

Danke für den Link, das klingt echt gut.
Ich wollte es auch nur zu Test- und Übungszwecken nutzen.
Habe mich auch direkt dort angemeldet.
Es hat dort aber auch nicht geklappt, also liegt es wohl eher an meinem Code.

Ich poste die betreffenden Stellen mal rein vielleicht fällt jemandem ja der Fehler ins Auge ;)
Vielleicht liegt es an der Serveradresse? Host ist "db4free.net" und Port "3306"
(c# code)

  Spoiler Spoiler


C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
string  user = "deffcon", pw = "*******", ini = "data4csharp", server = "db4free.net:3306";

        private void sqlcreate_Click(object sender, EventArgs e)
        {
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
            conn.ConnectionString = "Persist Security Info=False;user id=" + user + "; Password=" + pw + ";Database=" + ini + ";Data Source=" + server + ";Packet Size=4096;Workstation ID=pcname;";

            

            System.Data.SqlClient.SqlCommand myCommand = new System.Data.SqlClient.SqlCommand("CREATE TABLE visualcsharp (feld1 char(50), feld2 char(50))", conn);
        }



MFG Simon
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 999

 

5 Zum Seitenanfang

Montag, 5. Dezember 2011, 13:04

deffcon, du könntest ja eine server.php datei erstellen. diese php datei verbindet sich mit der WMW datenbank, und dein C# programm sendet SQL queries an die server.php das ergebnis der serverphp verarbeitest du in deinem C# programm

sowas wie server.php?query=SELECT+*+FROM bla.. &auth=1234

AUTH ganz wichtig, sonst kann jeder darüber unfug treiben
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (5. Dezember 2011, 13:04)

 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

6 Zum Seitenanfang

Montag, 5. Dezember 2011, 13:16

ich hab schon lange nicht mehr mit c# rumgespielt.

"beispiel zu sql in c#"

Im folgenden Beispiel werden eine SqlConnection, ein SqlCommand und ein SqlDataReader erstellt. Im Beispiel werden alle Daten gelesen und auf der Konsole ausgegeben. Abschließend wird im Beispiel der SqlDataReader und danach die SqlConnection geschlossen.

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}
siehe msdn.microsoft.com
aber ausgehend von dem Beispiel sehe ich bei dir nicht wo dir Verbindung geöffnet wird.

Gruß
Ego
 

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

7 Zum Seitenanfang

Montag, 5. Dezember 2011, 13:45

@ego:
Das open hatte ich auch schon probiert, brachte aber keine Veränderung, weshalb ich es wieder entfernt habe.

Ich habe es jetzt mal über php probiert, kommt aber auch nichts bei der DB an:

C# Code:

  Spoiler Spoiler

Quellcode

1
2
3
4
5
6
7
WebClient client = new WebClient();
            NameValueCollection postData = new NameValueCollection();
            postData.Add("name", textBox1.Text);
            postData.Add("score", textBox2.Text);
            byte[] responseArray = client.UploadValues("http://bewerbung.wmw.cc/fromcsharp.php", "POST", postData);

            MessageBox.Show(Encoding.ASCII.GetString(responseArray), "Upload abgeschlossen!");


  Spoiler Spoiler

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
mysql_connect('localhost','*****','******') or die("Connection Error");
mysql_select_db('*******') or die("Error");
if(isset($_POST['name']) && isset($_POST['nachricht']))
{
$name htmlspecialchars($_POST['name']) ;
$nachricht htmlspecialchars($_POST['nachricht']);
 
$sql "INSERT INTO `fromcsharp`  
(`name` , `nachricht`)
VALUES
('".$name."', ".$nachricht.")";
$result mysql_query($sql);
echo 'Ihre Anfrage wurde bearbeitet!';
}
 
?>


Das result kommt an aber die Daten gehen nicht in die DB.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Deffcon« (5. Dezember 2011, 13:45)

 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

8 Zum Seitenanfang

Montag, 5. Dezember 2011, 15:30

hmm localhost? da muss/soll/kann 'db4free.net:3306' rein :)

erstbestes PHP-Manual_Beispiel

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
<?php
        $mysqli mysqli_init();
        if (!$mysqli)
        {
            die('mysqli_init failed');
        }

        if (!$mysqli->options(MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0'))
        {
            die('Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT5))
        {
            die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }
        // real_connect($host, $user, $pwd [, $db])
        if (!$mysqli->real_connect('db4free.net:3306''egoist''''egostestdb'))
        {
            die('Connect Error (' mysqli_connect_errno() . ') '
                    mysqli_connect_error());
        }

        echo 'Success... ' $mysqli->host_info "<br>";

        $mysqli->close();
?>
    </body>
</html>


ich kann nur sagen, bei mir geht's :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ego« (5. Dezember 2011, 15:30)

 

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

9 Zum Seitenanfang

Mittwoch, 7. Dezember 2011, 23:17

So, ich habe es jetzt hinbekommen von meinem C# Programm die Inputs an die PHP Datei auf meinem WMW Server zu senden und von dort in die db4free.net Datenbank einzufügen.

Die Codes Spoile ich unten mal falls es wen interessiert.

Meine Frage ist jetzt:
Wie kann man das ein wenig sicherer machen?
Stichwort auth?
Hat da jemand vllt nen guten Link?

Und vor allem:
Kann man mit dieser c# => php => sql Variante auch Daten abfragen? Bzw. wie funktioniert das?
Ich denke mal mit php select from von der sql Datenbank, dann die abgefragten Werte irgendwie in ein array in php speichern und diese dann von c# abfragen.
Kann mir jemand Ansätze geben wie die Befehle zum abfragen durch C# heißen?

  Spoiler Spoiler




C# Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
private void send_to_php(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            NameValueCollection postData = new NameValueCollection();
            postData.Add("name", textBox1.Text);
            postData.Add("nachricht", textBox2.Text);
            byte[] responseArray = client.UploadValues("http://bewerbung.wmw.cc/fromcsharp.php", "POST", postData);

            MessageBox.Show(Encoding.ASCII.GetString(responseArray), "Upload abgeschlossen!");

        }




PHP Code:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
mysql_connect('db4free.net:3306','deffcon','*****') or die("Connection Error");
mysql_select_db('data4csharp') or die("Error");
if(isset($_POST['name']) && isset($_POST['nachricht']))
{
$name htmlspecialchars($_POST['name']) ;
$nachricht htmlspecialchars($_POST['nachricht']);
 
$sql "INSERT INTO fromcsharp  
(name, nachricht)
VALUES
('$name', '$nachricht')";
$result mysql_query($sql);
echo 'Ihre Anfrage wurde bearbeitet!';
}
 
?>

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Deffcon« (7. Dezember 2011, 23:17)

 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

10 Zum Seitenanfang

Donnerstag, 8. Dezember 2011, 19:02

ich hab den Anschluß verpasst,

sicherlich ist es interessant das mal auszuprobieren aber
wieso greifst du nicht direkt per c# auf sql zu?
oder ist das nur zum Probieren um dann mal per PHP auf die wmw_mysql_DB zuzugreifen?

Gruß
Ego

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ego« (8. Dezember 2011, 19:02)

 

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

11 Zum Seitenanfang

Donnerstag, 8. Dezember 2011, 19:12

Da die meisten SQL Provider den Remote Zugriff verwehren habe ich diesen Weg gewählt.

Ich habe es ja auch bei db4free versucht, wo angeblich Remoteverbindungen zugelassen sind aber dort funktionierte der Direktzugriff auch nicht.

MFG Simon
 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

12 Zum Seitenanfang

Donnerstag, 8. Dezember 2011, 19:20

doch er funktioniert, ich kann sowohl mit PHP von meinem Rechner oder WMW aus zugreifen als auch mittels mysql_administrator.
 

Deffcon

König

Dabei seit: 11.11.2010

Beiträge: 897

 

13 Zum Seitenanfang

Donnerstag, 8. Dezember 2011, 19:22

Okay, dann muss man wohl doch nochmal in meinem C# Code nach Fehlern suchen...

Danke für die den hilfreichen Hinweis ;)
 

Ähnliche Themen