Ankündigung

Einklappen
Keine Ankündigung bisher.

Formularfunktionalität

Einklappen

Neue Werbung 2019

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

  • Formularfunktionalität

    Schönen Guten Tag Liebe User,

    bin neu im Forum, in der Hoffnung in der Zukunft hier viele gute Ratschläge und Tipps hinsichtlich
    PHP und MySQL zu erhalten, also verübelt mir bitte nicht, falls die Fragen als "sehr viel" oder "sehr dumm"
    ausfallen *gg* - Wäre auf jeden Fall nett dann bei der Sache zu bleiben und das Problem dann dennoch
    ausführlich genug auszuführen, auch wenn es für euch "sehr leicht" erscheint.

    Aktuell arbeite ich an einer Website für 2006, wobei ich gerade ein Newseingabeformular code.
    Es ist fertig, funktioniert jedoch leider nicht - Wieso?

    Code:
    <?php
        include_once 'checklogin.inc.php';
    ?>
    <link href="formatierung.css" rel="stylesheet" type="text/css">
    <table width="703" align="center">
      <tr>
        <td><div align="center">
          <table width="695" height="26" background="images/bg_titel.jpg">
            <tr>
              <td background="images/bg_titel.jpg"><div align="center" class="footer">Adminbereich | Newseingabe [Startseite]</div></td>
            </tr>
          </table>
        </div></td>
      </tr>
      <tr>
        <td><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
          <table width="300" align="center">
            <tr class="menue_start">
              <td width="144"><div align="center">Autor</div></td>
              <td width="144"><div align="center">Datum</div></td>
            </tr>
            <tr>
              <td><div align="center">
                <input name="Autor" type="text" id="Autor"> 
                </div></td>
              <td><input name="Datum" type="text" id="Datum" value="XX/XX/XXXX"></td>
            </tr>
          </table>
          <table width="650" align="center">
            <tr>
              <td class="menue_start"><div align="center">Newstitel</div></td>
            </tr>
            <tr>
              <td><div align="center">
                <input name="Newstitel" type="text" id="Newstitel" size="50">
              </div></td>
            </tr>
            <tr>
              <td class="menue_start"><div align="center">Newstext</div></td>
            </tr>
            <tr>
              <td><div align="center">
                <textarea name="Newstext" cols="50" id="Newstext"></textarea>
              </div></td>
            </tr>
            <tr>
              <td><div align="center">
                <input type="submit" name="Submit" value="- Newsbeitrag absenden -">
              </div></td>
            </tr>
          </table>
          </form></td>
      </tr>
    </table>
    <?php
    if( !empty($_POST["Submit"])) {
    if( !$connection = mysql_connect("localhost","XXX","XXX" ) ) {
            die( 'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
              }
    if( !mysql_select_db( XXX, $connection ) ) {
            die ( 'Die Datenbank kann nicht verwendet werden. 
    
                           MySQL-Error: 
    ' . mysql_error() );
              }
    $sql="INSERT INTO Ekstraklasa_News " .
    "(ID, Autor, Datum, Newstitel, Newstext, Bild) VALUES ('', '$_POST[Autor]', '$_POST[Datum]', '$_POST[Newstitel]', '$_POST[Newstext]', '$_POST[Bild]')";
    if (mysql_query($sql)) {
    echo "<span class=/footer/>Glückwunsch! Dateieingabe erfolgreich</span>";
    }
    else {
    echo "<span class=/footer/>Ihr Eintrag konnte nicht eingetragen werden!</span>";
    }
    mysql_close();
    }
    ?>
    Schonmal großen Dank für eure Hilfe!

    PS: Also weder noch dass "Eintrag erfolgreich abgeschickt", noch das "Nicht erfolgreich Eintrag abgeschickt" erscheint,
    ebenso wenig wie ein MySQL-Eintrag / Irgendwo scheint da ein elementarer Fehler zu sein, doch wo?

    Liebe Grüße
    Chris


  • #2
    Code:
    Wäre auf jeden Fall nett dann bei der Sache zu bleiben und das Problem dann dennoch
    ausführlich genug auszuführen, auch wenn es für euch "sehr leicht" erscheint.
    Nimms mir nicht übel aber das hier ist keine gratis Lehrveranstaltung.
    Es gibt sehr gute Tutorials für den Einstieg in die Materie. Einige Links findest du im Anfängerforum, im zweiten oder dritten Thread.

    Pack deinen Code mal in [ php ] bbcode, dafür ist das nämlich da.
    Benutz aber bitte die edit Funktion vom Forum, nicht neues Posting anwerfen.

    Mach mal
    PHP-Code:
    <?php
    echo '<pre>';
    print_r($_POST);
    echo 
    '</pre>';
    ?>
    und lass dir alle Werte aus dem Formular ausgeben, dann fragst du gezielt danach.
    - sind die Werte da?
    - sind die Werte so wie sie sein sollen?
    - ...

    error_reporting(E_ALL); // ganz oben in dein script rein, dann kriegste Fehlermeldungen in Echtzeit an den Kopf getackert

    greez search
    schlimmer gehts nimmer.... dümmer immer!

    Kommentar


    • #3
      Hallo Chris.

      Nicht ausfürlich, aber sicherlich ausreichend:

      1. Bevor du auf den Wert einer Variable bzw. eines Array-Feldes zugreist, stelle die Existenz derer/dieses sicher:
      PHP-Code:
      if (isset($_POST['foo'])) {
          
      $foo $_POST['foo'];
      } else {
          
      $foo 'Default-Wert';
      }

      // oder kurz:

      $foo = isset($_POST['foo']) ? $_POST['foo'] : 'Default-Wert'
      2. http://php.net/manual/en/language.types.array.php ("Why is $foo[bar] wrong?")

      3. http://php-faq.de/q/q-sql-injection.html

      Basti

      Kommentar

      Lädt...
      X