Ergebnis 1 bis 7 von 7

Thema: PHP-Hausarbeit

  1. #1

    PHP-Hausarbeit

    Hey,

    Mein Problem ist folgendes: Ich muss bis zum 15. Februar eine Seite machen, wo PHP drin vorkommen muss. Und zwar gibts da verschiedene Aufgabenstellungen und eine lautet, dass man ein Formular erstellen soll, in das eben Daten eingegeben werden sollen, die dann in einer Datenbank gespeichert werden sollen. Diese Datenbank darf aber nicht schon vorher angelegt werden, sondern soll eben übers PHP-Skript angelegt werden. Dann sollen die Daten natürlich auch ausgegeben werden (also ich denke mal, das man dann wohl sowas wie ein Gästebuch machen soll), und die Ausgabe soll formatiert sein, die Formatierungs-TAGs sollen aber nicht in der DB stehen.

    Mein Problem ist, dass ich im Moment tierisch unter Zeitdruck bin. Ich muss bis zum 15. noch eine andere Hausarbeit abgeben, mache von morgens 9 bis abends 18.00 Praktikum, und bin abends meistens so müde und kaputt, dass ich mich nicht mehr wirklich konzentrieren kann, um das alles zusammenzubasteln.

    Die einzelnen Befehle etc sind nicht schwer, wenn ichs mir in meinem PHP-Buch durchlese, versteh ich das auch alles, aber mir fehlt der Ansatz, das zusammenzubasteln und eben auch die Zeit, dauernd rumzuprobieren. Hab auch schon mit anderen aus meinem Semester gesprochen, die eigentlich noch mehr Ahnung vom Programmieren hatten, die meinten, es wär schwierig und sie hätten ihre Probleme und würden es nicht hinbekomme.
    Falls jemand Zeit und Lust hat, würd ich mich freuen, wenn er mir vielleicht ein bisschen unter die Arme greifen könnte. Ich muss auch noch was anderes in PHP mache, was ich aber noch selbst versuchen möchte. (Man kann ja nicht dauernd jemanden um hilfe bitten *hust*).

    Wenn nicht, muss ich die Hausarbeit eben auf den Sommer verschieben oder so, damit ich mehr Zeit zum Einarbeiten habe, wär aber dumm, weil dann mein Freiversuch flöten geht. Es muss ja nix großes umständliches sein, was irgendwie besonders toll aussieht oder so, am besten wärs, wenns so simpel und kurz wie möglich wäre...

    Wär schön, wenn mir da jemand helfen würde...
    Danke schonmal!

  2. #2
    Naja, das ist zwar sicher nicht der Sinn der Sache, aber ich werde dann dieses Wochenende zumindest ein Grundgerüst hier posten - Rest kannst du ja selbst versuchen. Im Moment ist mir noch das erstellen der Datenbank/Tabelle ein Rätsel - muss das einfach so im Hintergrund passieren oder darfst du das/ein anderes Skript dafür extra aufrufen? Und handelt es sich um eine MySQL-Datenbank?

  3. #3
    Soll wohl ne MySQL-Datenbank sein, jedenfalls haben wir MySQL kurz angesprochen.
    Wie das mit der DB genau aussehen soll weiß ich auch nicht, keine Ahnung

    Ich weiß zwar, dass es besser wär, wenn ich das alles selbst rausbekomme und programmiere, aber danke, dass du mir dabei hilfst Mit dem Grundgerüst schaff ich den Rest hoffentlich dann auch selbst, wenn nicht kann ich ja auch nochmal nachfragen.

    edit: Hier ist der Link zur Aufgabenstellung. (Powerpoint-Datei). Werd das aber demnächst wieder rausnehmen, nicht dass der Dozent irgendwann auf die Idee kommt, zu gucken ob wir schummeln *hust*

  4. #4
    ò_ó
    Was für eine besch****** Aufgabenstellung! Naja, ich werd morgen dann eine Art Gästebuch machen und es posten, heute hab ich keine Zeit mehr (den Rest kannst du ja bestimmt selbst )

  5. #5
    Sry 4 DP, aber war ja gestern.
    Also, ich hab jetzt das Gästebuch einer anderen Seite etwas bearbeitet. Da ist noch kein HTML-Grundgerüt drin, ist aber AFAIK voll funktionsfähig.
    Das mit dem "Datenbank/Tabelle erstellen" bin ich mir nicht sicher, sollte aber so funktionieren.
    PHP-Code:
    <?php
    ### MySQL-Zugangsdaten und MySQL-Datenbank festlegen, müssen angepasst werden
    define('MYSQL_HOST',    'localhost');
    define('MYSQL_USER',    'User');
    define('MYSQL_PASS',    'PWD');
    define('MYSQL_DB',    'Datenbank');

    $db_link mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS);
    if(!@
    mysql_select_db(MYSQL_DB))
    {
        
    mysql_query("CREATE DATABASE `".MYSQL_DB."`;");
        
    $sql 'CREATE TABLE `guestbook` ('
             
    ' `id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT, '
             
    ' `name` VARCHAR(50) NOT NULL, '
             
    ' `mail` VARCHAR(100) NOT NULL, '
             
    ' `icq` INT(10) UNSIGNED NOT NULL, '
             
    ' `aim` VARCHAR(50) NOT NULL, '
             
    ' `msn` VARCHAR(100) NOT NULL, '
             
    ' `homepage` VARCHAR(100) NOT NULL, '
             
    ' `text` TEXT NOT NULL, '
             
    ' `time` INT(10) NOT NULL,'
             
    ' PRIMARY KEY (`id`)'
             
    ' )';
        
    mysql_query($sql);
    }

    ### Überprüfen, ob alles richtig ausgefüllt wurde
    if(isset($_POST['send']) AND $_POST['send'] == 'Eintragen' AND !empty($_POST['name']) AND !empty($_POST['text']))
    {
        
    ### Einträge auf Richtigkeit überprüfen
        
    $name htmlspecialchars($_POST['name']);
        
    $mail = ((preg_match('#.+@.+\.#'$_POST['mail'])) ? htmlspecialchars($_POST['mail']) : '');
        
    $icq = ((preg_match('#[^0-9]#'$_POST['icq'])) ? '' $_POST['icq']);
        
    $aim htmlspecialchars($_POST['aim']);
        
    $msn htmlspecialchars($_POST['msn']);
        
    $homepage htmlspecialchars($_POST['homepage']);
        
    $text htmlspecialchars($_POST['text']);

        
    ### Einträge in Datenbank schreiben
        
    mysql_query("INSERT INTO `guestbook` (`name`, `mail`, `icq`, `aim`, `msn`, `homepage`, `text`, `time`) VALUES ('".$name."', '".$mail."', '".$icq."', '".$aim."', '".$msn."', '".$homepage."', '".$text."', UNIX_TIMESTAMP());");
    }
    ?>
    <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
    <fieldset style="width: 450px;">
    <legend>Neuen Eintrag erstellen</legend>
    <table>
    <tr>
     <td style="text-align: right;">Name:</td>
     <td><input type="text" name="name" maxlength="50" /></td>
     <td>Eintrag:</td>
    </tr>
    <tr>
     <td style="text-align: right;">E-Mail:</td>
     <td><input type="text" name="mail" maxlength="100" /></td>
     <td rowspan="5"><textarea name="text" style="width: 100%; height: 120px;"></textarea></td>
    </tr>
    <tr>
     <td style="text-align: right;">ICQ-Nummer:</td>
     <td><input type="text" name="icq" maxlength="10" size="10" /></td>
    </tr>
    <tr>
     <td style="text-align: right;">AIM-Addy:</td>
     <td><input type="text" name="aim" maxlength="50" /></td>
    </tr>
    <tr>
     <td style="text-align: right;">MSN-Addy:</td>
     <td><input type="text" name="msn" maxlength="100" /></td>
    </tr>
    <tr>
     <td style="text-align: right;">Homepage:</td>
     <td><input type="text" name="homepage" maxlength="100" /></td>
    </tr>
    <tr>
     <td colspan="3" style="text-align: center; font-size: 8pt;">
      Die Felder "Name" und "Eintrag" müssen ausgefüllt werden!<br />
    <?php
    ### Fehlermeldungen ausgeben, wenn nicht alle benötigten Felder ausgefüllt wurden
    if(isset($_POST['send']) AND $_POST['send'] == 'Eintragen')
    {
        
    ### Wenn das Feld "Name" leer ist...
        
    if(empty($_POST['name']))
        {
            echo 
    '<span style="color: #FF0000;">Es wurde kein Name eingegeben!</span><br />';
        }
        
    ### Wenn das Feld "Eintrag" leer ist...
        
    if(empty($_POST['text']))
        {
            echo 
    '<span style="color: #FF0000;">Es wurde kein Eintrag eingegeben!</span><br />';
        }
    }
    ?>
      <input type="submit" name="send" value="Eintragen" /> <input type="reset" />
     </td>
    </tr>
    </table>
    </fieldset>
    </form>
    <div>
    <?php
    ### Einträge ausgeben
    $eintraege mysql_query("SELECT * FROM `guestbook` ORDER BY `time` DESC;"); // Einträge aus der Datenbank laden
    $anzahl mysql_num_rows($eintraege);
    $i 0;
    while(
    $row = @mysql_fetch_array($eintraege))
    {
        
    $text preg_replace('#(http\:\/\/[^ ]+)#is''<a href="\\1">\\1</a>'$row['text']);
        
    $text str_replace("\n""<br />\n"$text);
        echo 
    '<table style="width: 100%; border: 1px #AAAAFF solid;">'."\n";
        echo 
    '<tr style="background-color: #AAAAFF; color: #000022;">'."\n";
        echo 
    ' <td><span style="float: left; font-size: 10pt;">'.($anzahl $i).'. '.$row['name'].'</span>';
        if(isset(
    $row['mail']) OR isset($row['icq']) OR isset($row['aim']) OR isset($row['msn']) OR isset($row['homepage']))
        {
            echo 
    '<span style="float: right; font-size: 7pt;">';
            if(!empty(
    $row['mail']))
            {
                echo 
    '| E-Mail: <a href="mailto:'.$row['mail'].'">'.$row['mail'].'</a>';
            }
            if(!empty(
    $row['icq']))
            {
                echo 
    ' | ICQ: '.$row['icq'];
            }
            if(!empty(
    $row['aim']))
            {
                echo 
    ' | AIM: '.$row['aim'];
            }
            if(!empty(
    $row['msn']))
            {
                echo 
    ' | MSN: '.$row['msn'];
            }
            if(!empty(
    $row['homepage']))
            {
                echo 
    ' | Homepage: <a href="'.$row['homepage'].'">'.$row['homepage'].'</a>';
            }
            echo 
    "</span>\n";
        }
        echo 
    "</td>\n";
        echo 
    "</tr>\n";
        echo 
    "<tr>\n";
        echo 
    ' <td>'.$text."</td>\n";
        echo 
    "</tr>\n";
        echo 
    "</table>\n";
        
    $i++;
    }
    ?>
    </div>
    Ich hoffe, das geht so durch. Wenn du noch Probleme hast, melde dich (oder wenn du Fehler findest)

    Geändert von dead_orc (05.02.2005 um 15:42 Uhr)

  6. #6
    @ Ork
    Imo kann man statt deine Funktion del_html() auch die PHP-Funktionen htmlentities() oder htmlspecialchars() benutzen
    Dann muss man selber nichts schreiben...

  7. #7
    Hey, vielen dank erstmal Werd das nachher mal testen. Konnte mich leider nicht eher melden und bedanken, weil ich bis grade eben bei meinen Eltern war.
    Hoffe es funktioniert alles Ansonsten schick ich dir mal ne PN oder so

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •