Dringende Hilfe gesucht beim Praktikum(firebird/php))

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

  • #31
    Da PHP für Windows nur noch als VC9-Version bereitgestellt wird, sollte man auch die VC9-Version von Apache verwenden (Apache on Windows binaries and modules download).
    [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


    • #32
      auch wenn es wahrscheinlich eine dumme frage ist aber wofür steht das vc9?
      und wodran erkenn ich das bei der version die auf der anleitungs seite beschrieben wurde?
      ist dann die datei die ganz oben auf der seite zum download steht die vc9?

      hmm vorletzte und letzte frage hat sich geklärt.. lesen kann immer wieder helfen.
      Zuletzt geändert von ; 18.07.2011, 11:33.

      Kommentar


      • #33
        So hab mir jetzt also die VC9(wenn es jemand erklären möchte wäre ich dankbar) instaliert und auch Visual C++. ich hab den servername auf localhost gesetzt allerdings weiss ich nicht ob der eintrag in der httpd.conf richtig ist
        ServerName localhost

        nun habe ich über die Konsole die httpd.exe gestartet so wie es in der dokumentation des zip archievs stand... allerdings hängt er sich in der console auf. ich kann den weiteren anweisung nicht mehr folge leisten. im taskmanager erscheinen auch zwei hhtpd.exe einträge

        Kommentar


        • #34
          Das ist die Hauptversionsnummer von Visual C++ und gibt an, mit welchem Compiler es compiliert wurde. Der VC6-Compiler gilt im Gegensatz dazu als veraltet und weniger stabil und zuverlässig. Das ist auch der Grund, warum PHP inzwischen nur noch als VC9 bereitgestellt wird, währen in den vergangenen Versionen beide Arten von Binaries verfügbar waren.
          [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


          • #35
            ich habe den befehl
            Code:
            httpd.exe -k install
            eingegeben. Das funktionierte die exe ist nicht stecken geblieben und im Task.manager stehen nun zwei einträge von httpd.exe .
            diese verschwinden nun auch nicht wenn ich die console schliesse.

            allerdings hab ich nun immer noch das problem das er mir die php seite als quelltext ausgibt

            Placeholder page gibt mir die gewünschte it works seite aus.

            aber meine kleine test2.php seite mit dem phpinfo() -befehl funktionert nicht und gibt nur
            PHP-Code:
            <?php
            phpinfo
            ();
            ?>
            aus
            Zuletzt geändert von ; 18.07.2011, 16:52.

            Kommentar


            • #36
              Jupiii problem gelöst.

              ich hatte die php.ini-development in php.ini umbenannt. aber keine kopie erstellt.

              Kommentar


              • #37
                phpinfo() funtioniert
                Was gemacht habe:
                das oberste script von folgender seite abgetippt
                PDO(PHP Data Objects) | Coding-Bereich

                es in auf meine bedürfnisse angepasst:
                PHP-Code:
                $str_conn "firebird:dbname=C:\\Apache2\\htdocs\\TESTDATA.GDB;host=localhost";
                    
                $database = new POD($str_conn,"SYSDBA""masterkey");
                    
                $database->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION); 
                Was ich feststellen konnte
                apache läuft einwandfrei
                auf der phpinfo() taucht pdo auf mit der benötigten bibliothek firebird(sonst nichts)

                die php_pdo_firebird.dll liegt in c:\PHP\ext\ ordner

                Es geht nicht mit string so wie es ausschaut($str_conn)
                PHP-Code:

                    $database 
                = new PDO("firebird:dbname=C:\Apache2\\htdocs\\TESTDATA.GDB;host=localhost","SYSDBA""masterkey");
                    
                $database->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION); 
                diese variante funktioniert soweit.
                nun das erstellen der tabelle und das abfrage beispiel mit dem guestbook.
                Zuletzt geändert von ; 18.07.2011, 17:00. Grund: damit hier alles aktuell bleibt

                Kommentar


                • #38
                  Sagtest du nicht, dass du den Apache in C:\Programme installiert hast? Sicher, dass der Pfad zur .gdb C:\Apache2\... lautet?

                  Backslashes in PHP-Strings haben Sonderbedeutung und müssen escaped werden.
                  [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


                  • #39
                    ich hab den pfad abgeändert.
                    ich bin gerade da bei mit IBexpert eine Tabelle zu erstellen. das klappt auch relativ gut.
                    ich versuche jetzt das beispiel mit dem gästebuch.
                    PDO(PHP Data Objects) | Coding-Bereich

                    aber abgesehen davon das IBEXPERT mekkert wenn ich eine tabelle mit den spalten author(typ char), time(typ date) und text(typ blob) finde ich nirgends eine Möglichkeit die benannten felder auch mit INhalt zufühlen damit ich sie abfragen kann..

                    Kommentar


                    • #40
                      time ist ein reserviertes Schlüsselwort und muss bei Verwendung als Spaltenname escaped werden. In MySQL macht man das mit Backticks: [FONT="Courier New"]`time`[/FONT]; in Firebird vermutlich nach ANSI-SQL-Standard mit Double Quotes: [FONT="Courier New"]"time"[/FONT].

                      Edit: Vergiss das „vermutlich“, es ist wirklich so.
                      Zuletzt geändert von AmicaNoctis; 18.07.2011, 14:46.
                      [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


                      • #41
                        ich habe das feld mittlerweile umbenannt und auch herrausgefunden wie man die tabelle mit inhalt füllt.

                        nun taucht aber nach folgenden quellcode:
                        PHP-Code:
                        <?php

                            $database 
                        = new PDO("firebird:dbname=C:\\Apache2\\htdocs\\guestbook_entries.GDB;host=localhost","SYSDBA""masterkey");
                            
                        $database->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
                            
                            
                        $sql =
                                    
                        "SELECT `text`,`datum`, `author` 
                                    FROM `new_table`
                                    ORDER BY `datum` DESC"
                        ;
                            foreach(
                        $database->query($sql) as $entry)
                            {
                                echo 
                        'Kommentar von 'htmlspecialchars($entry['author']) , '<br />';
                                echo 
                        'geschrieben am 'date('H:i d.m.Y'$entry['datum']) , '<br />';
                                echo 
                        'Text: <br />'htmlspecialchars($entry['text']);
                            }
                            
                        ?>
                        folgende fehlermeldung auf:

                        Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: -104 Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 8 ` ' in C:\Apache2\htdocs\guestebuch.php:10 Stack trace: #0 C:\Apache2\htdocs\guestebuch.php(10): PDO->query('SELECT `text`,`...') #1 {main} thrown in C:\Apache2\htdocs\guestebuch.php on line 10

                        kann man die mal auseinander nehmen damit ich sie mir beim nächstenmal selbst zerlegen kann?
                        Zuletzt geändert von ; 18.07.2011, 17:01.

                        Kommentar


                        • #42
                          Ich hab den quelltext nun nochmal nach gut dünken abgeändert:
                          PHP-Code:
                          <?php

                              $database 
                          = new PDO("firebird:dbname=C:\\Apache2\\htdocs\\guestbook_entries.GDB;host=localhost","SYSDBA""masterkey");
                              
                          $database->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
                              
                              
                          $sql =
                                      
                          "SELECT TEXT , DATUM , AUTHOR 
                                      FROM NEW_TABLE
                                      ORDER BY DATUM DESC"
                          ;
                              foreach(
                          $database->query($sql) as $entry)
                              {
                                  echo 
                          'Kommentar von 'htmlspecialchars($entry['AUTHOR']) , '<br />';
                                  echo 
                          'geschrieben am 'date('H:i d.m.Y'$entry['DATUM']) , '<br />';
                                  echo 
                          'Text: <br />'htmlspecialchars($entry['TEXT']);
                              }
                              
                          ?>
                          nun erscheint ein teil der ausgabe:

                          Kommentar von tier
                          geschrieben am
                          Notice: A non well formed numeric value encountered in C:\Apache2\htdocs\guestebuch2.php on line 13

                          Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Apache2\htdocs\guestebuch2.php on line 13
                          01:33 01.01.1970
                          Text:
                          maeaeaeaeaehKommentar von mensch
                          geschrieben am
                          Notice: A non well formed numeric value encountered in C:\Apache2\htdocs\guestebuch2.php on line 13

                          Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Apache2\htdocs\guestebuch2.php on line 13
                          01:33 01.01.1970
                          Text:
                          bla bli blu blabKommentar von maschine
                          geschrieben am
                          Notice: A non well formed numeric value encountered in C:\Apache2\htdocs\guestebuch2.php on line 13

                          Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Apache2\htdocs\guestebuch2.php on line 13
                          01:33 01.01.1970
                          Text:
                          Zuletzt geändert von ; 18.07.2011, 17:01.

                          Kommentar


                          • #43
                            und nun alles mal ein bissel richtig

                            So wird ein schuh draus. habs jetzt durch rum probieren hinbekommen.
                            fehler nummer eins:
                            ich habe die spalten nicht richtig angesprochen (statt TEXT hab ich text genommen--> IBEXPERT macht automatisch alles in großschreibweise)

                            Fehler numer zwei:
                            Die Datumsformatierung verlangt zuerst eine zeitzonen einstellung. wozu das notwendig ist wenn man das datum in der tabelle bereits hat versteh ich nicht. ist aber wichtig.

                            fehler numer drei:
                            die ` weglassen. zumindest scheinen sie nicht notwendig zu sein.


                            hier der Aktuelle Quelltext:
                            PHP-Code:
                            <?php

                                $database 
                            = new PDO("firebird:dbname=C:\\Apache2\\htdocs\\guestbook_entries.GDB;host=localhost","SYSDBA""masterkey");
                                
                            $database->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
                                
                                
                            $sql =
                                        
                            "SELECT TEXT , DATUM , AUTHOR 
                                        FROM NEW_TABLE
                                        ORDER BY DATUM DESC"
                            ;
                                foreach(
                            $database->query($sql) as $entry)
                                {
                                    
                            date_default_timezone_set('Europe/Paris');
                                    echo 
                            '<br /><br />Kommentar von 'htmlspecialchars($entry['AUTHOR']) , '<br />';
                                    echo 
                            'geschrieben am 'date('H:i d.m.Y'strtotime($entry['DATUM'])) , '<br />';
                                    echo 
                            'Text: <br />'htmlspecialchars($entry['TEXT']);
                                }
                                
                            ?>
                            und die ausgabe:



                            Kommentar von tier
                            geschrieben am 00:00:00 23.07.2011
                            Text:
                            maeaeaeaeaeh

                            Kommentar von mensch
                            geschrieben am 00:00:00 21.07.2011
                            Text:
                            bla bli blu blab

                            Kommentar von maschine
                            geschrieben am 00:00:00 29.06.2011
                            Text:

                            Im anhang befindet sich die Tabelle dich ich notdürftig mit opencalc nochmal erstellt hab. Soll nur zur übersicht dienen, um zum nachvollziehen.

                            feierabend
                            Angehängte Dateien
                            Zuletzt geändert von ; 18.07.2011, 17:03.

                            Kommentar


                            • #44
                              Bitte die PHP-Tags des Forums benutzen, um Quellcode besser lesbar zu halten (siehe meine Signatur).

                              Der Pfad im DSN enthält immer noch einfache Backslashes, nimm bitte doppelte.

                              Die Warnung erscheint, weil PHP noch nicht weiß, in welcher Zeitzone du dich befindest. Setz bitte in der php.ini
                              Code:
                              date.timezone = "Europe/Berlin"
                              Die Notice kommt deswegen: Die Datenbank liefert offenbar keinen numerischen Timestamp zurück, sondern ein formatiertes Datum. Daher der Fehler mit dem inkorrekten numerischen Wert. Abhilfe: parse dieses Datum mit strtotime oder benutze die DateTime-Klasse.

                              Edit: Bitte sofort Beiträge bearbeiten und Quellcode formatieren! Unterlasse bitte Doppelpostings und benutze den Ändern-Button, wenn du etwas vergessen hast oder überleg 2x bevor du etwas halbgegorenes abschickst!
                              Zuletzt geändert von AmicaNoctis; 18.07.2011, 16:11.
                              [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


                              • #45
                                was meinst du mit den einfachen backslashes
                                Hab die eintrtäge nochmal überarbeitet. genügt das oder gibs weitere verbesserungen?

                                Kommentar

                                Lädt...
                                X