Du bist nicht angemeldet.

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

1

Mittwoch, 28. Juli 2010, 11:50

Fortführung der Diskussion aus dem Tutorial (MySQL-Datenbank via PHP)

Nochmal kurz das Problem in der Übersicht:
Bei dem Versuch mit Hilfe eines PHP Scriptes (Tutorial) eine Datenbankabfrage auszuführen wird:
1. Eine Verbindung zu imap.meinserver.de aufgebaut
2. Die Fehlermeldung "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden." ausgegeben.
Der Anbieter meiner Domain ist webgo24.
Mein Code schaut in den entscheidenden Bereichen wie folgt aus:

Visual Basic Quellcode

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
Private Sub cmdselect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdselect.Click
        'Select ausführen
        'Verbindung definieren
        Dim Verbindung As cls_Datenbankzugriff
        Verbindung = New cls_Datenbankzugriff


        Dim myCollection As Net.PostCollection = New Net.PostCollection
        'Parameter für das PHP-Script
        myCollection.Add("SQLQuery", "select_all")

        'Verbindung aufbauen und Daten holen/übergeben
        Dim Rückgabewert As String = Verbindung.Zugriff(myCollection, "Abfrage.php", False)



        If Rückgabewert = "Verbindungsfehler" Then 'Ist ein Verbindungsfehler aufgetreten
            'Nichts machen, da die Meldung schon vom Verbinden angezeigt wird
        ElseIf Rückgabewert = "Keine passenden Einträge vorhanden." Then 'Keine Einträge vorhanden
            MsgBox("Keine passenden Einträge vorhanden.")
        Else
            'Zeilen und Spalten auflösen und in vListe einfügen
            Call Splitten(Rückgabewert, vListe, 0, 2, 3, 1, 4, 5)
            'Hier muss die Reihenfolge festgelegt werden,
            'in welcher die Spalten vom PHP-Script zurückgegeben werden.

            'In ListView einfügen
            For i As Integer = 0 To vListe.Count - 1
                lsvHaupt.Items.Add(New ListViewItem(New String() {vListe(i).ID, vListe(i).Name, vListe(i).Nachname, vListe(i).Anrede, vListe(i).Straße, vListe(i).Nr}))
            Next
        End If
        MsgBox(Rückgabewert)

    End Sub


Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Class cls_Datenbankzugriff

    ''' <summary>
    ''' Verbindet zu einer MySQL-Datenbank und gibt die angeforderten Daten zurück.
    ''' </summary>
    ''' <param name="vPostCollection">Erforderlich. Die Parameter welche an das PHP-Script geschickt werden.</param>
    ''' <param name="File">Erforderlich. Die Datei auf welcher der Befehl ausgeführt werden soll.</param>
    ''' <param name="Fehlerausgabe">Optional. Gibt an, ob die Fehlerausgabe Aktiviert ist.</param>
    ''' <returns>Gibt den Rückgabewert des PHP-Scripts zurück.</returns>
    ''' <remarks></remarks>
    Public Function Zugriff(ByVal vPostCollection As Net.PostCollection, ByVal File As String, Optional ByVal Fehlerausgabe As Boolean = True)
        Try
            Dim myrequest As Net.HTTPPostRequest = New Net.HTTPPostRequest
            Dim Ergebnis As String = myrequest.Create(IO.Path.Combine("http://www.meinedomain.de/files", File), vPostCollection)

            Return Ergebnis
        Catch ex As Exception
            If Fehlerausgabe = True Then 'Wenn Fehlerausgabe aktiv, den Fehler Ausgeben
                MessageBox.Show("Folgender Fehler ist aufgetreten: " & vbNewLine & ex.Message, "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
            Return "Verbindungsfehler"
        End Try
    End Function
End Class


Danke für eure Hilfe
mfg Homer

T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

2

Mittwoch, 28. Juli 2010, 18:43

Ich frag nochmal, da es nicht so sicher war:
Du hast die PHP-Datei Abfrage.php genannt und diese liegt in "http://www.meinedomain.de/files"?
Hast du den Aufruf mal über deinen Browser versucht? Also "http://www.meinedomain.de/files/Abfrage.php&SQLQuery=select_all"
Hast du noch weitere Parameter, welche du übergibst? Sind diese nicht alle korrekt angegeben, kommt ebenfalls die Meldung, die Datei wurde nicht gefunden...
www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

3

Donnerstag, 29. Juli 2010, 14:38

Die Dateien Abfrage.php, Connection_inc.php, Function_inc.php liegen jetzt direkt in "http://www.meinedomain.de". Jetzt scheint er die URL auch zu finden, zumindest wird nicht mehr auf imap zugegriffen. Allerdings kommt jetzt eine neue Fehlermeldung und zwar "Verbindungsfehler"!
Im Übrigen kommt bei update oder insert die Fehlermeldung: "Ungültiger URI: Der Hostname konnte nicht analysiert werden." Vielleicht hilft das ja weiter...

Beim Aufruf im Browser mit:
- http://www.meinedomain.de/files/Abfrage.…uery=select_all --- kommt NOT FOUND
- http://www.meinedomain.de/Abfrage.php&SQLQuery=select_all --- kommt NOT FOUND
- http://www.meinedomain.de/Abfrage.php --- kommt eine lehre Seite, was denke ich an php liegt.

mfg Homer

T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

4

Donnerstag, 29. Juli 2010, 16:51

Da Verbindungsfehler kommt, heist das, dass die die Try-Catch-Abfrage anspringt.
Schau dir dort mal den Fehler in ex.Message an.
www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

5

Donnerstag, 29. Juli 2010, 17:45

Also wenn ich Feherausgabe = True einstelle kommt die Meldung: "Ungültiger URI: Der Hostname konnte nicht analysiert werden."
Daraufhin habe ich bei der Pfadangabe anstatt
http://www.meinedomain.de
--> http://www.meinedomain.de/
geschrieben, worauf keine Fehlermeldung mehr kommt und Abfrage.php auch gefunden wird. Jedoch wird als Rückgabewert der gesamte Textinhalt von Abfrage.php geliefert..??
mfg Homer
ps: Danke für die Bemühungen bis jetzt

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

6

Freitag, 30. Juli 2010, 10:16

pobiers mal mit dem direkten URL ohne der domaine also zb:
www.meinedomaine.de/abfrage.php
www.homer.bplaced.de/homepage/php/test/abfrage.php

vieleicht geht es so
Mfg chris213

Meine Finanzen LeitSim4

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

7

Freitag, 30. Juli 2010, 14:31

Auf diese Art kommt wieder die Meldung "Ungültiger URI: Der Hostname konnte nicht analysiert werden."
Die Verbindung scheint ja zu Stande zu kommen, denn immerhin wird der Text-Inhalt der php Datei zurückgegeben. Aber genau hier ist auch das Problem, schließlich will ich den Inhalt aus der Datenbank. Ich vermute eher, dass es irgendwie am VBCode liegt..?
mfg Homer

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

8

Freitag, 30. Juli 2010, 23:14

kannste mal den php code posten.
Mfg chris213

Meine Finanzen LeitSim4

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

9

Samstag, 31. Juli 2010, 22:16

das wäre dieser:
Abfrage.php

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
//ini_set("display_errors", false);

include("Connection_inc.php");

include("Function_inc.php");

//SQL-Abfrage wählen
switch ($_POST['SQLQuery'])
{
    case "select_all"//Alle Einträge holen
        $abfrage "SELECT * FROM Tabelle";
          
        $ergebnis dbAbfrage($abfrage);
        
        if($ergebnis == FALSE//Ist ein Fehler aufgetreten?
        {
            echo mysql_error(); //Den Fehler ausgeben
        }
        elseif (is_resource($ergebnis)) //SQL-Befehl ist SELECT...
        {
            if (mysql_num_rows($ergebnis) == 0)
            {
                echo "Keine passenden Einträge vorhanden."//Wenn keine Zeile vorhanden, 0 zurückgeben
            }
            else
            {
                while($row mysql_fetch_assoc($ergebnis)) //Jede Reihe durchlaufen
                    {
                        echo (implode("ΛΜΝ"$row)) . "ΡΣΤ"//hier wird das Array $row implodiert mit , als seperator - ΡΣΤ wird zur Zeilentrennung, ΛΜΝ wird zur Spaltentrennung genutzt
                    }    
            }
        }            
    break;
        
    case "insert"//Einträge eintragen
        $abfrage "INSERT INTO Tabelle (name, nachname, anrede, strasse, nr)
                     VALUES
                     ('" mysql_real_escape_string($_POST['name']) . "',
                     '" mysql_real_escape_string($_POST['nachname']) . "',
                     '" mysql_real_escape_string($_POST['anrede']) . "',
                     '" mysql_real_escape_string($_POST['strasse']) . "',
                     '" mysql_real_escape_string($_POST['nr']) . "')";
                    
        if (dbAbfrage($abfrage))
        {
            echo "Eintrag erfolgreich eingetragen.";
        }
        else
        {
            echo "Eintrag nicht eingetragen.";
        }
    break;
}
?>


Connection_inc.php

PHP-Quelltext

1
2
3
4
5
6
<?php
header('content-type: text/html; charset=utf-8');
//Datenbankdaten angeben
mysql_connect("localhost","Benutzer""Passwort"); 
mysql_select_db("Datenbankname"); 
?>


Function_inc.php

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
//Funktion zum Abfragen ob ein Fehler aufgetreten ist
function dbAbfrage($abfrage)
{
 $ergebnis mysql_query($abfrage);
  
 if(!$ergebnis//Ist ein Fehler aufgetreten?
 {
  echo mysql_error(); //Den Fehler ausgeben
 }
 
 return $ergebnis;
}
?>

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

10

Sonntag, 1. August 2010, 10:51

haste in den connetion db deine daten richtig eingetragen
Mfg chris213

Meine Finanzen LeitSim4

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

11

Sonntag, 1. August 2010, 18:10

selbstverständlich
Es kommt ja nicht die Meldung, dass kein Zugriff möglich ist, sondern es wird einfach nur der Inhalt von Abfrage.php zurückgeliefert...

T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

12

Sonntag, 1. August 2010, 18:42

Da es bei mir im Moment leider auch zu Problemen bei der Verbindung gibt, habe ich selbst ein wenig versucht. Habe allerdings ein andere Fehler.
Ich bin nun soweit, dass ich den Fehler warscheinlich gefunden habe. Die dll unterstützt vermutlich kein komprimierung durch gzip. Informier dich mal bei deinem Provider, ob das Encoding auf gzip steht. Bei mir hat das der Provider vermutlich geändert...

Ich habe es mal mit dem hier versucht, womit es funktioniert hat. http://board.gulli.com/thread/996158-vbn…et/#post7973568

Versuche es mal damit.
www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

13

Mittwoch, 4. August 2010, 19:10

Um welche Dll handelt es sich denn?
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

14

Donnerstag, 5. August 2010, 14:21

Um diese schätze ich: HttpPostRequest.dll

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

15

Donnerstag, 5. August 2010, 14:25

Da kann dir nur Dodo weiterhelfen, weil von dem die Dll stammt. Ich hab mich selber mal mit dem gleichzeitigen Upload von Dateien und Werte beschäftigt.
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

16

Donnerstag, 5. August 2010, 18:34

Wie ich schon vermutet hatte, wurde gzip nicht unterstützt.
Dodo hat dies jedoch schon bearbeitet und eine neue Version rausgebracht.
www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

17

Donnerstag, 5. August 2010, 22:20

Wo findet man die neue Version?
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

18

Donnerstag, 5. August 2010, 22:23

www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

Homer

Registrierter Benutzer

  • »Homer« ist männlich
  • »Homer« ist der Autor dieses Themas

Beiträge: 83

Dabei seit: 14. Februar 2010

  • Private Nachricht senden

19

Freitag, 6. August 2010, 22:19

Das eigentliche Problem wurde nun gelöst.
Es funktionierte nicht, weil die PHP Dateien mit dem Windows Editor erstellt wurden. Der hat die so seltsam codiert, dass sie nicht ausführbar waren. Also besser einen PHP Editor nehmen.
mfg Homer

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

20

Freitag, 6. August 2010, 23:54

Am besten Notepad++ verwenden, oder wer eine IntelliSense für PHP benötigt, ist bei Eclipse mit Aptana Studio besser aufgehoben
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView