Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular Problem

Einklappen

Neue Werbung 2019

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

  • Formular Problem

    Hallo zusammen.
    Ich habe mal aus vershciednene Quellen ein G�stebuch zusammengestellt und modifiziert.

    Hat soweit immer wunderbar funktioniert, doch seit neuestem werden ekein Daten mehr an die MySQL dantenbank weitergegeben.



    <?php
    include("inc/connect.inc.php");
    include("inc/functions.inc.php");
    $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    $datum = date("d.m.Y");
    $zeit = date("H:i");
    ?>


    //Hier stehen normalerweise die ganzen Fehlermeldungsabfragen (unnötig)
    Ã* la
    if($name == "") {
    $fehler = 1; echo...}

    <?php
    if(!$submit) {
    ?>

    <form action="eintragen.php" method="post">
    <table width="400" border="1" cellpadding="5" cellspacing="1" align="center" bordercolor="#003300" style="border-collapse: collapse;">
    <tr>
    <td width="190">Datum - Uhrzeit:</td>
    <td colspan="2"><?php echo $datum; ?><?php echo $zeit; ?></td>
    </tr>
    <tr>
    <td width="190" >Deine IP-Adresse:</td>
    <td colspan="2"><?php echo $ip; ?> <span class="hinweis">(Wird zu unserer Sicherheit gespeichert)</span></td>
    </tr>
    <tr>
    <td width="190" >Dein Name*:</td>
    <td colspan="2"><input type="text" name="name" size="43" class="input" style="background-color: transparent; font-family: Tahoma; font-size: 11px; border: 1px solid #003300; color: #ff0000;"></td>
    </tr>
    <tr>
    <td width="190" >Deine E-Mailadresse:</td>
    <td colspan="2"><input type="text" name="email" size="43" class="input" style="background-color: transparent; font-family: Tahoma; font-size: 11px; border: 1px solid #003300; color: #ff0000;"></td>
    </tr>
    <tr>
    <td width="190" >Deine Homepage:</td>
    <td colspan="2"><input type="text" name="www" value="http://" size="43" class="input" style="background-color: transparent; font-family: Tahoma; font-size: 11px; border: 1px solid #003300; color: #ff0000;"> </td>
    </tr>
    <tr>
    <td width="190" valign="top">Dein Eintrag*:








    Bilder einf�gen mit
    [img][/img]


    </td>
    <td valign="top"><textarea name="eintrag" cols="40" rows="15" wrap="virtual" class="textarea" style="background-color: transparent; font-family: Tahoma; font-size: 11px; border: 1px solid #003300; color: #ff0000;"></textarea></td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    <input type="submit" name="submit" value="Submit" style="background-color: transparent; height: 20px; font-family: Tahoma; font-size: 12px; border: 1px solid #ff0000; color: #ff0000;"></td>
    </tr>
    <tr>
    <td height="40" colspan="2" align="center" valign="middle">Zur&uuml;ck zu den Eintr&auml;gen</td>
    </tr>
    </table>
    </form>

    <?php
    }elseif($submit && $fehler == 1) {
    echo $fehlermeldungStart;
    echo $fehlermeldung;
    echo $fehlermeldungEnde;
    }else{

    $sql = "INSERT INTO gbook VALUES ('','$datum','$zeit','$name','$email','$www','$ein trag','$ip')";
    @mysql_query($sql, $connect) or die("Konnte keine Daten in die Datenbank schreiben!

    Bitte versuchen Sie es sp&auml;ter noch einmal. <a href=\"index.php\">HIER</a> gelangen Sie zur&uuml;ck zum G&auml;stebuch.");
    ?>

    <table width="600" border="0" bgcolor="#000000" cellpadding="5" cellspacing="1" align="center">
    <tr>
    <td bgcolor="#227CAC" align="center">Vielen Dank f&uuml;r Deinen Eintrag

    HIER geht&acute;s zur&uuml;ck ins G&auml;stebuch</td>
    </tr>
    </table>

    <?php
    }
    ?>
    Das Problem liegt darin, dass er die Schleife nach der elseif also die else schleife nicht abarbeitet. Also wird anscheinend der wert Submit nicht auf 1 bei klick auf submit ge�ndert. Hat jemand ne ahnung wie ich das machen kann?
    wenn man oben die variable $submit = 1 setzt werden die Daten aber durchaus in die Datenabnk geschirbeen.
    Also meine Frage... wie bekomme ich durch den klick auf "Submit" die variable $submit auf 1?

  • #2
    also...

    ich habe mal ein paar Standard-Antworten für dich:

    error_reporting
    Du solltest zu Beginn des Skriptes folgendes stehen haben:
    PHP-Code:
    <?php
      error_reporting
    (E_ALL);
    ?>
    Dann werden dir Fehler im PHP-Code angezeigt. Dann weißt du, was du noch beseitigen musst.
    http://de2.php.net/error_reporting
    Ebenso kann man das auch in die config-Datei schreiben, wenn diese auf jeder Seite zu Beginn eingebunden wird.
    Mögliche Fehler die dann auftreten und wie man sie beheben kann:
    Notice: Use of undefined constant ...
    Notice: Undefined variable ...


    register_globals
    Aus Sicherheitsgründen sollte register_globals auf OFF stehen.
    Überprüfen kannst du das in einer Datei folgenden Inhalts:
    PHP-Code:
    <?php
      phpinfo
    ();
    ?>
    Dort nach register_globals suchen.

    Wenn dein hoster es dir gestattet, dann kannst du das für den Fall, dass es bei dir auf ON stehen sollte versuchen in der .htaccess zu ändern:
    Code:
    php_flag register_globals Off
    Warum das alles?
    http://www.php-faq.de/search.php?q=register_global

    Dann noch ein link innerhalb des Forums:
    http://www.phpfriend.de/ftopic26569.html
    -> lesen, verstehen, umsetzen !!


    mysql_error
    Man sollte immer mysql_error() verwenden. Etwa so:
    PHP-Code:
    <?php
      $sql 
    "SELECT
          `feldname `
        FROM
          `tabellenname`
        WHERE
          ID=1"
    ;
      
    $result mysql_query($sql) or die('<h2>Fehler</h2>sql-querry: '$sql.'
    error: '
    .mysql_error());
      
    // ...
    ?>
    http://de2.php.net/mysql_error


    HTTP_POST_VARS und Co sind veraltet.
    Bitte nutze nur noch die superglobalen:
    $_POST, $_GET, $_COOKIE, $_SERVER, $_SESSION, ...


    Bitte [php]-tags anstatt der [code]-tags verwenden

    Kommentar

    Lädt...
    X