[PHP] Formular REQUEST_METHOD

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Atkaz, 17. März 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 17. März 2010
    Formular REQUEST_METHOD

    Hallo Leute,

    Ich habe Problem. es gehtdarum, dass ich keine Werte in die Datenbank eintragen.
    Ich würde mich freuen, wenn ihr euch das Script angucken würdet.

    PHP:
    <? php 
    ini_set
    ( 'display_errors' 1 );
    error_reporting ( E_ALL );
    session_start ();

    include (
    "../Klassen.php" );
    echo 
    loginCheck ();
    $Produkt = new  datenObjekt ();


    $verbindung  mysql_connect  ( "Localhost" ,
    "++++" "++++" )
    or die (
    "keine Verbindung möglich.
     Benutzername oder Passwort sind falsch"
    );

    mysql_select_db ( "homepage" ) or die ( "Die Datenbank existiert nicht." );

    if (
    'POST'  ==  $_SERVER [ 'REQUEST_METHOD' ]) {
        if (!isset(
    $_POST [ 'Titel' ],  $_POST [ 'Menge' ], $_POST [ 'Ablauf' ], $_POST [ 'Preis' ], $_POST [ 'Beschreibung' ], $_POST [ 'formaction' ])) {
            echo 
    "Benutze das Formular" ;
        exit;
        }
        }
        
    $Titel  mysql_real_escape_string ( $_POST [ "Titel" ]);
    $Preis  mysql_real_escape_string ( $_POST [ "Preis" ]);
    $Beschreibung  mysql_real_escape_string  ( $_POST [ "Beschreibung" ]);
    $Menge  mysql_real_escape_string  ( $_POST [ "Menge" ]);
    $Ablauf  mysql_real_escape_string  ( $_POST [ "Ablauf" ]);
    $id uniqid ( mt_rand ());
    $userID $_SESSION [ 'user' ][ "ID" ];
    $kat $_POST [ 'kat' ];





    if ( $Titel  == ""  ||  $Preis == ""  ||  $Menge  == ""   ) {
    echo 
    "Bitte Füllen Sie alle Felder korrekt aus" ;

    }

    if (!
    preg_match ( '~\A\S{3,30}\z~' $Titel )) {
            
    $Produkt -> ungueltigeEingabe ( "Produkttitel" );
    exit;
    }
        if (!
    preg_match ( "/^\d+$/" , $Preis )) {
            
    $Produkt -> ungueltigeEingabe ( "Preis" );
    exit;
        }
        if (
    $Menge  < ||  $Menge  > 99999 ){
    echo 
    "Bitte geben Sie die richtige Mengenangabe ein" ;
    exit;
    }
        if (!
    preg_match ( "/^\d{1,5}+$/" , $Menge )) {
            
    $Produkt -> ungueltigeEingabe ( "Menge" );
    exit;
        }        
        if (!
    preg_match ( '/^\d{2}\.\d{2}\.(\d{2}|\d{4})$/' $Ablauf )) {
            
    $Produkt -> ungueltigeEingabe ( "Ablauf" );
    exit;
        }



    $eintrag  "INSERT INTO produkt (Id,UserID,Titel,Preis,Menge,Ende,Beschreibung,Kat)
    VALUES
    ('
    $id ',' $userID ',' $Titel ',' $Preis ',' $Menge ',' $Ablauf ',' $Beschreibung ',' $kat ')" ;

    $eintragen  mysql_query ( $eintrag );

    if (
    $eintragen  ==  true ) {

    echo 
    " Produkt wurde erfolgreich Eingetragen." ;
    }
    else
    {
    echo 
    "es ist leider ein fehler aufgetreten." ;
    }


    ?>

    Formular.php
    PHP:
    <body>
    <div align="center">
    <form action="insert.php" method="post">
    <table width="551" border="1">
      <tr>
        <th width="185" ><div align="left">Titel</div></th>
        <th width="350" > <div align="left">
          <input type="text" name="Titel" />
        </div></th>
      </tr>
      <tr>
        <td>Preis</td>
        <td><input type="text" name="Preis" /></td>
      </tr>
      <tr>
        <td>Menge</td>
        <td> <input type="text" name="Menge" /> </td>
      </tr>
      <tr>
        <td>Angebot endet am</td>
        <td><input type="text" name="Ablauf" /></td>
      </tr>
      <tr>
        <td><input type="hidden" name="kat" value="<?php  echo  $_SESSION [ 'kat' ]; ?>" />;</td>
        <td><textarea name="Beschreibung"></textarea></td>
      </tr>
     <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
     </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Abschicken" name="formaction"/>;</td>
      </tr>

    </table>
    </form>

    </div>
     
  2. 17. März 2010
    AW: Problem mit Formular

    sollen wir die fehlermeldung jetzt erraten?
     
  3. 18. März 2010
    AW: Problem mit Formular

    Sorry ich hätte es besser beschreiben sollen

    Die Fehlermeldung ist wie von mir eingegeben:

    PHP:
    if ( $eintragen  ==  true ) {

    echo 
    " Produkt wurde erfolgreich Eingetragen." ;
    }
    else
    {
    echo 
    "es ist leider ein fehler aufgetreten." ;  <---- Fehlermeldung
    }


    ?>
    wenn ich den Befehl lösche, bekommei ich immer eine leere Seite, ohne Fehler und der Eintrag in die DB wird nicht durchgeführt.
     
  4. 18. März 2010
    AW: Problem mit Formular

    Sicher dass nichts eingetragen wird? Hast du nachgeschaut oder dich nur auf deine Fehlrmeldung verlassen?

    Ich glaube in Erinnerung zu haben, dass es so lauten müsste:
    Code:
    $eintragen = @mysql_query($eintrag); 
    
    Lass mich da gerne verbessern
     
  5. 18. März 2010
    AW: Problem mit Formular

    Ist @ nicht zur Fehlerunterdrückung gedacht??


    die datenbank Struktur siehr folendermaßen aus:

    Id varchar(20)
    UserID varchar(10) latin1_swedish_ci
    Titel varchar(50)
    Preis int(6)
    Menge int(5)
    Beschreibung varchar(1000)
    Kat varchar(2)
     
  6. 18. März 2010
    AW: Problem mit Formular

    mach über die fehlermeldung einfach folgendes:
    PHP:
    print  mysql_error ();
    das zeigt die die mysql-interne fehlermeldung an
     
  7. 18. März 2010
    AW: Problem mit Formular

    Vielen Dank!

    der Fehler war: Column count doesn't match value count at row 1

    also bei Insert (Rechtschreibung bzw. zuviele Felder).
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.