Ankündigung

Einklappen
Keine Ankündigung bisher.

Mein Erster versuch aber ....

Einklappen

Neue Werbung 2019

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

  • Mein Erster versuch aber ....

    ... die page ist leer.

    Ich habe mir auf mein Laptop xampp installiert und versucht ein script nach zu bauen. was in der Lage sein soll Daten in die DB zu schreiben aber auch auszulesen

    doch beim auslesen ist nur eine leere Seite vor mir. habe ich was übersehen?
    Gibt es eine Möglichkeit mit ein Befehl mein Fehler den ich dort habe anzeigen zu lassen?

    In der DB ist ein Datensatz hinterlegt:
    ID 1 SLUG startseite CONTENT irgend so ein Text

    Hier mal meine codes
    index.php
    PHP-Code:
    <?php    require_once("config.php"); ?>
    <?php    
    require_once("functions.php"); ?>
            
    <?php
        $page    
    =    isset($_GET["page"]) ? $_GET["page"] : "startseite";
    ?>

    <!DOCTYPE HTML>
    <HTML>
        <head>
            <title><?php echo $website_titel?></title>
            <meta charset="<?php echo $website_charset?>" />
        </head>
        <body>
            <div><?php echo getPage($page); ?></div>
        </body>
    </HTML>
    config.php
    PHP-Code:
    <?php
        $website_titel        
    "Mein Blog";
        
    $website_charset    "UTF-8";
        
    $website_pages        "pages";
        
        
    $database_host        "localhost";
        
    $database_name        "blog";
        
    $database_user        "admin";
        
    $database_pass        "password";
        
    ?>
    function.php
    PHP-Code:
    <?php
        
    function getPage ($pagename) {
            global 
    $database_host;
            global 
    $database_name;
            global 
    $database_user;
            global 
    $database_pass;
            
            
    $db mysql_connect($database_host$database_user$database_pass);
            if (
    $db === FALSE) {
                die (
    "<p> Es konnte keine Verbindung mit der Datenbank hergestellt werden!</p><p>" mysql_error () . "</p>");
                }
                
                
    mysql_select_db($database_name$db);
                
                
    $sql    'SELECT content FROM pages WHERE slug - "' mysql_real_escape_string($pagename) . '";';
                
    $res    mysql_query($sql$db);
                
                
    $table    mysql_fetch_array($res);
                
                
    $content $table["content"];
                return 
    $content;
                
        }
        
        function 
    addPage($pagename$content) {
            global 
    $database_host;
            global 
    $database_name;
            global 
    $database_user;
            global 
    $database_pass;
            
            
    $db mysql_connect($database_host$database_user$database_pass);
            if (
    $db === FALSE) {
                die (
    "<p> Es konnte keine Verbindung mit der Datenbank hergestellt werden!</p><p>" mysql_error () . "</p>");
                }
                
                
    mysql_select_db($database_name$db);
                
                
    $sql 'INSERT INTO pages VALUS("' mysql_real_escape_string($pagename) . '","' mysql_real_escape_string($content) . '");';
                
                
    mysql_query($sql$db);
                
                
                
                }


  • #2
    mysql ist nicht up-to-date. Das wird in den nächsten php-Versionen entfernt, und ist bereits als deprecated gekennzeichnet.

    Kommentar


    • #3
      und das bedeutet nun?
      was muss ich da jetzt machen?

      Kommentar


      • #4
        ... die page ist leer.
        Betreibe Debugging: http://php-de.github.io/jumpto/leitfaden/

        Sowohl PHP selbst als auch die Datenbankschnittellen haben Funktionen die dir Fehler anzeigen lassen, nutze diese. Siehe Link oben bzw. für die DB-Schnittstelle die Links dazu unten.

        Und vermeide am Besten gleich zu Beginn global. Variablen, Objekte etc.. die eine Funktion oder Methode zum Arbeiten benötigt, übergibt man per Parameter in diese.

        was muss ich da jetzt machen?
        Nutzte eine andere Schnittstelle zu MySql http://php.net/manual/en/migration55.deprecated.php (am besten gleich PDO).

        PDO: http://www.peterkropff.de/site/php/pdo.htm
        mysqli: http://www.peterkropff.de/site/php/mysqli.htm

        LG
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Steig am Besten gleich auf PDO um.

          Dann: global solltest du nicht benutzen, schon gar nicht in Funktionen.

          Edit: zu langsam..
          PHP-Klassen auf github

          Kommentar


          • #6
            Nachtrag... Weil es mir gerade erst auffällt:
            Nicht in jeder Funktion neu die DB öffnen/connecten. Üblicherweise macht man das zentral einmal (zB im boostrap) und dann kannst du dein DB-Objekt ganz praktisch in die Funktionen übergeben und darin "normal" nutzen.
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Hallöchen,

              generell würde ich dir dazu raten, direkt Composer in deinen Workflow zu integrieren. Einfacher kannst du sowohl deine als auch externe Komponenten nicht verwalten (Stichwort PSR-4 Autoloader). Damit bist du lästige includes größtenteils los. Auch schadet es nicht, wenn du dich ein wenig mit OOD auseinandersetzt.

              Viele Grüße,
              lotti

              Kommentar


              • #8
                Zitat von lottikarotti Beitrag anzeigen
                ... direkt Composer in deinen Workflow zu integrieren.
                Dazu ergänzend: http://php-de.github.io/jumpto/composer/
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Also bis #6 bin ich bei euch, aber macht es wirklich Sinn, bei dem erkennbaren Wissenstand des TE Composer anzuraten...
                  Da scheitert es doch schon an der Integration, was ich dann noch nicht mal verwerflich finde...
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #10
                    PHP-Code:
                    $sql    'SELECT content FROM pages WHERE slug - "' mysql_real_escape_string($pagename) . '";'
                    Der Fehler dürfte konkret hier bei dem Minus liegen, btw.

                    Kommentar


                    • #11
                      wenn php nicht funktioniert musste eine .htaccess (oder irgend einen anderen namen) erstellen und "AddType application/x-httpd-php .php" rein schreiben und einfach in das htdocs verzeichnis reinwerfen.

                      Kommentar


                      • #12
                        Was hat'n das jetzt mit der Frage zu tun...
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Zitat von Arne Drews Beitrag anzeigen
                          Also bis #6 bin ich bei euch, aber macht es wirklich Sinn, bei dem erkennbaren Wissenstand des TE Composer anzuraten...
                          Da scheitert es doch schon an der Integration, was ich dann noch nicht mal verwerflich finde...
                          Es hat niemand gesagt, dass es leicht wird!

                          Kommentar


                          • #14
                            ...gut gekontert!
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Ich seh ganz spontan 2 Fehler in deinen MySQL-Queries.

                              PHP-Code:
                              $sql 'INSERT INTO pages VALUS("' mysql_real_escape_string($pagename) . '","' mysql_real_escape_string($content) . '");'
                              PHP-Code:
                              $sql    'SELECT content FROM pages WHERE slug - "' mysql_real_escape_string($pagename) . '";'
                              Denk daran - du unterhältst dich hier nicht mit einem Menschen, sondern mit einem PC.

                              VALUS mag ein Mensch verstehen, die Maschine hätte gerne VALUES. - und = sind zwar nur ein Strich unterschied, aber der ist groß

                              Was du machen solltest:

                              Schau dir den Errorlog an. Öffne deine Seite - danach den errorlog. Dort siehst du dann vermutlich sofort, was in welcher Zeile nicht passt.

                              Kommentar

                              Lädt...
                              X