Formular mit PHP Skripte verbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular mit PHP Skripte verbinden

    Hallo an alle,

    ich habe ein kleines Problem. Ich möchte über ein Formular eine Suchabfrage in einer Datenbank ausführen. Dazu gibt es zwar schon reichlich Themen und Skripte im Internet, aber leider funktionieren diese alle bei mir nicht.

    Wie verbindet man denn das Formular richtig mit dem PHP-Skript ?

    Ich möchte idealerweise nach mehreren Begriffen in allen Feldern der Datenbank suchen.
    Dort wo die Begriffe vorkommen sollen die Daten aus allen Feldern ausgegeben werden. Ich möchte auch gerne mit "LIKE" suchen lassen,
    wenn das geht.

    Ich habe hier ein Beispiel, bei dem ich nur "Errors" bekomme:
    [COLOR=#000000][COLOR=#007700]<[/COLOR][COLOR=#0000bb]head[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]title[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000bb]Datenbank Suchfunktion[/COLOR][COLOR=#007700]</[/COLOR][COLOR=#0000bb]title[/COLOR][COLOR=#007700]>
    </[/COLOR][COLOR=#0000bb]head[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]body[/COLOR][COLOR=#007700]>

    <[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000bb]Datenbank Suchfunktion[/COLOR][COLOR=#007700]!</[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]form method[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"POST" [/COLOR][COLOR=#0000bb]action[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"suchen.php"[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000bb]Bitte nur den Suchbegriff hier eingeben[/COLOR][COLOR=#007700]!<[/COLOR][COLOR=#0000bb]br[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]input type[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"text" [/COLOR][COLOR=#0000bb]name[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"suchbegriff" [/COLOR][COLOR=#0000bb]size[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"20"[/COLOR][COLOR=#007700]></[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]>
    <[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]><[/COLOR][COLOR=#0000bb]input type[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"submit" [/COLOR][COLOR=#0000bb]value[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"Absenden" [/COLOR][COLOR=#0000bb]name[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#dd0000]"Absenden"[/COLOR][COLOR=#007700]></[/COLOR][COLOR=#0000bb]p[/COLOR][COLOR=#007700]>
    </[/COLOR][COLOR=#0000bb]form[/COLOR][COLOR=#007700]>
    </[/COLOR][COLOR=#0000bb]body[/COLOR][COLOR=#007700]>
    </[/COLOR][COLOR=#0000bb]html[/COLOR][COLOR=#007700]>
    [/COLOR][COLOR=#0000bb]
    [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]<?php
    $db_host [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"localhost"[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$db_user [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"root"[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$db_pass [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]""[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$db_name [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"testdatenbank"[/COLOR][COLOR=#007700];

    [/COLOR][COLOR=#0000bb]$suche [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'suchbegriff'[/COLOR][COLOR=#007700]];
    [/COLOR][COLOR=#ff8000]// Verbindung oeffnen und Datenbank ausweahlen
    [/COLOR][COLOR=#0000bb]$conID [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]mysql_connect[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000bb]$db_host[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$db_user[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$db_pass [/COLOR][COLOR=#007700]) or die( [/COLOR][COLOR=#dd0000]"Die Datenbank konnte nicht erreicht werden!" [/COLOR][COLOR=#007700]);
    if ([/COLOR][COLOR=#0000bb]$conID[/COLOR][COLOR=#007700])
    {
    [/COLOR][COLOR=#0000bb]mysql_select_db[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000bb]$db_name[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$conID [/COLOR][COLOR=#007700]);
    }

    [/COLOR][COLOR=#0000bb]$daten [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]mysql_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'SELECT * FROM `testtabelle` WHERE `vorname`=\''[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$suche[/COLOR][COLOR=#007700].[/COLOR][COLOR=#dd0000]'\'' [/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$conID[/COLOR][COLOR=#007700]);
    while([/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000bb]mysql_fetch_array[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$daten[/COLOR][COLOR=#007700]))
    {
    echo [/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'vorname'[/COLOR][COLOR=#007700]][/COLOR][COLOR=#007700];
    }
    [/COLOR][COLOR=#0000bb]?>
    [/COLOR]</body>
    </html>
    [/COLOR]
    Kann mir da jemand helfen ?
    Zuletzt geändert von veil; 18.08.2009, 11:56. Grund: fehler

  • #2
    Hallo,

    Zitat von veil Beitrag anzeigen
    Kann mir da jemand helfen ?
    Normalerweise nur, wenn die Fehlermeldung(en) auch benannt werden. Niemand hat Lust, selbst Parser zu spielen. Ich rate außerdem dringend zur Benutzung von mysql_real_escape_string!

    Gruß,

    Anja
    [COLOR=#000000][COLOR=#dd0000][/COLOR][/COLOR]
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hallo Anja,

      sorry es kommt gar keine Fehlermeldung, es wird nur die .php-seite geladen auf der das ergebnis eigentlich ausgegeben werden soll.
      eine leere seite....

      Was meonst du denn mit mysql_real_escape_string ?

      Kommentar


      • #4
        Dann schau doch bitte mal in den Error Logs nach, vielleicht ist ja nur display_errors ausgeschaltet. Andernfalls werden vielleicht nur keine Ergebnisse gefunden. Immerhin vergleichst du noch mit = und nicht mit LIKE.

        Damit meine ich, dass du das in der PHP Doku nachschlagen und verwenden solltest, sonst kann jeder Anfänger deine Seite hacken. Stichwort: SQL injection
        Zuletzt geändert von AmicaNoctis; 18.08.2009, 12:12.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          OffTopic:
          Anstelle der ganze COLOR-Tags kannst du auch einfach das PHP-Tag verwenden

          Kommentar


          • #6
            Dieses mysql_real_escape_string kann ich nicht. Ich wäre ersteinmal
            froh wenn die Suche überhaupt funktioniert.

            Wo schalte ich den display_errors ein ?

            Kommentar


            • #7
              Links zu "LIKE":

              SQL LIKE - SQL Tutorial
              SQL: LIKE Condition
              PHP fr dich - Abfragen erstellen und ausfhren

              In deinem Skript sollte auch

              error_reporting(E_ALL);

              vorhanden sein.

              Zu display_errors schauste mal hier: How To Display PHP Errors In My Script Code When Display_errors Is Disabled

              mysql_real_escape_string ist wichtig. Schauste hier: PHP: mysql_real_escape_string - Manual

              Damit beugst Du SQL Injection vor.

              mfg streuner
              [FONT=Verdana][/FONT]
              Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
              der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

              "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

              Kommentar


              • #8
                Zitat von veil Beitrag anzeigen
                Dieses mysql_real_escape_string kann ich nicht.
                Das hab ich vermutet, deswegen solltest du es dir ja auch ansehen

                Zitat von veil Beitrag anzeigen
                Wo schalte ich den display_errors ein ?
                In der php.ini, aber ich würde es aus lassen, es sei denn, du arbeitest auf deinem ganz privaten Testserver. Die Fehler findest du entweder in logs/error.log von Apache oder im syslog (Unix) oder im Windows Event Log oder in der Datei, die in der php.ini als error_log angegeben ist.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Mh, dieses Fach-Chinesisch verstehe ich leider nicht.
                  Ich möchte eigentlich nur wissen, was an dem Code fehlerhaft ist.

                  Kommentar


                  • #10
                    Der Code sieht syntaktisch richtig aus, daher kann dir das ohne konkrete Fehlermeldung niemand sagen. Von Fachchinesisch waren wir auch weit entfernt, das sind alles noch sehr grundlegende Dinge gewesen. Ich vermute, es liegt an deiner PHP Installation, aber ohne deine Mitarbeit wird das wohl nicht rauszufinden sein.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      Es kommt keine Fehlermeldung. Es erscheint nur die leere .php-Seite auf der
                      das Ergebnis zu sehen sein sollte...

                      Kommentar


                      • #12
                        So weit waren wir schon. Das muss aber nicht heißen, dass keine Fehler aufgetreten sind. Die können - je nach Konfiguration - auch woanders hingeschrieben werden. Deswegen wäre es toll gewesen, wenn du an den besagten Stellen einfach mal so nachgesehen hättest.

                        Hast du mal einen Vornamen in das Suchfeld eingegeben, den es in der Datenbank definitiv (und exakt so geschrieben) gibt? Bisher hast du nämlich noch nicht bekannt gegeben, dass du jetzt mit LIKE suchen würdest. Nicht, dass du immer nur "Wil" eingibst, um "Wilfried" zu finden. Das sind alles so Sachen, die uns helfen könnten, dir zu helfen. Wir können nur das wissen, was du uns wissen lässt.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Hat nicht jemand schon solch ein funktionierendes Skript ?

                          Ich kann nicht verstehen, dass solch ein simples Skript soviele Probleme
                          bereiten kann.

                          Kommentar


                          • #14
                            Zitat von veil Beitrag anzeigen
                            Hat nicht jemand schon solch ein funktionierendes Skript ?

                            Ich kann nicht verstehen, dass solch ein simples Skript soviele Probleme
                            bereiten kann.
                            Ich auch nicht, darum (und weil du gesagt hast, du hast schon so viele Skripte erfolglos ausprobiert) kam ich zu der Vermutung, dass es an deiner Installation liegen könnte.
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              Was für eine Installation meinst Du denn ?

                              Kommentar

                              Lädt...
                              X