• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[EDITOR] Design und Code von meinem GB

YpsilonZet

Mitglied
Hi,
hab mich vor ner Weile mal hingesetzt und in Vorbereitung auf mein Studium an einem Gästebuch gebastelt.
Inzwischen sieht es (meiner Meinung nach) schon mal ganz gut aus, dass man es auch rumzeigen kann.

LINK: Gästebuch

Soweit alles selbst gemacht (bis auf das Javascript zeug).

Bezüglich dem W3C button: Ich weiss, dass es nicht valid ist, wenn ihr auf den Button drückt. Das liegt aber daran, dass cwsurf Javascript werbung mit einblendet und es dadurch invalid ist. Wenn ich den Quelltext so reinkopier, ist alles grün
 
Werbung:
Sieht nich schlecht aus, YpsilonZet.
Funktioniert einwandfrei. Gibt wohl sichere Captcha-Methoden, aber für den Anfang nich schlecht.

MfG
 
Hi,

na das sieht doch schonmal gar nicht schlecht. Am Design könnte man natürlich noch arbeiten, aber im Vordergrund steht natürlich erstmal das Funktionale.
Was ich mir noch wünschen wäre: Wenn man einen Fehler beim Eintrag macht und dann auf "Nochmal probieren" klickt, sollten die bisherigen EIngaben noch da sein. Sonst schreibt man einen mehrzeiligen Text und der ist dann weg.
Zudem wäre es gut, wenn E-Mail kein Pflichtfeld wäre. Nicht jeder gibt das gern an :)

Ansonsten, vielleicht kannst du ja auch mal den PHP-Code reinstellen. Denn der ist natürlich das eigentlich Interessante :)
Gehört zum GB auch schon ein Admin-Interface?
Edit: Ach, da unten ist es ja ^^ super :)

MfG Icy
 
Werbung:
Ok hier also der Code:
index.php:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>G&auml;stebuch</title>
<?php
    include("inc/gb-daten.inc");
    function smileycheck($text)       
    {
        $text = str_replace(":)", "<img src='smil/freude.gif' alt='smile' />", $text);
        $text = str_replace(":(", "<img src='smil/boese.gif' alt='boese' />", $text);
        $text = str_replace(";)", "<img src='smil/zwinker.gif' alt='zwinker' />", $text);
        $text = str_replace(":*", "<img src='smil/liebe.gif' alt='liebe' />", $text);
        $text = str_replace(":handsup:", "<img src='smil/handsup.gif' alt='handsup' />", $text);
        $text = str_replace(":schlafen:", "<img src='smil/schlafen.gif' alt='sleeping' />", $text);
        $text = str_replace(":-/", "<img src='smil/schockiert.gif' alt='shocked' />", $text);
        $text = str_replace("[b]", "<b>", $text);
        $text = str_replace("[/b]", "</b>", $text);
        $text = str_replace("[i]", "<i>", $text);
        $text = str_replace("[/i]", "</i>", $text);
        $text = str_replace("[u]", "<u>", $text);
        $text = str_replace("[/u]", "</u>", $text);
    $pattern = '&\[url\](.*)\[/url\]&isU'; 
    $replace = '<a href="\1" target="_blank">\1</a>'; 
    $text = preg_replace($pattern, $replace, $text); 
        return $text;
    }
?>
</head>

<body>
<h1 class="mitte">G&auml;stebuch</h1>
<p class="mitte"><a href="eintrag.php">Eintragen</a></p>
<?php
    $dz = mysql_connect($host, $user, $pw);
    mysql_select_db($dbname, $dz);
    if(!isset($_GET['start']) || ($_GET['start'] == "0"))
    {
        $sql = mysql_query("SELECT * FROM eintrage ORDER BY ID DESC LIMIT 0,10");
        $result = mysql_query("SELECT COUNT(*) FROM eintrage");
    $count = mysql_result($result,0);
        if($count > 10)
        {
            echo "<p class=\"mitte\">";
            echo "<a href=\"index.php?start=10\">N&auml;chste Seite</a>";
            echo "<br />";
            echo "</p>";
        }
    }
    else
    {
        $sql = mysql_query("SELECT * FROM eintrage ORDER BY ID DESC LIMIT ".$_GET['start'].",10");
        $result = mysql_query("SELECT COUNT(*) FROM eintrage");
    $count = mysql_result($result,0);
        $zurueck = $_GET['start'] - 10;
        $weiter = $_GET['start'] + 10;
    $vergleich = $_GET['start'] + 10;
        if($vergleich <= $count)
        {
            echo "<p class=\"mitte\">";
            echo "<a href=\"index.php?start=".$zurueck."\">Vorherige Seite</a> <a href=\"index.php?start=".$weiter."\">N&auml;chste Seite</a>";
            echo "<br />";
            echo "</p>";
        }
        else
        {
            echo "<p class=\"mitte\">";
            echo "<a href=\"index.php?start=".$zurueck."\">Vorherige Seite</a>";
            echo "<br />";
            echo "</p>";
        };
        
    };
    while($ds = mysql_fetch_object($sql))
    {
        $name = $ds -> Name;
        $email = $ds -> Email;
        $hp = $ds -> HP;
        $text = $ds -> Text;
        $time = $ds -> Time;
         echo "<p class=\"rahmen\">".$name." (".$email.") (".$hp.") schrieb am ".$time." Uhr <br />".smileycheck($text)."</p>";
    }
?>
<br />
<br />
<br />
<p>
    <a href="http://validator.w3.org/check?uri=referer"><img class="smile"
        src="http://www.w3.org/Icons/valid-xhtml10"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  </p>
<p class="mitte">
<a href="admin.php">Admin-Login</a>
</p>
</body>
</html>

sowie die eintrag.php:
 
2. post:
eintrag.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>G&auml;stebuch - Eintragen</title>

<script type="text/javascript">
function Smiley(smile)
{
   document.main.A_Text.value += smile+" ";
   document.main.A_Text.focus();
}

function insert(aTag, eTag) {
  var input = document.forms['main'].elements['A_Text'];
  input.focus();
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = aTag + insText + eTag;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -eTag.length);
    } else {
      range.moveStart('character', aTag.length + insText.length + eTag.length);      
    }
    range.select();
  }
  /* für neuere auf Gecko basierende Browser */
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Einfügen des Formatierungscodes */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + aTag.length;
    } else {
      pos = start + aTag.length + insText.length + eTag.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* für die übrigen Browser */
  else
  {
    /* Abfrage der Einfügeposition */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Einfügen des Formatierungscodes */
    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
  }
}
function link()
{
url = prompt("Geben Sie die URL ein", "");
document.main.A_Text.value += ""+url+" ";
document.main.A_Text.focus();
}
</script> 

</head>

<body>

<?php
session_start();
//0 -> lol.jpg
//1 -> omg.jpg
//2 -> tlo.jpg
//3 -> dum.jpg
//4 -> uli.jpg
//5 -> phi.jpg
//6 -> nad.jpg
//7 -> jes.jpg
//8 -> jan.jpg
//9 -> sig.jpg
$speicher = array("lol.jpg", "omg.jpg", "tlo.jpg", "dum.jpg", "uli.jpg", "phi.jpg", "nad.jpg", "jes.jpg", "jan.jpg", "sig.jpg");

function format2($wert)
{
  $wert2 = htmlentities($wert);
  $wert2 = str_replace("\r\n", "<br />", $wert);
  return $wert2;
}
function nur($wert)
{
  $wert = htmlspecialchars($wert);
  if(get_magic_quotes_gpc())
  {
    $wert = stripslashes($wert);
  };
  $wert = trim($wert);
  $wert= format2($wert);
  return $wert;
}

function emailcheck($wert)
{
  if(!eregi('^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $wert))
  {
    echo "Ihre E-mailadresse ist ung&uuml;ltig.";
    echo "<br />Versuchen Sie es bitte erneut.";
    echo "<br />Weiterleitung in 3sekunden"; 
      echo "<meta http-equiv=\"refresh\" content=\"3; URL=eintrag.php\">";
    exit();
  }
  nur($wert);
  return $wert;
}


if($_POST['B_Submit'] && !empty($_POST['F_Name']) && !empty($_POST['F_Email']) && !empty($_POST['A_Text']) && !empty($_POST['F_cap']))
{
  //button wurde gedrückt, werte sind alle vorhanden
  //überprüfung des captchas
  $captcha = $_POST['F_cap'];
  if($captcha == $_SESSION['zahl'])
  {
       include("inc/gb-daten.inc");
       $timestamp = time();
       $datum = date("d.m.Y \u\m H:i", $timestamp);
       $name = $_POST['F_Name'];
       $email = $_POST['F_Email'];
      $homepage = $_POST['F_Homepage'];
       $text = $_POST['A_Text'];
  
       $dz = mysql_connect($host, $user, $pw);
       mysql_select_db($dbname, $dz);
$query = "INSERT INTO eintrage (Name, Email, HP, Text, Time, IP) VALUES ('".nur($name)."', '".emailcheck($email)."', '".nur($homepage)."', '".nur($text)."', '".$datum."', '".$_SERVER["REMOTE_ADDR"]."')";
       mysql_query($query);
       echo "Eintrag erfolgreich erstellt <br />";     
     echo "Weiterleitung in 3 Sekunden";
       echo "<meta http-equiv=\"refresh\" content=\"3; URL=index.php\">";
       session_destroy();
       die();
    }
    else
    {
    echo "Die Sicherheitsabfrage war nicht korrekt. <br />";
    echo "Weiterleitung in 3 Sekunden <br />";
    echo "<meta http-equiv=\"refresh\" content=\"3; URL=eintrag.php\">";
    die();
  }
}
elseif($_POST['B_Submit'])
{
    echo "Eintrag war nicht erfolgreich <br />";
    echo "Ein ben&ouml;tigter Wert hat gefehlt";
    echo" <br />";
    echo "<a href=\"eintrag.php\">Nochmal probieren</a> <br />";
    echo "<a href=\"index.php\">Zur&uuml;ck zum GB</a>";
    die();
}
elseif(!$_POST['B_Submit']) 
{
//Button nicht gedrückt
srand(microtime()*1000000);
$zahl1 = rand(0,9);
$zahl2 = rand(0,9);
$zahl3 = rand(0,9);
$zahl4 = rand(0,9);
$_SESSION['zahl'] = $zahl1.$zahl2.$zahl3.$zahl4;
}
?>

<h1 align="center">Ihr G&auml;stebucheintrag</h1>
<p>&nbsp;</p>
<form method="post" action="eintrag.php" name="main">
<br />
Name*:
  <input type="text" name="F_Name" id="F_Name" />
<br />
E-Mail*:
  <input type="text" name="F_Email" id="F_Email" />
<br />Homepage:
  <label>
    <input type="text" name="F_Homepage" id="F_Homepage" />
  </label>
<p>Text*: <a class="intern" href="javascript:Smiley(':)')"><img class="smile" src="smil/freude.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(';)')"><img class="smile" src="smil/zwinker.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(':(')"><img class="smile" src="smil/boese.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(':*')"><img class="smile" src="smil/liebe.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(':handsup:')"><img class="smile" src="smil/handsup.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(':schlafen:')"><img class="smile" src="smil/schlafen.gif" alt="" /></a> <a class="intern" href="javascript:Smiley(':-/')"><img class="smile" src="smil/schockiert.gif" alt="" /></a> <input type="button" style="background:url(smil/bold.gif); width: 30px; height: 30px;" onclick="insert('', '')" /> <input type="button" style="background:url(smil/italic.gif); width: 30px; height: 30px;" onclick="insert('', '')" /> <input type="button" style="background:url(smil/underline.gif); width: 30px; height: 30px;" onclick="insert('', '')" /> <input type="button" style="background:url(smil/link.gif); width: 30px; height: 30px;" onclick="link()" /><br />
  <label>
    <textarea name="A_Text" id="A_Text" cols="60" rows="10"></textarea>
  </label>
</p>
<p class="Sicherheit">
<?
echo "Sicherheitscode*: <img src=\"cap/".$speicher[$zahl1]."\" alt=\"captcha\" /><img src=\"cap/".$speicher[$zahl2]."\" alt=\"captcha\" /><img src=\"cap/".$speicher[$zahl3]."\" alt=\"captcha\" /><img src=\"cap/".$speicher[$zahl4]."\" alt=\"captcha\" />";
?>
<br />
<input type="text" name="F_cap" id="F_cap" />
</p>
<p>
  <label>
    <input type="submit" name="B_Submit" id="B_Submit" value="Submit" />
  </label>
</p>
<p><small>*-Felder m&uuml;ssen ausgef&uuml;llt werden</small></p>
</form>
<p>
    <a href="http://validator.w3.org/check?uri=referer"><img class="smile"
        src="http://www.w3.org/Icons/valid-xhtml10"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  </p>

</body>
</html>

Bezüglich dem, dass bei einem fehlenden Wert das bereits geschriebene noch vorhanden ist, hab ich mir auch schon gedanken gemacht. Jedoch noch keine Lösung gefunden.
 
Werbung:
Sie versuchen, auf eine Datei zuzugreifen, die auf einer privaten Mitgliederseite auf Multimania kostenlos gehostet wird:

Um auf diese Datei zuzugreifen, müssen Sie in den Account über die Startseite der Mitgliderseite einsteigen:

Bitte mal irgendwie auf öffentlich stellen oder woanders hosten :)

MfG Icy
 
Zurück
Oben