Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Formular mit $_POST an Ergebnisseite und Datenbank

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Formular mit $_POST an Ergebnisseite und Datenbank

    Hallo Forengemeinde,

    ich habe ein Problem und bin noch ein ziemlicher Anfänger, daher reicht auch einfach ein Stups in die richtige Richtung.

    Ich habe ein Formular mit welchem ich Gutscheine in einer Datenbank speichern möchte, nach dem Anlegen eines Gutscheins lasse ich mir die Daten auf derselben Seite anzeigen.

    Ein Gutschein hat einen zufällig generierten Code, ein Verfallsdatum, einen Rabatt und optional einen Kommentar.

    Das lief auch alles (auch wenn es vermutlich kein sauberer Code ist), bis ich jetzt die Details nach dem Anlegen auf einer eigenen Ergebnisseite.php anzeigen wollte statt auf derselben.

    Jetzt schreibt er mir die Daten nicht mehr in die DB sondern nur noch auf die Detailseite.
    Also momentanes Problem: Irgendwie scheint es DB oder Ergebnisseite zu heißen..

    Hier mein Code...

    PHP-Code:
    <?php
    error_reporting
    (E_ALL ^  E_NOTICE);    
    include 
    'inc_connect.php';



     
    // @'s entfernen
    $code$_POST['code'];


    $discount=$_POST['discount'];


    $validUntil=$_POST['validUntil'];



    $description=$_POST['description'];


    // wenn die Form bereits abgesendet wurde

    if (isset($_POST['submit']) AND $_POST['submit']=='submit')
    {
        if (!empty(
    $discount) && ($validUntil))
        {
        
        
    $query= ("INSERT INTO voucheradmin (Code, Discount, ValidUntil, Used, Description)
            VALUES ('
    $code', '$discount', '$validUntil','No', '$description')");


        
    $resultmysqli_query ($connect$query);
        
            if (
    $result == true)
            {
            




        echo
    " Your Voucher was succesfully created: "?> <br/><br/><?php echo ""$_POST['code'];?><br/><br/>

    <?php

        
    echo""    $_POST['discount'];?><br/><br/>

    <?php

        
    echo""    $_POST['validUntil'];?><br/><br/>

    <?php

        
    echo""    $_POST['description'];?><br/><br/>

    <?php
            
    }
        }


        else

        {

        echo 
    " No db save";
        
    mysqli_close($connect);
    }
    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>
        
        <title>unbenannt</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Geany 1.24" />
        
    <?php
    // Datum ins englische konvertieren (für Datenbank):
    function konv_date2($validUntil)
    {
        
    $jahr substr($validUntil,6,4);
        
    $mon  substr($validUntil,3,2);
        
    $tag  substr($validUntil,0,2);
        
    $validUntilnew $jahr.'-'.$mon.'-'.$tag;
    return 
    $validUntilnew;
    }

    ?>
    </head>

    <body>
        

        
        <form name="myForm" action="ergebnisseite.php" method="post" >


    <tr>
        <br/><br/><td width"150"><strong>Generierter Code: </strong></td><br/><br/>
        <td><input type="text" readonly="readonly" size="60" name="code" value='<?php $code substr(str_shuffle("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"),08); echo "$code";?>'/></td>
    </tr>



    <tr>
        <br/><strong>Discount:</strong><br/> <br/>
       <select name="discount">
            <option value="">--- bitte w&auml;hlen ---</option>
            <option value="0.1">10%</option>
            <option value="0.2">20%</option>
            <option value="0.3">30%</option>
       </select>
    </tr>



    <tr>
        <br/><br/><td><strong>Description: </strong></td><br/><br/>
        <td><input type="textarea" size="60" name="description"/></td>
    </tr>



    <tr>
        <br/><br/><td width"150"><strong>ValidUntil: </strong></td><br/><br/>
        <td><input type="text" name="validUntil" id="datepicker" /></td><br/><br/>
    </tr>



    <br/><br/><input type="submit" name="submit" value="submit"/>



    <input type="Reset" name="reset" value="Reset"/>

        
        
        </form>
    </body>

    </html>
    Ich sitze an dem Ding durchgehend seit einigen Wochen und da es bis gerade noch ging bin ich umso mehr verwirrt.

    Das ist auch das Projekt an dem ich die Grundlagen lerne inklusive der ganzen alten Tutorials die so rumschwirren.

    Ich bin dankbar für alle Anmerkungen/Verbessungsvorschläge (auch zur Qualität des Codes) und dass ihr euch die Zeit genommen habt das zu lesen.

    MfG

    Mista


  • #2
    Auch wenn ich es vorbildlich finde, dass du dir soviel mühe gemacht hast, ist das ganze unlesbar. Der PHP-BBCode kommt auch mit HTML klar, also hötte ein großer PHP-Code-Block für den ganzen Code gereicht.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Habe ich auch gerade gesehen..
      Ich hoffe so ist es besser.

      Kommentar


      • #4
        - Verwende mal error_reporting(-1), dann wird es einige Notices hageln, die mel beheben. Stichwort isset() oder empty().

        - Funktion gehört auch rauf in den PHP-Teil und du machst hier eine Ausgabe wo das HTML Dokument noch gar nicht begonnen hat

        PHP-Code:
            echo" Your Voucher was succesfully created: "?> <br/><br/><?
        http://php-de.github.io/jumpto/eva-prinzip/


        - Sicherheit, noch dringender ansehen, SQL-Injection Gefahr! http://php-de.github.io/jumpto/sql-injection/

        - Ein Detail: warum hängst du da einen Leer-String dazu? Kannst weglassen ist sinnlos.
        PHP-Code:
        echo""    $_POST['discount']; 
        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


        • #5
          Danke erstmal für die Rückmeldung!!

          - Meinst du ich sollte noch eine isset/empty Überprüfung vor die Variablen machen ?

          Die habe ich ja direkt danach überprüft und die query davon abhängig gemacht..

          - Danke ! Ich weiß immer nicht bei den ganzen Codeschnipseln wo so eine Funktion eigentlich hingehört *shame on me*

          - Sicherheit:
          PHP-Code:
          $codemysqli_real_escape_string($connect$_POST['code']); 
          ?

          - Ich bekomme einen Parse Error sobald ich das echo rausnehme..

          Kommentar


          • #6
            Die Ausgabe vor dem Html Teil findet ja nur statt wenn das Formular bereits abgeschickt wurde, oder eben nicht, ist das schlechter Stil oder nur falsch ?

            Kommentar

            Lädt...
            X