Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP wird nicht richtig ausgegeben

Einklappen

Neue Werbung 2019

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

  • PHP wird nicht richtig ausgegeben

    Hallo liebe Community
    Ich bin neu unter euch und habe auch direkt schon ein kleines Problem:

    Ich habe eine MySQL Datenbank erstellt und möchte über ein HTML Formular den User Datenbankeinträge hinzufügen lassen.
    Die HTML habe ich schon:

    Code:
    <html>
    	<form method="post" action="TestHinzufugenFormulare.php">
    	
    		<p>ID</p> 
    	<input type="text" name="ID">
    	
    		<p>URL</p>
    	<input type="text" name="URL">
    	
    		<p>Kategorie</p>
    	<input type="text" name="Kategorie">
    	
    		<p>Datum des Eintrags</p>
    	<input type="text" name="DatumDesEintrags">
    	
    		<p>Notiz</p>
    	<input type="text" name="Notiz">
    		</br>
    		</br>
    	<input type="submit">
      </form>
    </html>

    Und nun mein PHP Code:

    PHP-Code:
    <?PHP
    include("Verbindung.php");



    $ID $_POST[ID];
    $URL$_POST[URL];
    $Kategorie$_POST[Kategorie];
    $DatumDesEintrags$_POST[DatumDesEintrags];
    $Notiz$_POST[Notiz];

    $insert mysql_query("INSERT INTO weblinks 
    (ID, URL, Kategorie, DatumDesEintrags, Notiz)
    VALUES
    ('
    $ID', '$URL', '$Kategorie', '$DatumDesEintrags', '$Notiz')")


    ?>
    Eigentlich alles noch relativ übersichtlich, aber wenn ich die gewünschten Daten in die Formulare eingebe und abschicke, zeigt mir der Browser die PHP an wie sie auch im Editor steht, sprich er scheint sie gar nicht auszuführen.
    Und ich weiß eben nicht warum bzw wo der Fehler liegt.

    Ich hoffe ihr könnt mir helfen..
    MfG Cartman


  • #2
    Du hast einen Webserver mit PHP laufen? Die Datei hat die Extension .php?
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Nein mein Webserver läuft mit xampp also Apache und MySQL, wenn du das meinst^^
      Und ja die Dateien haben auch alle die richtige Endung

      Kommentar


      • #4
        Und du gehst auch mit http://localhost auf die Seite?
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Oh nein stimmt ja..
          Bin gerade im Training, wenn ich zuhause bin teste ich das direkt mal aus, danke soweit!

          Kommentar


          • #6
            Gleich noch als Info.

            PHP-Code:
            $ID $_POST[ID]; 
            //...
            $Notiz$_POST[Notiz]; 
            Da entstehen Notices, weil du versuchst eine Konstante als Index zu verwenden. PHP ist so großzügig bei Nicht-finden der Konstanten es mit einer Zeichenkette als Index zu versuchen.
            Korrekt wäre es so:
            PHP-Code:
            $ID $_POST['ID']; 
            //...
            $Notiz$_POST['Notiz']; 
            Noch besser wäre es, wenn du vor der Zuweisung auch noch prüfst, ob der Wert überhaupt übertragen wurde.
            Stichworte: if, isset()


            Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
            Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
            Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              Bis hierher danke schonmal an euch!
              Ich bin schon ein großes Stück weiter gekommen, aber jetzt hat PHP ein neues Problem:
              " Warning: mysqli_query() expects at least 2 parameters, 1 given in I:\xampplite\htdocs\TestHinzufugenFormulare.php on line 15 "

              Hier wieder meine Codes:

              Code:
              <html>
              	<form method="post" action="TestHinzufugenFormulare.php">
              	
              		<p>ID</p> 
              	<input type="text" name="ID">
              	
              		<p>URL</p>
              	<input type="text" name="URL">
              	
              		<p>Kategorie</p>
              	<input type="text" name="Kategorie">
              	
              		<p>Datum des Eintrags</p>
              	<input type="text" name="DatumDesEintrags">
              	
              		<p>Notiz</p>
              	<input type="text" name="Notiz">
              		</br>
              		</br>
              	<input type="submit">
                </form>
              </html>

              PHP-Code:
              <?PHP
              include("Verbindung.php");



              $ID $_POST['ID'];
              $URL$_POST['URL'];
              $Kategorie$_POST['Kategorie'];
              $DatumDesEintrags$_POST['DatumDesEintrags'];
              $Notiz$_POST['Notiz'];

              $insert mysqli_query("INSERT INTO weblinks 
              (ID, URL, Kategorie, DatumDesEintrags, Notiz)
              VALUES
              ('
              $ID', '$URL', '$Kategorie', '$DatumDesEintrags', '$Notiz')")


              ?>
              Würdet ihr mir nochmal helfen bitte?

              Kommentar


              • #8
                mysqli_query erwartet als ersten Parameter die Verbindung die über mysqli_connect erzeugt wird.


                PHP-Code:
                mysqli_query($link$query
                - Laravel

                Kommentar


                • #9
                  So vielen Dank an alle die mir geholfen haben, es funktioniert nun!

                  Kommentar


                  • #10
                    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
                    !! Bitte schau dir das auch noch an, deine Query ist unsicher - dh offen für Manipulationen von Aussen, da kann dir jemand ratz fatz deine Daten löschen oder sich einen Admin-Benutzer anlegen, oder andere löschen etc..

                    Schau hier - das Problem: http://php-de.github.io/jumpto/sql-injection/

                    Die Lösung:
                    http://www.peterkropff.de/site/mysql...statements.htm
                    http://php.net/manual/de/pdo.prepared-statements.php

                    Ansonten bitte auf jeden Fall in deiner Query mysqli_real_escape_string() verwenden, damit ist die dann dagegen schon abgesichert. http://php.net/manual/de/mysqli.real-escape-string.php

                    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


                    • #11
                      du kannst mysqli auch im OOP Styl verwenden, dann musst du nicht immer die Verbindung umständlich angeben.

                      PHP-Code:
                      $verbindung = new mysqli('localhost''user''passwort''datenbank');
                      //und dann

                      $verbindung->query("Dein Query"); nutzen 
                      Mit PDO geht das ganz ähnlich und ist eine modernere, einfacher, und vorteilhaftere Schreibweise (auch wenn man am Anfang die Bedeutung noch nicht so versteht)
                      Fatal Error: Windows wird gestartet

                      Wie administriert man ein Netzwerk: Beispiel

                      Kommentar

                      Lädt...
                      X