[PHP5] Formular wird nicht in DB geschrieben

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

  • [PHP5] Formular wird nicht in DB geschrieben

    Hallo,

    ich verzweifle gerade weil im XAMPP mit phpMyAdmin alles klappt, aber auf meinem Stratowebspace nicht.


    Wahrscheinlich habt ihr diese Anfängerfrage oft genug gehört, aber ich habe im Forum nichts passendes gefunden.

    Ich möchte auf Basis von PHP5 ein Bestellformular ausfüllen lassen, über die Include-Datei die SQL-Befehle ausführen und an die Bestelldatei den Autowert des Datensatzes zurückgeben lassen.

    Leider wird nichts in die DB geschrieben. Strato arbeitet mit "Globals off".

    Nach Drücken des Absendebuttons bleibt di eSeite stehen.

    Hier mein Code etwas verkürzt nur anhand eines Beispielfeldes dargestellt:


    formular.php:

    [color=blue]<?php

    session_start();

    include ("include.php")

    if ($Send && !empty($_POST["Name"]))
    {
    schreibeBestellung();
    header( "Location: danke.php" );
    }
    ?>

    <title>Kartenvorbestellung</title>

    <head>
    <link rel=stylesheet type="text/css" href="../evb-style.css">
    </head>

    <body>
    <form action="<?php print $PHP_SELF;?>" method="post" >

    <table>
    <tr>
    <td width="200" align="right">
    Name<font color=red size=2>*</font>:
    </td>
    <td><input type="text" name="Name" value="<?php print $_POST["Name"]; ?>" maxlength=30 size="40"

    border="0">
    </td>
    <td><input type="submit" name="Send" value="Bestellen"
    </td>
    </tr>
    </table>
    </body>[/color]


    include.php:

    [color=blutrot]<?php

    function schreibeBestellung()
    $Name = $_POST["Name"];

    $query = "INSERT INTO Tabelle (Spalte1)
    values('$Name);
    $ergebnis = mysql_query( $query, $connect );
    if ( ! $ergebnis )
    die ( "schreibeBestellung error:".mysqlerror() );
    return $_SESSION['reservierung'] = mysql_insert_id($connect);
    }

    ?>[/color]

    Es wäre schön, wenn ihr mir eine Antwort geben könntet.
    Zuletzt geändert von fun_fred; 23.10.2005, 22:35.

  • #2
    bin zwar kein profie bei php aber versuch mal

    Code:
    <?php print $_SERVER['PHP_SELF']; ?>
    und bei deinem include.php
    solte das glaub ich
    Code:
    values('$Name);
    so aussehen?
    Code:
    values('$Name');
    Zuletzt geändert von McKani; 23.10.2005, 23:00.

    Kommentar


    • #3
      Habe auf

      [color=blue]<form action="<?php print $_SERVER[PHP_SELF]; ?>" method="post" >[/color]

      geändert. Es wird aber immer noch nicht geschrieben.

      [color=blue]values('$Name'); [/color]
      habe ich im Script stehen. Ist hier nur ein Tippfehler beim Übernehmen.



      Zuletzt geändert von fun_fred; 23.10.2005, 23:08.

      Kommentar


      • #4
        gibt es den keine fehler ?
        tu mal in die dateien
        folgendes rein
        Code:
        error_reporting(E_ALL);

        Kommentar


        • #5
          Habe ich gemacht. Nun bekomme ich die Fehlermeldung

          [color=red]Parse error: parse error, unexpected T_STRING in /mnt/am1/07/842/00000016/formular.php on line 39[/color]

          und das ist genau die Zeile mit

          [color=blue] header( "Location: danke.php" );[/color]

          Was ist daran falsch?

          Kommentar


          • #6
            mach mal folgendes...
            Fang bei deinem script:
            Code:
            <?php
            
            session_start();
            
            include ("include.php")
            
            if ($Send && !empty($_POST["Name"]))
            {
            schreibeBestellung();
            header( "Location: danke.php" );
            }
            ?>
            nicht so...
            sondern..
            PHP-Code:
            <?php

            session_start
            ();
            if (
            $Send && !empty($_POST["Name"]))
            {
            schreibeBestellung();
            header("Location: danke.php");
            }
            include (
            "include.php")
            ?>
            So...

            gugg mal was dan kommt....

            ....//edit
            Es könnte auch sein das irgent etwas mit
            Code:
            schreibeBestellung();
            Nicht stimmt, lass es mal raus wenns nicht funzt wie hier oben...

            Grüße

            Kommentar


            • #7
              Hast du hier etwa Leerschläge drin ?
              PHP-Code:
              ...
              include(
              'Location: danke.php'); 
              Ausserdem arbeitest du anscheinden mit register_globals off. Eine deiner Bedingungen verlangt aber globals on:
              PHP-Code:
              if($Send && !empty($_POST["Name"])){
                 
              //besser so:
              }
              if(
              $_POST['Send'] && !empty($_POST['Name'])){
                 
              //so ist's ohne globals on

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                PHP-Code:
                values('$Name'); 
                funktioniert sowieso nicht weil Strings in ' nicht interpretiert werden. Wenn schon muss das

                PHP-Code:
                values("$Name"); 
                heissen.
                mens agitat molem

                Kommentar


                • #9
                  So ein Quatsch! Guck dir mal bitte den Context an.

                  PHP-Code:
                  echo "Query mit ('$variable')"
                  Funktioniert sehr wohl!

                  Schon der zweite Fehltritt heute morgen

                  Kommentar


                  • #10
                    funktioniert sowieso nicht weil Strings in ' nicht interpretiert werden. Wenn schon muss das ...
                    Nicht ganz korrekt, denn der String beginnt ja mit ". Er hat aber sicherlich das abschliessende " seiner Query vergessen.

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Ja, hätte der Threadstarter http://www.php-resource.de/forum/sho...threadid=50454 gelesen und befolgt, wäre es sicher aufgefallen...

                      Kommentar


                      • #12
                        Hallo zusammen,

                        danke für eure Tipps! Ich bin leider nicht eher dazu gekommen, mich zu melden.

                        Eure Tipps haben mich leider nicht weiter gebracht. Das abschließende " hatte ich gesetzt nur nicht in der verkürzten Version hier.

                        Ich bin auf PHP4 zurückgesprungen mit Globals On. Da schreibt dann mein Script in die DB.

                        Der Forwarder über
                        PHP-Code:
                         header"Location: danke.php" ); 
                        funktioniert auch hier nicht. Also habe ich die Bestätigung in die selbe Seite geschrieben, in der das Formular steht, dieses nur nicht mr angezeigt.

                        Mit den Superglobals und $_POST komme ich anscheinend noch nicht so richtig zurecht. Bin halt kein Programmierer sondenr Autodidakt mit PHP-Ambitionen

                        Ich werde noch ein bißchen in die PHP-Schule gehen müssen, hatte für dieses Projekt aber keine Zeit mehr, um das in der von mir gewünschten Form hin zu bekommen.

                        Es ist allerdings sehr schön, soviel Rückmledung zu erhalten

                        DANKE, DANKE. ich wünsche euch weiterhin viel Spaß beim um die Wette-Tipp-Geben

                        Kommentar


                        • #13
                          Sehe ich das richtig, dass du die Variablen deiner Form dem gleichen script übergeben willst ? Wenn ja, reicht

                          PHP-Code:
                          <form action="" method="post"
                          Zweitens :

                          PHP-Code:
                          <td><input type="submit" name="Send" value="Bestellen"
                          </td
                          </
                          tr>
                          </
                          table>
                          </
                          body
                          Da fehlt > nach value="Bestellen" und (so wie es aussieht) </form>

                          Drittens :

                          PHP-Code:
                          $Name $_POST["Name"]; 
                          Bin mir nicht sicher, aber ich persönlich schreibe das immer so :

                          PHP-Code:
                          $Name $_POST[Name]; 
                          und es hat bisher immer tadellos funktioniert.

                          Kommentar

                          Lädt...
                          X