tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
463
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vzm800
    vzm800 vzm800 ist offline Rookie
    Registriert seit
    Sep 2010
    Beiträge
    5
    Hallo an alle,

    ich benötige ein Formular, welches auf einer HP Unterseite (nur Admin Zugang) ausgefüllt wird und dann auf der Website mit bestimmten werten sofort ausgegeben werden soll.
    Zum besseren Verständnis.
    Der Admin gibt im Formular auf der Unterseite Name, Cocktailname, Datum, Uhrzeit und Zusammenstellung ein.
    Auf Website sollen nun nur Name, Cocktailname, Datum angezeigt werden. Gleichzeitig sollen aber alle Werte in einer Datenbank gespeichert werden.
    Da ich mich mit PHP Programmierung nicht so auskenne dachte ich es gibt PHP Vorlagen, die man entsprechend bearbeiten könnte.

    Ich wäre sehr dankbar für Hinweise.
     

  2. #2
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Grüße,

    ich muss gleich zu Beginn mal fragen, wie weit die eigentliche HP schon fortgeschritten ist? Muss der Admin-Zugang noch implementiert werden oder besteht der schon. Wenn es sich nur um das Einschreiben von Formulardaten in eine Datenbank mit anschließender Ausgabe auf der HP (auch für normale Nutzer oder auch nur für den Admin?) handelt, dann können wir das auch hier schnell basteln .
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  3. #3
    Avatar von vzm800
    vzm800 vzm800 ist offline Rookie
    Registriert seit
    Sep 2010
    Beiträge
    5
    Hallo,

    also die HP ist fast fertig und liegt auf einem Testserver. Den Admin Zugang habe ich noch nicht eingerichtet.
    Normalerweise ist das vieleicht auch nicht Notwendig, da ich die Seite in der die Daten eingetragen werden nicht in die Navigation mit einbeziehen möchte. Die ausgegebenen Daten auf der HP sollen nur Sichtbar sein. Also keine Bearbeitung möglich. Für den Admin sollen die Daten zur Verfügung stehen.

    Ich schick mal die Adresse mit. Unter Cocktailtraum sollen wie gesagt die Daten wie Name, Uhrzeit und der Name des Cocktails aufgelistet werden.

    http://jamboree-deutschland.co.de

    vielen Dank schon mal.
     

  4. #4
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Najut, da bastle ich mal eben was - muss nur noch fragen, ob es denn auch schon ne Datenbank gibt, oder ob die noch angelegt werden muss?
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  5. #5
    Avatar von vzm800
    vzm800 vzm800 ist offline Rookie
    Registriert seit
    Sep 2010
    Beiträge
    5
    Hallo Alex,

    die muss ich noch anlegen. Sollte aber kein Problem sein, oder?
     

  6. #6
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Naja,
    ich sag mal so, wenn du schon wüsstest, wie du die Datenbank strukturieren möchtest (soll heißen: Spaltennamen, Feldtypen), dann würde sich das Ganze schon mal etwas einfacher gestalten. Ich kann dir natürlich auch einen Blanko-Code posten, in dem du dann nur noch die Spaltennamen austauschen müsstest...
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  7. #7
    Avatar von vzm800
    vzm800 vzm800 ist offline Rookie
    Registriert seit
    Sep 2010
    Beiträge
    5
    Ich noch mal.

    Hab sie erstellt. MySQL
    Der name lautet:

    db729687-cocktails

    Danke
     

  8. #8
    Avatar von vzm800
    vzm800 vzm800 ist offline Rookie
    Registriert seit
    Sep 2010
    Beiträge
    5
    Das mit dem Blanko-Code wäre vieleicht die bessere Varante.

    Gruß Mike
     

  9. #9
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Mahlzeit,

    muss mich erstmal für die Verzögerung entschuldigen - ich musste noch was für die Uni machen .
    Aber jetzt hab ich mal den Code mitgebracht:

    Als erstes das Formular, welches du unangetastet lassen kannst (Design ist natürlich nicht das gelbe vom Ei - das kannst du gerne noch ändern ). Den Formularcode einfach an der gewünschten Stelle im Code einpflegen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    <form method='POST' action='<?php $_SERVER['PHP_SELF']?>'>
    <table border='0' cellspacing='0' cellpadding='0' align='' width='300'>
    <tr>
        <td>
        <font>Name:</font><input type='text' name='Name' size='40'>
        </td>
    </tr>
    <tr>
        <td>
        <font>Cocktail-Name:</font><input type='text' name='Cocktailname' size='40'><br><br>
        </td>
    </tr>
    </table><br>
     
    <table border='0' cellspacing='0' cellpadding='0' align='' width='300'>
    <tr>
        <td>
        <font>Zusammensetzung:</font>
        </td>
    </tr>
    <tr>
        <td>
        <textarea name='Zusammensetzung' value='' cols='40' rows='20'></textarea>
        </td>
    </tr>
    </table><br>
     
    <input type='submit' name='Bestätigen' value='Bestätigen'>
    </form>

    Als nächstes kommt der Code, der die Formulareingaben verarbeitet und Sie in die Datenbank einträgt (am besten gleich nach dem Formularcode einfügen, damit die Ausgaben auch in diesem Bereich erscheinen):

    PHP-Code:
    <?php
    if(isset($_POST['Bestätigen'])) {
        
        function 
    StrSafe ($inhalt) {
                if (!empty(
    $inhalt)) {
                
    //Umlaute und Sonderzeichen in HTML-Schreibweise umwandeln
                
    $inhalt htmlentities($inhalt);
                
    //Entfernt Überflüssige Zeichen am Anfang und Ende der Zeichenkette
                
    $inhalt trim($inhalt);
                
    //Backslashes entfernen
                
    $inhalt stripslashes($inhalt);
        }
        return 
    $inhalt;
        }
        
    foreach (
    $_POST as $key=>$element) {
        
    //Dynamische Variablen erzeugen und Eingaben filtern
        
    ${"g_".$key} = StrSafe($element);
    }

    //Auf Eingabe prüfen
    if(!strlen($g_Name)) {
        
    $error_msg.= "Sie müssen einen Namen angeben!";
    }

    if(!
    strlen($g_Cocktailname)) {
        
    $error_msg.= "Sie müssen einen Cocktail-Namen angeben!";
    }

    if(!
    strlen($g_Zusammensetzung)) {
        
    $error_msg.= "Sie müssen die Zusammensetzung angeben!";
    }


    //Ausgabe der Fehlermeldung, falls vorhanden
    if($error_msg) {
        echo
    "$error_msg<br>";
    } else {

    //Datum der Einschreibung
    $Datum date("d-m-Y");
    //Uhrzeit der Einschreibung
    $Zeit date("H:i");

    $Hostname "";
    $Benutzername "";
    $Passwort "";
    $Datenbank "db729687-cocktails";
    $Datenbanktabelle "";

    $db = new mysqli($Hostname$Benutzername$Passwort$Datenbank);
    if(
    mysqli_connect_errno()) {
        
    printf("Verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
        exit();
    }

    $Einschreiben mysqli_query($db"INSERT INTO $Datenbanktabelle
                                 (id, Name, Cocktailname, Datum, Zeit, Zusammensetzung)
                                 VALUES
                                 ('', '
    $g_Name', '$g_Cocktailname', '$Datum', '$Zeit', '$g_Zusammensetzung')");

    if(
    $Einschreiben) {
        echo
    "Daten erfolgreich in die Datenbank eingetragen.";
        
    mysqli_close($db);
    } else {
        echo
    "Daten konnten nicht in die Datenbank geschrieben werden.";
    }


        

    }

    }
    ?>
    Als letzter Codeabschnitt - der Code, der in die Seite eingefügt werden soll, die die Ausgabe der Daten vornimmt und dem Benutzer präsentiert:

    PHP-Code:
    <?php
    $Hostname 
    "";
    $Benutzername "";
    $Passwort "";
    $Datenbank "db729687-cocktails";
    $Datenbanktabelle "";
    $Einträge_anzeigen "10";

    $db = new mysqli($Hostname$Benutzername$Passwort$Datenbank);
    if(
    mysqli_connect_errno()) {
        
    printf("Verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
        exit();
    }

    $Abfrage mysqli_query($db"SELECT * FROM $Datenbanktabelle ORDER BY id DESC LIMIT $Einträge_anzeigen");
    $Anzahl mysqli_num_rows($Abfrage);

    //Einträge vorhanden?
    //wenn nein, dann...
    if($Anzahl == "0") {
        echo
    "
        <table border='0' cellspacing='0' cellpadding='0' align='center' width='500'>
        <tr>
            <td>
                <font><center>Keine Einträge vorhanden!</center></font>
            </td>
        </tr>
        </table>
        "
    ;
    //ansonsten...
    } else {
        
    while(
    $datensatz mysqli_fetch_array($Abfrage)) {
        
    extract($datensatz);
        
    $Zusammensetzung nl2br($Zusammensetzung);
        
    echo
    "
    <table Cellspacing='0' cellpadding='0' align='center' width='500' style='border:1px dotted #a0a0a0;'>
    <tr>
        <td width='350' style='padding-right:5px; padding-left:5px;'>
            <font>
    $Cocktailname</font><br>
            <font style='font-size:12px;'>by 
    $Name</font>
        </td>
        <td width='150' valign='bottom' align='right' style='padding-right:5px; padding-left:5px;'>
            <font style='font-size:12px;'>
    $Datum$Zeit</font>
        </td>
    </tr>

    <tr>
        <td colspan='2'>
            <hr width='98%' size='1'>
        </td>
    </tr>

    <tr>
        <td colspan='2' style='padding-right:5px; padding-left:5px;'>
            <font>
    $Zusammensetzung</font>
        </td>
    </tr>
    </table><br>
    "
    ;


    }
    }
    mysqli_close($db);
    ?>
    natürlich ist auch hier das Design veränderbar. Dabei ist zu beachten, dass der Code, der innerhalb des ersten echo"";-Befehls steht, dann angezeigt wird, wenn keine Einträge vorhanden sind. (Ist im Prinzip nichts anderes als HTML-Code kann also auch so geschrieben werden mit dem Unterschied das man " durch ' ersetzen sollte -> wenn nicht dann ein \ zuvor schreiben, damit die " escaped werden)

    Innerhalb des zweiten echo"";-Befehls steht ebenfalls wieder prinzipieller HTML-Code der so behandelt werden sollte wie oben gerade beschrieben. Dieser wird gezeigt wenn Einträge vorhanden sind (natürlich auch anpassbar).

    So abschließend noch ein paar worte zu meiner Tabellenstruktur:
    Meine Tabelle heißt übrigens Cocktail (Tabelle nicht mit Datenbank verwechseln!!).

    id INT(11) NOT NULL AUTO_INCREMENT,
    Name VARCHAR(60) NOT NULL,
    Cocktailname VARCHAR(60) NOT NULL,
    Datum VARCHAR(10),
    Zeit VARCHAR(5),
    Zusammensetzung LONGBLOB,
    PRIMARY KEY(id)

    ...fasst vergessen:
    du findest im 2. und 3. Codeausschnitt ein paar Zeilen wie $Hostname und $Passwort -> trage dort bitte die entsprechenden Daten für die Datenbank ein (müsstest du vom Provider bekommen haben).

    So, lange Rede kurzer Sinn:
    Code könnte man auch noch zusammenkürzen - leider keine Zeit .
    Viel Spaß damit und falls es Probleme mit dem Code gibt, einfach nochmal melden.
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 28.03.10, 18:50
  2. Antworten: 6
    Letzter Beitrag: 27.05.09, 12:45
  3. Antworten: 9
    Letzter Beitrag: 21.06.05, 17:10
  4. PHP Formular durch ein anderes Formular ersetzen ?!
    Von NetPerformance im Forum PHP
    Antworten: 3
    Letzter Beitrag: 22.08.04, 04:22
  5. Antworten: 2
    Letzter Beitrag: 18.11.03, 08:39

Stichworte