Flashhilfe.de - Flash Community

Frage zu einem Datenbank basierendem Gästebuch (Eintrag wird nicht abgespeichert

 


AntwortenRegistrieren Seite1 2  

zellerjohannes#1
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

03.08.2009, 10:14

Hallo

Ich habe mir mithilfe eines PHP-Buches ein auf einer Datenbank basierendes Gästebuch erstellt. Leider funktioniert es noch nicht richtig. Die Zugangsdaten zur Datenbank sollten stimmen (habe mit der Hosting-Agentur Kontakt aufgenommen)!
Ich habe euch unten Seite für Seite aufgelistet. Ich hoffe jemand nimmt sich die Zeit um mir zu helfen..

Gruss
Johannes

index.html
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>G&auml;stebuch</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body class="verdana" bgcolor="#382d20">
<p><a href="neuereintrag.php" target="_self">Eintragen</a></p>
<hr align="left" width="355" /><p class="gross1"><strong>Die bisherigen Eintr&auml;ge</strong></p>
<tr>
<td>
<?php
error_reporting
(0);
include(
'include.php');
$db = @MYSQL_CONNECT($server,$user,$passwort);
$db_select = @MYSQL_SELECT_DB($datenbank);
$result mysql_query("SELECT * FROM gaestebuch");
$menge mysql_num_rows($result);
$zeigen floor($menge 10);
if (!
$start) { $start 0.1; }
$result mysql_query("SELECT * FROM gaestebuch
                      WHERE Freigabe != 'nein' ORDER BY ID DESC limit $start,10"
);

while(
$row mysql_fetch_row($result))
{
?>
<table width="355" border="0" align"center" cellspacing="3" cellpadding="4" class="ansicht">
    <tr>
        <td width="332" colspan="2" valign="top">
            <?php echo $row[5]; ?>
        </td>
    </tr>
    <tr>
        <td valign="top" colspan="2"><span class="table-verdana">Eingetragen am:</span> <?php echo $row[8]; ?>
           
            <span class="table-verdana">Geschrieben von:
<?php
           
if ($row[2] == '')
            { echo 
''; }
            else
            {
           
?>
            <a href="mailto:<?php echo $row[2]; ?>">
                <?php echo $row [1]; ?></a>&nbsp;&nbsp;
            <?php 
           
}
            if (
$row[3] == '' or $row[3] == 'http://')
            { echo 
''; }
            else
            {
           
?>
            <a href="<?php echo $row[3]; ?>">zur Homepage</a>
            <?php
           
}
           
?>
            </span>
        </td>
      </tr>
    </table>
           
           
            <?php
           
}
           
?>
                <table width="355">
                    <tr>
                        <td width="194">
                        <?php
                       
if($start 0.1)
                        {
                           
$zuerueck $start 10;
                            echo 
"<a href=\"$PHP_SELF?start=$Zur&uuml;ck\">Zur&uuml;ck</a>";
                        }
                        for(
$i 1$i <= $zeigen$i++)
                        {
                           
$n += 10;
                        }
                       
?>
                        </td>
                        <td width="148" align="right">
                        <?php
                        $weiter 
$start 10;
                        if (
$menge $weiter)
                        {
                            echo
"<a href=\"PHP_SELF?start=$Weiter\">Weiter</a>";
                        }
                       
?>
                        </td>
                    </tr>
        </table>
  </td>
</tr>
</body>
</html>


neuereintrag.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!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" />
<title>Neuer Eintrag</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

    <body class="verdana" bgcolor="#382d20">
<span class="title_big">Neuer G&auml;stebucheintrag</span>
<div>


<form action="eintragen.php" method="post">
<table width="293"5">
<tr>
<td width="111">
    <div>Ihr Name</div></td>
<td width="170"><input type="text" name="name" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr E-Mail</div></td>
<td><input type="text" name="email" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr Homepage</div></td>
<td><input type="text" name="homepage" value="http://" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr &Uuml;berschrift</div></td>
<td><input type="text" name="ueberschrift" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Kommentar</div></td>
<td><textarea name="kommentar" class="eing" cols="15" rows="5" /></textarea></td>
</tr>
<tr>
<td>
    <input name="Zur&uuml;cksetzen" type="reset" class="sender" value="L&ouml;schen" />
</td>
<td align="right">
    <input type="submit" value="Eintragen" class="sender" />
</td>
</tr>
</table>
</form>
<?php include("time.php"); ?>
<input name="date" type="hidden" value="<?php echo "$date1, $time1"?>" />
</body>
</html>


eintragen.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
error_reporting
(0);
$name $_POST["name"];
$email $_POST["email"];
$homepage $_POST["homepage"];
$ueberschrift $_POST["ueberschrift"];
$kommentar $_POST["kommentar"];
$freigabe $_POST["freigabe"];
$date $_POST["date"];
$freigabe 'nein';
include(
"include.php");
$eintrag "INSERT INTO gaestebuch (Name, EMail, Homepage, Ueberschrift, Kommentar, Freigabe, Datum)
VALUES ('$name', '$email', '$homepage', '$ueberschrift', '$kommentar', '$freigabe', '$date')"
;
$eintragen mysql_query($eintrag);

$message "<strong>Neuer G&auml;stebucheintrag</strong><br><br>
            <strong>Name:<strong>$name<br>
            <strong>Mail:<strong>$mail<br>
            <strong>Homepage:<strong>$h<br><br>
            <strong>&Uuml;berschrift:<strong>$ueberschrift<br>
            <strong>Kommentar:<strong>$kommentar<br><br>
            Bitte unter dem Admin-Bereich moderieren. <a href='http://www.luisasplett.ch/admin.html'>zum Admin-Bereich</a>
            "
;
$xtra "From: Webmaster <webmaster@jz-design.ch>";
$xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
mail("mail@domain.com""Neuer G&auml;stebucheintrag"$message$xtra);
?>
<html>
    <head>
        <title> Vielen Dank </title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body class="verdana" bgcolor="#382d20">
    <div>
    <p class="gross1"><strong>
      Vielen Dank f&uuml;r Ihren Eintrag
    </strong></p>
    <p class="mittel1">
        Ihr Eintrag wird nach &Uuml;berpr&uuml;fung freigegeben.
    </p>
    <a href="index.php"> zur&uuml;ck zum G&auml;stebuch</a>
    </div>
    </body>
</html>


admin.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Admin-Bereich</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body class="verdana" bgcolor="#382d20">
<div>
<p class="gross1">    <strong>Admin Bereich </strong></p>
<table width="355">
<tr>
<td>
<?php
error_reporting
(0);
include(
'include.php');
$db = @MYSQL_CONNECT($server,$user,$passwort);
$db_SELECT MYSQL_SELECT_DB($datenbank);
$result mysql_query("SELECT * FROM gaestebuch WHERE Freigabe != 'ja'");
$menge mysql_num_rows($result);
while(
$row mysql_fetch_row($result))
{
?>
<table width="355" border="0" align="center" cellspacing="3" cellpadding="4" class="ansicht">
<tr>
<td valign="top" colspan="2">
<?php echo $row[5]; ?>
</td>
</tr>
<tr>
<td valign="top" colspan="2">
<span class="table-verdana">
    Geschrieben von:
    <?php
   
if ($row[2] == '')
    {
        echo 
$row[1];
    }
    else
    {
   
?>
        <a href="mailto:<?php echo $row[2]; ?>">
            <?php echo $row[1]; ?></a>
    <?php
   
}
    if (
$row[3] == '')
    {
        echo 
'';
    }
    else
    {
   
?>
    <a href="<?php echo $row[3]; ?>">zur Homepage</a>
    <?php
   
}
   
?>
    </span>
</td>
</tr>
</table>

<table width="300">
    <tr>
    <td>
    <form action"loeschen.php?ide=<?php echo $row[0]; ?>; method="get">
    <input type="submit" value"l&ouml;schen" />
    <input type="hidden" name="id" value"<?php echo $row[0]; ?>" />
    </form>
    </td>
    <td>
    <form action"freigabe.php?ide=<?php echo $row[0]; ?>; method="get">
    <input type="submit" value="freigeben">
    <input type="hidden" name="id" value="<?php echo $row[0]; ?>" />
    </form>
    </td>
    </tr>
    </table>
    <?php
   
}
   
?>
    </td>
    </tr>
  </table>
    </div>
</body>
</html>


freigabe.php
PHP:
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
30
31
32
33
<?php
error_reporting
(0);
include(
"include.php");
$id $_GET[id];
$loeschen "UPDATE gaestebuch SET Freigabe = 'ja' WHERE id = mysql_escape_string($id)";
$loesch mysql_query($loeschen);
?>
<html>
<head>
<title>Freigabe</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
    <body class="verdana" bgcolor="#382d20">
    <div>
        <p class="gross1"><strong>
             Der Eintrag wurde freigegeben
  </strong></p>
        <table width="271">
            <tr>
                <td width="137">
                    <p class="verdana">
                    <a href="index.php">zum G&auuml;stebuch</a>
                </td>
                <td width="122">
                       <p class="verdana">
                    <a href="admin.php">zum Admin-Bereich</a>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>


loeschen.php
PHP:
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
30
31
32
33
<?php
include("include.php");
$id $_GET["id"];
$loeschen "DELETE gaestebuch WHERE id = mysql_escape_string($id)";
$loesch mysql_query($loeschen);
?>
<html>
<head>
<title>L&ouml;schen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
    <body class="verdana" bgcolor="#382d20">
    <div>
        <p class="gross1"><strong>
             Der Eintrag wurde gel&ouml;scht.
        </h2>
        </strong>
<table width="288">
            <tr>
                <td width="128">
                    <p class="verdana">
                    <a href="index.php">zum G&auuml;stebuch</a>
                </td>
                <td width="121">
                    <p class="verdana">
                    <a href="admin.php">zum Admin-Bereich</a>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>


style.css
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?
div 
{
   
font-weightbold;
   
font-size10px;
   
color#FFF;
   
line-height15px;
   
font-familyVerdanaGenevasans-serif
}
.
eing {
   
background-color#FFFFFF; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000;
}
.
sender {
   
background-color#382d20; border: 1px #FFFFFF solid; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px;
   
font-weightboldfont-size11pxcolor#FFFFFF; line-height: 14px; font-family: Verdana, Geneva, sans-serif

}
fieldset {
   
width:390pxborder-color:#2f5faf; border-with: 1px;
}

.
title_big {
   
color:#FFF;
   
font-family:VerdanaGenevasans-serif;
   
font-size:20px;
}

.
verdana {
   
font-familyVerdana;
   
font-size10px;
   
color#FFF;
}
.
gross1 {
   
font-size14px;
   
color:#FFF;
}
.
gross2 {
   
font-size16px;
   
color#FFF;
}
.
verdana table {
   
color#FFF;
}

a:link text-decoration:none }
a:visited text-decoration:none }
a:hover text-decoration:none }
a:active text-decoration:none }
a:focus text-decoration:none }

a
{
color:#b9a793;
 
}
a:hover
 
{
   
color#322312;
   
font-familyVerdana;
   
font-size8px;
}
        .
table-verdana {
   
font-familyVerdanaGenevasans-serif;
   
color#FFF;
   
font-size10px;
}
        .
mittel1 {
   
font-familyVerdana;
   
font-size12px;
}
?>


time.php
PHP:
1
2
3
4
5
6
7
<?php
$timestamp 
time();
$timestamp $timestamp 3600;
$date1 date("d.m.Y"$timestamp);
$time1 date("H:i"$timestamp);
?>


include.php
PHP:
1
2
3
4
5
6
7
8
<?php
$server 
"localhost";
$user "web211";
$passwort "******";
$datenbank "usr_web211_1";
$tabelle "gaestebuch";
?>
Geändert von zellerjohannes am 03.08.09 um 13:19 Uhr
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

03.08.2009, 15:44

Hallo,

du includierst zwar in jeder datei deine "include.php", somit hast du dann die Zugangsadaten zur Datenbank, aber du stellst nur im ersten Script eine Verbindung her.
Ich würd einfach die Verbindung in der include mit erstellen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
// include.php

 // MySQL Zugansdaten //
 
define('MYSQL_HOST',     'localhost');
 
define('MYSQL_USER',     'DeinUser');
 
define('MYSQL_PASS',     'DeinPass');
 
define('MYSQL_DATABASE''DeineDB');

 
// Verbindung zum MySQL Server herstellen
 
@mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(" Fehler in der Datenbank! // Database error");
 @
mysql_select_db(MYSQL_DATABASE) OR die("Fehler in der Datenbank! // Database error");
?>


und dann brauchst du die Datei auch nicht zu includieren, es reicht sie zu requiren
PHP:
1
2
3
4
<?
require "include.php";
?>

so, und da dort ja sensibele Daten drinne sind, nutzt du noch am besten htacces, dann wird die Datei NIE ausgeben. einfach einen "." am Anfang des Dateinamens setzten ".include.php" und dann natürlich auch require ".include.php";
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Geändert von vindel am 03.08.09 um 15:45 Uhr
zellerjohannes#3
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

03.08.2009, 16:01

Vielen Dank! Werde dies versuchen. Aber wie steht es mit der Tabelle? Sie haben jetzt Host, User, Password, Database angegeben. Aber die Tabelle "gaestebuch" muss doch auch noch rein?!?

Gruss
jz
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

03.08.2009, 16:04

Das machst du doch dann erst in der Abfrage:
PHP:
1
2
3
4
5
<?
$result 
mysql_query("SELECT * FROM gaestebuch
                      WHERE Freigabe != 'nein' ORDER BY ID DESC limit $start,10"
);
?>
hier brauchst du erst die Tabelle, vorher nicht :D
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#5
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

03.08.2009, 18:55

vielen dank. Es klappt bereits [i]fast[/i] alles. ich habe da noch zwei fragen:
irgendwie geht en die buttons fürs Löschen und Freigeben der Einträge noch nicht ganz..
und beim auslesen aus der datenbank, wird nichts angezeig?!?

gruss
jz
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

03.08.2009, 21:50

Hab das mal aus einem der beiden Scripte kopiert:
PHP:
1
2
3
4
<?
$loeschen 
"DELETE gaestebuch WHERE id = mysql_escape_string($id)";
?>

Variablen an MySQL kommen IMMER in Anführungszeichen..
also wär ich dann bei:
PHP:
1
2
3
4
<?
$loeschen 
"DELETE gaestebuch WHERE id = '".mysql_escape_string($id)."'";
?>

so sollte das klappen, einmal die einfachen Anführungszeichen für MySQL und dann die Doppelten für die PHP Funktion!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#7
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

03.08.2009, 22:20

ok. aber ich glaube das problem liegt auch bei [i]admin.php[/i]. Da wird man nämlich nicht richtig weitergeleitet, wenn man auf löschen oder freigeben klickt?!?

gruss
jz
vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

04.08.2009, 00:03

naja, eigentlich sollte das gehen, aber da ist mir aufgefallen:
PHP:
1
2
3
4
<form action"freigabe.php?ide=<?php echo $row[0]; ?>; method="get">
    <input type="submit" value="freigeben">
    <input type="hidden" name="id" value="<?php echo $row[0]; ?>" />

da schreibst du kappes!
Du rufst die Url auf "freigabe.php?ide=<?php echo $row[0]; ?>", da du aber GET als Übermittlung nutzt wird daraus nur "freigabe.php", der Rest wird nicht übertragen und dann halt dein Feld.
Is aber unlogisch, warum du hier mitm Formular arbeitest, da du die Variable ja viel leichter über nen link mitschicken kannst:
<a href="freigabe.php?id=<?php echo $row[0]; ?>"> und danmit hast du das Gleiche.
Aber an und für sich solltest du dann in deiner "freigabe.php" unter Variable "id" die ID Deines Eintrages haben (Ich hoffe du hast das auch in deiner DB eingestellt, dass die ID hochzählen soll?)
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#9
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

04.08.2009, 15:50

Vielen Dank! Mit der Freigabe hats bereits geklappt.
4 Dinge funktionieren aber immer noch nicht :o

1. Das Löschen eines Eintrags geht nicht. Der Link habe ich hinten und vorne kontrolliert, der stimmt. Ich denke der Fehler liegt bei der Datei loeschen.php. Doch dort habe ich den MySQL-Befehl auch so gemacht wie du gesagt hast..?!? (Habe unten den PHP-Teil der Datei loeschen.php nochmals gepostet)
2. Das Datum wird irgendwie nicht eingebunden? (Habe die Datei time.php und die Datei neuereintrag.php nochmals gepostet)
3. Das Auslesen funktioniert gar nicht?! Es wird einfach nichts angezeigt.. (Habe die Datei index.php nochmals gepostet)
4. Bei einem neuen Eintrag habe ich mit der Mail-Funktion eine Benachrichtigungsmail gemacht. Die kommt auch immer an, aber nicht in HTML. d.h. es wird zumbeispiel <strong> und <br> angezeigt?!? (Habe die Datei den PHO-Teil der Datei eintragen.php nochmals gepostet)

gruss
jz

loeschen.php

PHP:
1
2
3
4
5
6
7
<?php
require ".include.php";
$id $_GET["id"];
$loeschen "DELETE gaestebuch WHERE id = '".mysql_escape_string($id)."'";
$loesch mysql_query($loeschen);
?>


time.php
PHP:
1
2
3
4
5
6
7
<?php
$timestamp 
time();
$timestamp $timestamp 3600;
$date1 date("d.m.Y"$timestamp);
$time1 date("H:i"$timestamp);
?>


neuereintrag.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!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" />
<title>Neuer Eintrag</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

    <body class="verdana" bgcolor="#382d20">
<span class="title_big">Neuer G&auml;stebucheintrag</span>
<div>


<form action="eintragen.php" method="post">
<table width="293"5">
<tr>
<td width="111">
    <div>Ihr Name</div></td>
<td width="170"><input type="text" name="name" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr E-Mail</div></td>
<td><input type="text" name="email" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr Homepage</div></td>
<td><input type="text" name="homepage" value="http://" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Ihr &Uuml;berschrift</div></td>
<td><input type="text" name="ueberschrift" class="eing" /></td>
</tr>
<tr>
<td>
    <div>Kommentar</div></td>
<td><textarea name="kommentar" class="eing" cols="15" rows="5" /></textarea></td>
</tr>
<tr>
<td>
    <input name="Zur&uuml;cksetzen" type="reset" class="sender" value="L&ouml;schen" />
</td>
<td align="right">
    <input type="submit" value="Eintragen" class="sender" />
</td>
</tr>
</table>

</form>
<?php include("time.php"); ?>
<input name="date" type="hidden" value="<?php echo '$date1, $time1'?>" />
</body>
</html>


index.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<html>
<head>
<title>G&auml;stebuch</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body class="verdana" bgcolor="#382d20">
<p><a href="neuereintrag.php" target="_self">Eintragen</a></p>
<hr align="left" width="355" /><p class="gross1"><strong>Die bisherigen Eintr&auml;ge</strong></p>
<tr>
<td>
<?php
error_reporting
(0);
require 
".include.php";
$db = @MYSQL_CONNECT($server,$user,$passwort);
$db_select = @MYSQL_SELECT_DB($datenbank);
$result mysql_query("SELECT * FROM gaestebuch");
$menge mysql_num_rows($result);
$zeigen floor($menge 10);
if (!
$start) { $start 0.1; }
$result mysql_query("SELECT * FROM gaestebuch
                      WHERE Freigabe != 'nein' ORDER BY ID DESC limit $start,10"
);

while(
$row mysql_fetch_row($result))
{
?>
<table width="355" border="0" align"center" cellspacing="3" cellpadding="4" class="ansicht">
    <tr>
        <td width="332" colspan="2" valign="top">
            <?php echo $row[5]; ?>
        </td>
    </tr>
    <tr>
        <td valign="top" colspan="2"><span class="table-verdana">Eingetragen am:</span> <?php echo $row[8]; ?>
           
            <span class="table-verdana">Geschrieben von:
<?php
           
if ($row[2] == '')
            { echo 
''; }
            else
            {
           
?>
            <a href="mailto:<?php echo $row[2]; ?>">
                <?php echo $row [1]; ?></a>&nbsp;&nbsp;
            <?php 
           
}
            if (
$row[3] == '' or $row[3] == 'http://')
            { echo 
''; }
            else
            {
           
?>
            <a href="<?php echo $row[3]; ?>">zur Homepage</a>
            <?php
           
}
           
?>
            </span>
        </td>
      </tr>
    </table>
           
           
            <?php
           
}
           
?>
                <table width="355">
                    <tr>
                        <td width="194">
                        <?php
                       
if($start 0.1)
                        {
                           
$zuerueck $start 10;
                            echo 
"<a href="$PHP_SELF?start=$Zur&uuml;ck">Zur&uuml;ck</a>";
                        }
                        for(
$i 1$i <= $zeigen$i++)
                        {
                           
$n += 10;
                        }
                       
?>
                        </td>
                        <td width="148" align="right">
                        <?php
                        $weiter 
$start 10;
                        if (
$menge $weiter)
                        {
                            echo
"<a href="PHP_SELF?start=$Weiter">Weiter</a>";
                        }
                       
?>
                        </td>
                    </tr>
        </table>
  </td>
</tr>
</body>
</html>

eintragen.php
PHP:
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
<?php
error_reporting
(0);
$name $_POST["name"];
$email $_POST["email"];
$homepage $_POST["homepage"];
$ueberschrift $_POST["ueberschrift"];
$kommentar $_POST["kommentar"];
$freigabe $_POST["freigabe"];
$date $_POST["date"];
$freigabe 'nein';
require 
".include.php";
$eintrag "INSERT INTO gaestebuch (Name, EMail, Homepage, Ueberschrift, Kommentar, Freigabe, Datum)
VALUES ('$name', '$email', '$homepage', '$ueberschrift', '$kommentar', '$freigabe', '$date')"
;
$eintragen mysql_query($eintrag);

$message "<strong>Neuer G&auml;stebucheintrag</strong><br><br>
            <strong>Name:<strong>$name<br>
            <strong>Mail:<strong>$mail<br>
            <strong>Homepage:<strong>$h<br><br>
            <strong>&Uuml;berschrift:<strong>$ueberschrift<br>
            <strong>Kommentar:<strong>$kommentar<br><br>
            Bitte unter dem Admin-Bereich moderieren. <a href='http://www.luisasplett.ch/admin.html'>zum Admin-Bereich</a>
            "
;
$xtra "From: Webmaster <webmaster@jz-design.ch>";
$xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
mail("johannes@johanneszeller.ch""Neuer G&auml;stebucheintrag"$message$xtra);
?>
Geändert von zellerjohannes am 04.08.09 um 15:51 Uhr
vindel#10
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

04.08.2009, 23:36

Hallo,

zum löschen: Deine MYSQL Syntax ist flasch, da du ihm nicht sagst, dass er einen eintrag in der Datenbank gaestebuch löschen soll.
Mit:
PHP:
1
2
3
4
<?
$loeschen 
"DELETE FROM gaestebuch WHERE id = '".mysql_escape_string($id)."'";
?>
sollte es klappen (das FROM fehlt)

Mit dem Datum: ka - müsste eigentlich gehen. Wenn du das Inputfeld mal auf "text" setzt, zeigt es dir dann beim Eintragen das Datum an?

Deine maiL: Probier mal
PHP:
1
2
3
4
5
<?
$xtra 
"From: Webmaster <webmaster@jz-design.ch>"
$xtra =. "MIME-Version: 1.0 \nContent-Type: text/html; boundary=\"BOUND\"";
?>


mit dem auslesen, dort hast d noch den Connect Befehl... nimm den mal raus:
PHP:
1
2
3
4
5
<?
$db 
= @MYSQL_CONNECT($server,$user,$passwort);
$db_select = @MYSQL_SELECT_DB($datenbank);
?>
Ansonsten lass di mal die Fehler anzeigen, dann weiß man vll mehr :D
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#11
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

05.08.2009, 00:32

Hallo Nochmals

Das Löschen funktioniert jetzt, die Mail-Funktion auch (musste nur noch das =. zum .= bei deinem Code wechseln ;) )

Nachdem ich das Feld mit der Zeit und dem Datum noch ins Formular getan habe :P (nicht ausserhalb) wird immerhin etwas in die DB geschrieben, doch leider ist das nur "$date1, $time1" ?!? Habe ich etwas mit den Semikolon oder so falsch? Habe unten nochmals gepostet.

Das Auslesen geht auch nicht, nachdem ich die Linie
PHP:
1
2
3
4
<?
$db 
= @MYSQL_CONNECT($server,$user,$passwort);
?>
gelöscht habe..?

gruss
jz

Auszug der Datum/Zeit-Funktion in neuereintrag.php
PHP:
1
2
3
<?php include("time.php"); ?>
<input name="date" type="hidden" value="<?php echo '$date1, $time1'?>" />


time.php
PHP:
1
2
3
4
5
6
7
<?php
$timestamp 
time();
$timestamp $timestamp 3600;
$date1 date("d.m.Y"$timestamp);
$time1 date("H:i"$timestamp);
?>
Geändert von zellerjohannes am 05.08.09 um 00:36 Uhr
vindel#12
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

05.08.2009, 13:09

Hallo,

dann weiß ich jetzt was mitm Datum is. mach aus
PHP:
1
2
value="<?php echo '$date1, $time1'?>"

einfach
PHP:
1
2
value="<?php echo $date1.", ".$time1?>"
dann sieht php $date1 und $time1 das auch als Variablen an und nciht als text :D

Mach die 2. zeile in der Index.php auch noch weg:
PHP:
1
2
3
4
<?
$db_select 
= @MYSQL_SELECT_DB($datenbank);
?>

dann hast du ein kleines problem mit deiner Menge.. die liest deine einträge aus, meinetwegen 5 und dann teilste du diese durch 10, macht nach adam riese 0.5. Dann sagst du bei LIMIT, dass er bei 0.5 anfangen zu lesen soll, wass er nicht kann, also bekommst du dort eine Fehlermeldung. Limit braucht als ersten Parameter bei welchem Element er anfangen soll auszulesen (z.B. 7) und als 2. Parameter die Länge, also 10, für dann beitrag 7 - 16.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#13
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

05.08.2009, 13:18

Danke, das mit dem Datum klappt jetzt und die zweite Zeile habe ich auch noch rausgenommen.
Aber den unteren Teil habe ich jetzt nicht ganz kapiert :P
kannst du mir das nochmals erklären (vll. im code)

gruss
jz
vindel#14
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

05.08.2009, 13:31

Es dreht sich um diese Zeilen:
PHP:
1
2
3
4
5
6
7
8
9
<?
$result 
mysql_query("SELECT * FROM gaestebuch");
$menge mysql_num_rows($result);
$zeigen floor($menge 10);
if (!
$start) { $start 0.1; }
$result mysql_query("SELECT * FROM gaestebuch
                      WHERE Freigabe != 'nein' ORDER BY ID DESC limit $start,10"
);
?>

die ersten 3 sind ja für deine Seiten, aber wo bekommst du den Wert $start her? Nirgendwo. Es  fehlt das $_GET['start'].
Deshlab hat start den Wert 0.1.
also "SELECT * FROM gaestebuch WHERE Freigabe != 'nein' ORDER BY ID DESC LIMIT 0.1,10"; währe die MySQL abfrage. Geht nicht, da MySQL nicht das Feld 0.1 finden kann. Als LIMIT gehen nur ganze Zahlen. Sprich 1, 2, 3 usw. Diese 4 Zeilen musst du nochmal überarbeiten. Und schalt doch einfach deine Fehlerberichterstattung von PHP ein, dann sagt er dir genau wo es hakt und MySQL genauso!!!!!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
zellerjohannes#15
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

05.08.2009, 14:29

ok. Ich habe jetzt die Fehlermeldungsunterdrückung rausgenommen und ketzt gibt er mir folgenden Fehler:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/www/web211/html/Luisa_Sereina_Splett/guestbook/index.php on line 21


..
vindel#16
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

05.08.2009, 17:51

versuch das mal so:
[php][/php]$result = mysql_query("SELECT * FROM gaestebuch
                      WHERE Freigabe != 'nein' ORDER BY ID DESC"); Also Ohne "limit", wenns dann klappt, dann überarbeite mal dein limitscript.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Javascript new line [Flash CS5] 23.11.2020 - user01234
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de