kostenloser Webspace werbefrei: lima-city


Eingabeformular

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s************k

    Hallo,

    ich möchte, ein Eingabeformuler auf einer Seite haben, die in einer MySQL DB gespeichert wird (nach timestamp geordnet). Quasi wie eine Newsbox (später soll die Option dazukommen, Einträge wieder zu entfernen). Ich habe schon ein wenig angefangen, jedoch bin ich mit meinem Wissen am Ende, da ich kaum Ahnung von PHP habe und jemanden, der mir es fertig-coden kann.

    <?
    $host = "localhost";
    $user = "root";
    $pass = "";
    $db = "startseite_ts";
    
    
    $link = mysql_connect($host, $user, $pass);
    mysql_select_db($db, $link);
    
    $query = mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('1275557125','hinweis','blau','22px','hallo welt')");
    
    //Felder auslesen
    $betreff = $_REQUEST['betreff'];
    $farbe = $_REQUEST['farbe'];
    $groesse = $_REQUEST['groesse'];
    $nachricht = $_REQUEST['nachricht'];
    
    
    ?>
    
    
    
    
    
    
    
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    	Betreff:<br />
    	<input type="radio" name="betreff" value="hinweis"> Hinweis<br />
    	<input type="radio" name="betreff" value="tipp"> Tipp<br />
    	<input type="radio" name="betreff" value="ankuendigung"> 
    	Ankündigung<br />
    	<br /><br />
    
    	Textfarbe:<br /><br />
    	<input type="radio" name="farbe" value="rot"> rot<br />
    	<input type="radio" name="farbe" value="blau"> blau<br />
        <input type="radio" name="farbe" value="orange"> orange<br />
        <input type="radio" name="farbe" value="gelb"> gelb<br />
        <input type="radio" name="farbe" value="weiss"> weiß<br />
    	<input type="radio" name="farbe" value="gruen"> grün<br /><br /><br />
    
    
    	Schriftgröße:<br /><br />
        <input type="radio" name="groesse" value="08px"> 08px<br />
    	<input type="radio" name="groesse" value="10px"> 10px<br />
    	<input type="radio" name="groesse" value="12px"> 12px<br />
        <input type="radio" name="groesse" value="14px"> 14px<br />
        <input type="radio" name="groesse" value="16px"> 16px<br />
        <input type="radio" name="groesse" value="18px"> 18px<br /><br /><br />
    
    
    	Nachricht: <br /><br />
    	<textarea name="nachricht" cols="100" rows="10" value="<?php if (isset($nachricht)) {echo $nachricht;}?>"></textarea>
        <!--<ul>Unterstrichen</ul>
        <b>Fett</b>-->
        </textarea>
        
        <br />
        <input type="submit" name="absenden" value="absenden" />
        
    </form>
    
    
    <?
    mysql_close($link);
    ?>


    Und hier der SQL Befehl, um die DB zu erstellen.
    CREATE TABLE startseite_ts (
    timestamp int(20) NOT NULL,
    betreff varchar(15),
    farbe varchar(8),
    groesse varchar(4),
    nachricht text(300),
    PRIMARY KEY (timestamp))

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Da ich keine Ahnung habe, wo dein Problem liegt, hab ich einfach mal geraten...

    <?PHP
    $host = "localhost";
    $user = "root";
    $pass = "";
    $db = "startseite_ts";
    
    $link = mysql_connect($host, $user, $pass);
    mysql_select_db($db, $link);
    
    //Felder auslesen
    $timestamp = time();
    
    $betreff = $_POST['betreff'];
    $farbe = $_POST['farbe'];
    $groesse = $_POST['groesse'];
    $nachricht = strip_tags($_POST['nachricht']);
    
    @mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('".$timestamp."','".$betreff."','".$farbe."','".$groesse."','".$nachricht."')") or die("Fehler");
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    	Betreff:<br />
    	<input type="radio" name="betreff" value="hinweis"> Hinweis<br />
    	<input type="radio" name="betreff" value="tipp"> Tipp<br />
    	<input type="radio" name="betreff" value="ankuendigung">Ankündigung<br /><br /><br />
    
    	Textfarbe:<br /><br />
    	<input type="radio" name="farbe" value="rot"> rot<br />
    	<input type="radio" name="farbe" value="blau"> blau<br />
    	<input type="radio" name="farbe" value="orange"> orange<br />
    	<input type="radio" name="farbe" value="gelb"> gelb<br />
    	<input type="radio" name="farbe" value="weiss"> weiß<br />
    	<input type="radio" name="farbe" value="gruen"> grün<br /><br /><br />
    
    	Schriftgröße:<br /><br />
    	<input type="radio" name="groesse" value="08px"> 08px<br />
    	<input type="radio" name="groesse" value="10px"> 10px<br />
    	<input type="radio" name="groesse" value="12px"> 12px<br />
    	<input type="radio" name="groesse" value="14px"> 14px<br />
    	<input type="radio" name="groesse" value="16px"> 16px<br />
    	<input type="radio" name="groesse" value="18px"> 18px<br /><br /><br />
    
    	Nachricht:<br /><br />
    	<textarea name="nachricht" cols="100" rows="10"><?php if (isset($nachricht)) {echo $nachricht;}?></textarea>
        
    	<br />
    	<input type="submit" name="absenden" value="absenden" />
    </form>


    Im Übrigen hier mal eine "Alternative":

    <?
    $host = "localhost";
    $user = "root";
    $pass = "";
    $db = "startseite_ts";
    
    $link = @mysql_connect($host, $user, $pass);
    @mysql_select_db($db, $link);
    
    //Felder auslesen
    $timestamp = time();
    
    switch($_POST['betreff'])
    {
    	case 'hinweis';
    	case 'tipp';
    	case 'ankuendigung';
    		$betreff = $_POST['betreff'];
    	break;
    	default;
    		$betreff = "";
    	break;
    }
    
    switch($_POST['farbe'])
    {
    	case 'rot';
    	case 'blau';
    	case 'orange';
    	case 'gelb';
    	case 'weiss';
    	case 'gruen';	
    		$farbe = $_POST['farbe'];
    	break;
    	default;
    		$farbe = "";
    	break;
    }
    
    switch($_POST['groesse'])
    {
    	case '08px';
    	case '10px';
    	case '12px';
    	case '14px';
    	case '16px';
    	case '18px';	
    		$groesse = $_POST['groesse'];
    	break;
    	default;
    		$groesse = "";
    	break;
    }
    
    $nachricht = strip_tags($_POST['nachricht']);
    
    if(!empty($betreff) && !empty($farbe) && !empty($groesse))
    {
    	@mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('".$timestamp."','".$betreff."','".$farbe."','".$groesse."','".$nachricht."')") or die("Fehler");
    	echo "OK";
    }
    else
    {
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    	Betreff:<br />
    	<input type="radio" name="betreff" value="hinweis"> Hinweis<br />
    	<input type="radio" name="betreff" value="tipp"> Tipp<br />
    	<input type="radio" name="betreff" value="ankuendigung">Ankündigung<br /><br /><br />
    
    	Textfarbe:<br /><br />
    	<input type="radio" name="farbe" value="rot"> rot<br />
    	<input type="radio" name="farbe" value="blau"> blau<br />
    	<input type="radio" name="farbe" value="orange"> orange<br />
    	<input type="radio" name="farbe" value="gelb"> gelb<br />
    	<input type="radio" name="farbe" value="weiss"> weiß<br />
    	<input type="radio" name="farbe" value="gruen"> grün<br /><br /><br />
    
    	Schriftgröße:<br /><br />
    	<input type="radio" name="groesse" value="08px"> 08px<br />
    	<input type="radio" name="groesse" value="10px"> 10px<br />
    	<input type="radio" name="groesse" value="12px"> 12px<br />
    	<input type="radio" name="groesse" value="14px"> 14px<br />
    	<input type="radio" name="groesse" value="16px"> 16px<br />
    	<input type="radio" name="groesse" value="18px"> 18px<br /><br /><br />
    
    	Nachricht:<br /><br />
    	<textarea name="nachricht" cols="100" rows="10"><?php if (isset($nachricht)) {echo $nachricht;}?></textarea>
        
    	<br />
    	<input type="submit" name="absenden" value="absenden" />
    </form>
    <?PHP
    }
    ?>


    Parralel dazu könntest du ggf. noch wie bei der Nachricht prüfen, ob einer der Felder ausgefüllt wurde (Größe, Farbe, Betreff) und die Auswahl auch noch selektieren. Möglichkeiten gibt es viele.

    Beitrag zuletzt geändert: 6.6.2010 23:32:29 von fabo
  4. Autor dieses Themas

    s************k

    Danke!!!

    Jetz bräuchte ich nurnoch, wie ich die Daten wieder auslesen kann.

    $link = @mysql_connect($host, $user, $pass);
    @mysql_select_db($db, $link);
    
    $timestamp = "SELECT timestamp FROM startseite_ts"; 
    $betreff = "SELECT betreff FROM startseite_ts";
    $farbe = "SELECT farbe FROM startseite_ts";
    $groesse = "SELECT groesse FROM startseite_ts";
    $nachricht = "SELECT nachricht FROM startseite_ts"; 
     
    ?> 
    
    <?php 
    
    /*?>$betreff = "Hinweis";
    $farbe = "rot";
    $groesse = "12px";
    $nachricht = "Hallo, dies ist eine Testnachricht.";
    <?php */
    
    //**************************************Hinweis********************************************
    if ($betreff == "Hinweis" && $farbe == "rot" && $groesse == "12px")
    		{echo "<div class='rot_12'>$betreff<br /><br />$nachricht</div>";}
  5. f********r

    show-teamspeak schrieb:
    Jetz bräuchte ich nurnoch, wie ich die Daten wieder auslesen kann.


    <?php
    //Auslesen
    $werte = mysql_query("SELECT timestamp, betreff, farbe, groesse, nachricht FROM startseite_ts ORDER BY timestamp DESC"); //DESC = Absteigend (9...0)
    
    //Ausgeben
    while($erg = mysql_fetch_array($werte)){
        echo "timestamp: ".$erg[0].", betreff: ".$erg[1].", farbe: ".$erg[2].", groesse: ".$erg[3].", nachricht: ".$erg[4];
    }
    ?>
  6. Autor dieses Themas

    s************k

    Danke, aber ich glaube, das passt mit meiner if-schleife nicht zusammen

    if ($betreff == "Hinweis" && $farbe == "rot" && $groesse == "12px")
    		{echo "<div class='rot_12'>$betreff<br /><br />$nachricht</div>";}


    Ich brauche für $betreff $farbe $groesse und $nachricht jeweils den jeweiligen Inhalt
  7. f********r

    der inhalt ist in $erg als array gespeichert, geordnet nach der auflistung in der mysql_query funktion ;)

    timestamp ist also $erg[0]
    betreff = $erg[1]
    usw...

  8. Autor dieses Themas

    s************k

    if ($erg[1] == "Hinweis" && $erg[2] == "rot" && $erg[3] == "20px")
    		{echo "<div class='rot_20'>$erg[4]</div>";}


    So sieht jetzt mein Code aus, aber es wird nichts ausgegeben...

    (dein Echo gibts aus: timestamp: 1275913068, betreff: Hinweis, farbe: rot, groesse: 20px, nachricht: dsfjmsgflköngbödlbkndtimestamp: 1275557125, betreff: Hinweis, farbe: blau, groesse: 20px, nachricht: hallo welt )
  9. f********r

    dein if is auch in der while schleife platziert?

    probiers mal so:
    while($erg = mysql_fetch_array($werte)){
        if ($erg[1] == "Hinweis" && $erg[2] == "rot" && $erg[3] == "20px"){
            echo '<div class="rot_20">'.$erg[4].'</div>'; 
        }
    }
  10. Autor dieses Themas

    s************k

    Danke, funktioniert alles, hatte Probleme mit " und ' .

    Könntest du mir noch sagen, wir ich Zeichen wie <br /> in die DB eintragen kann? DB=utf8_general_ci, Umlaute funktionieren, jedoch muss ich warscheinlich <br /> ISO... in UTF8 konvertieren, und beim auslesen erneut konvertieren?
  11. tropa-graciosa

    tropa-graciosa hat kostenlosen Webspace.

    Einfach Zeilenumbrüche (also Enter^^) eintragen und mit
    $text=nl2br($text);
    umwandeln.

    Das würde aus:

    "Hallo Welt

    und tschüss ..."

    folgendes machen:

    "Hallo Welt<br /><br />und tschüss..."

    Beitrag zuletzt geändert: 13.6.2010 13:11:34 von tropa-graciosa
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!