Error: Failed opening required

  • Ich komme einfach nicht weiter?


    Bekomme jedes mal die meldung ''Uncaught Error: Failed opening required 'C:\xampp\htdocs\shop1function/database.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\shop1\index.php on line 6..''


    obwohl alles in ordnugn sein musste konnt ihr mir helfen


    der ordner ist auch zu hundert prozent richtig angeleget


  • Hey,


    schau dir nochmal genauer die Fehlermeldung mit dem Pfad an: C:\xampp\htdocs\shop1function/database.php. Dort fehlt hinter shop1 ein Slash. Das bedeutet, dass du beim require_once vor dem Ordner function noch ein Slash hinzufügen musst:


    require_once __DIR__.'/function/database.php';


    Schöne Grüße,
    Stef

  • Anfanger fehler XD, hat geklappt mit dem Slasch.


    jetzt bekomme ich ein weiteren fehlercode, $fetchModer = ??? der kann wohl was nciht finden oder wiedergeben ? Glaub das hat was mit mein Heidisql zu tun?

    Code
    1. Uncaught PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in C:\xampp\htdocs\shop1\index.php on line 10
    2. PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in C:\xampp\htdocs\shop1\index.php on line 10
    3. Call Stack
    4. # Time Memory Function Location
    5. 1 0.0003 403704 {main}( ) ...\index.php:0
    6. 2 0.0020 455632 query( $query = 'SELECT id,titel,discription,price FROM products', $fetchMode = ??? ) ...\index.php:10 (also 12 te zeile oben im index.php quelcode)
  • ich hab das so ubernommen wie da beschrieben, war ein form fehler von mir denk ich .


    Jetzt bekomme ich die fehlermeldung das mein zugang nicht gewahrt wird

    Code
    1. ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'DB_USERNAME'@'localhost' (using password: YES) in C:\xampp\htdocs\shop1\function\database.php on line 11
    2. ( ! ) PDOException: SQLSTATE[HY000] [1045] Access denied for user 'DB_USERNAME'@'localhost' (using password: YES) in C:\xampp\htdocs\shop1\function\database.php on line 11
    3. Call Stack
    4. # Time Memory Function Location
    5. 1 0.0000 403704 {main}( ) ...\index.php:0
    6. 2 0.0000 406600 getDB( ) ...\index.php:10
    7. 3 0.0000 408072 __construct( $dsn = 'mysql:host=127.0.0.1;dbnameshop,charset=UTF8', $username = 'DB_USERNAME', $password = 'DB_PASSWORD' ) ...\database.php:11

    so auch wen ich mich in der shell anmelden will unter user shop klappt es

    Code
    1. # mysql -u shop -p shop
    2. Enter password: ****
    3. Welcome to the MariaDB monitor. Commands end with ; or \g.
    4. Your MariaDB connection id is 40
    5. Server version: 10.4.21-MariaDB mariadb.org binary distribution

    Aber mit dem befehl GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'; hab ich dem doch alle priviligien gewahrt oder nicht? Muss ich den user shop noch zum admin machen iwi? Was ich denke da ich den eingabebereich enter password habe muss ich den doch auch noch hinzufugen oder ?

    das ist meine Database config C:\xampp\htdocs\shop1\config\database.php


    PHP
    1. <?php
    2. define('DB_DATABASE', 'shop');
    3. define('DB_USERNAME', 'shop');
    4. define('DB_HOST', '127.0.0.1');
    5. define('DB_PASSWORD', 'shop');
    6. define('DB_CHARSET','UTF8');
    7. define('PDO_DNS', 'mysql:dbhost=localhost;dbname='.DB_DATABASE);
  • Liest du auch mal Fehlermeldungen richtig oder rätst du nur rum?!


    Zitat


    Access denied for user 'DB_USERNAME'@'localhost'

    An DB_USERNAME'@'localhost fällt dir nichts auf?


    Wenn man Fehlermeldungen nicht richtig lesen kann und an einem fehlenden Slash verzweifelt, dann sollte man keinen Shop programmieren, denn dann ist man bei weitem nicht mit seinen Kenntnissen so weit, dass man sich daran trauen sollte.

  • __construct( $dsn = 'mysql:host=127.0.0.1;dbnameshop,charset=UTF8', $username = 'DB_USERNAME', $password = 'DB_PASSWORD' )

    Die Fehlermeldung passt nicht zum Code und der dsn ist immer noch Käse. Einer der drei Fehler darin ist das falsche charset (richtig wäre utf8mb4), den Rest siehst du hoffentlich selbst - wenn nicht solltest du überlegen ob das Programmieren wirklich das richtige für dich ist, simple Syntaxfehler sollte man auch selbst finden, dafür sind Foren nicht da.

  • Naturlich bin ich nicht so weit es irgenwie funktionell darzu stellen doch dafur bin ich ja bei euch um es zu lernen. Es sind meistens tipp fehler und die fehlende erfahrung wie die form auszusehen hat, doch das ist ein projekt das einige php elemente beinhaltet; Neben bei fuehre ich buch und schreibe mir die einzelnen fehler und formen auf . Die ganze thematik ist fur mich neu und das ganze ist aus anderen quelcodes zusammengefugt worden auch viel vom youtube, Vom beruf her bin ich Stuckateur und ich hab einz gelernt um jemanden auszubilden anstatt mit waende faengt er direkt mit Decken an.


    wenn es am slash oder sonst was liegen solte, dan macht mich darauf aufmerksam und ich schreibe es mir auf somit wird es auch nachstes mal nicht mehr am slash liegen, und ich denke dafur waeren auch viele andere quereinsteiger dankbar fur diese informationen den ich bin nicht der einzigste der die fehler macht

  • Die Fehlermeldung passt nicht zum Code und der dsn ist immer noch Käse. Einer der drei Fehler darin ist das falsche charset (richtig wäre utf8mb4), den Rest siehst du hoffentlich selbst - wenn nicht solltest du überlegen ob das Programmieren wirklich das richtige für dich ist, simple Syntaxfehler sollte man auch selbst finden, dafür sind Foren nicht da.

    wie wuerde die dsn richtig aussehen?

  • so siht meine main.php aus also vier artikel sollten nebeneinander so auch in Heidisql in der tabelle hinterlegt

    Hab ein </Div> vergessen jetzt passt alles XD

    PHP
    1. <section class="container" id="products">
    2. <div class="row">
    3. <?php while($row = $result->fetch()):?> <---- Das der teil wo die produktmenge anfaengt
    4. <div class="col">
    5. <?php include 'card.php'?> <-----Das der teil der card.php anzeigt
    6. </div> <---Damit schliese ich die box col
    7. <?php endwhile;?> <------ Das der teil wo die produkt maenge aufhort nach der anzahl aus mysql
    8. </div> <----- Damit schliese ich die box Row
    9. </section>

    So siht meine cart.php aus


  • Also ,, ich bekomme jedes mal Warning: foreach() argument must be of type array|object, null given in C:\xampp\htdocs\shop2\templates\warenkorb.php on line 10


    wenn ich die cartPache versuche in dem warenkorb zu inkluden


    Aber wen ich die weiterleitung auf dem cart/add mache funktioniert es


    aber dan funktioniert auch die whilschleife von der main php nicht wen ich die in die cart.php includen will


    konnt ihr mir helfen wie ich die route richtig schreibe so das ich alles auf einer seite angezeigt bekomme also ohne weiterleitung,

    geplant war die anzeige rechts in der site bar und uber den knopf dein warenkorb eine onclick funktion uber die gesamt bestellung sowas wie ein pop up

    Dateien

    • cart1.png

      (266,24 kB, 4 Mal heruntergeladen, zuletzt: )
    • cart2.png

      (110,95 kB, 4 Mal heruntergeladen, zuletzt: )
    • cart4.png

      (155,51 kB, 6 Mal heruntergeladen, zuletzt: )
    • cart5.png

      (153,62 kB, 4 Mal heruntergeladen, zuletzt: )
    • cart6.png

      (152,47 kB, 5 Mal heruntergeladen, zuletzt: )
    • cart7.png

      (157,68 kB, 2 Mal heruntergeladen, zuletzt: )
  • Lerne Fehler selber einzukreisen:

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Und wenn du diese Fehlermeldung bei google einfügst, bekommst du:

    Zitat

    Ungefähr 753.000 Ergebnisse

    Das sollte eigentlich reichen!


    PS: Deine Screenshot sind Käse, poste den Quellcode!