Hjälp med gästbok (PHP)

Avdelningen för webbrelaterad programmering och grafisk design.
Post Reply
User avatar
jb
Posts: 1076
Joined: 2002-08-08 3:39:12
Location: Karlshamn
Contact:

Hjälp med gästbok (PHP)

Post by jb »

Jag håller på att lära mig PHP och har några problem när jag ska försöka göra en gästbok.

Det första problemet är att när man trycker på submit-knappen kommer man till add.php och då står det "Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache2/htdocs/gb/add.php:3) in /usr/local/apache2/htdocs/gb/add.php on line 4". Tar jag bort <html></html> får jag inget felmeddelande, men jag stannar kvar på new.php. Jag vill att jag ska komma till gb.php efter att ha tryckt på knappen.

När man gör ett nytt inlägg vill jag att tiden ska visas också, inte bara datumet.

När man kollar på inläggen är rubriken i mitten av raden, jag vill att den ska vara uppe.

edit: problem 1 och 3 fixade.
jag la till att den ska lägga in '".$_SERVER['REMOTE_ADDR']."' i databasen också, men det blir bara mitt ip, hur fixar man det?

gb.php

Code: Select all

<html>
        <head>
                <link rel=stylesheet href="../style2.css" type="text/css">
        </head>

        <body>
                <a href="new.php">Skriv något i gästboken</a><br><br><br><br>
                <?
                        include("db.php");
                        $conn = mysql_connect("$dbhost", "$dbuser", "$dbpass");
                        $get = mysql_db_query($database, "SELECT * FROM gb ORDER BY id DESC");

                        echo "<table border=0 cellspacing=0>";
                                while ($text = mysql_fetch_array($get)) {
                                        echo "<tr bgcolor=#004662>
                                                <td>
                                                        <b>$text[topic]
                                                </td>
                                                <td>
                                                        </b><i>$text[date]<br>
                                                        From: <a href=mailto:$text[mail]>$text[nick]</a>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td colspan=2>
                                                        $text[text]<br><br>
                                                </td>
                                        </tr>";
                                }
                        echo "</table>";
                        mysql_close($conn);
                ?>
        </body>
</html>
new.php

Code: Select all

<html>
        <head>
                <link rel=stylesheet href="../style2.css" type="text/css">
        </head>

        <body>

                <?
                        include("db.php");
                        $conn = mysql_connect("$dbhost", "$dbuser", "$dbpass");
                        $get = mysql_db_query($database, "SELECT * FROM gb ORDER BY id DESC");
                ?>

                <form action="add.php" method="post">
                        <table border="0">
                                <tr>
                                        <td>
                                                Namn:
                                        </td>
                                        <td>
                                                <input type="text" name="nick" size="30">
                                        </td>
                                </tr>

                                <tr>
                                        <td>
                                                E-mail:
                                        </td>
                                        <td>
                                                <input type="text" name="mail" size="30">
                                        </td>
                                </tr>

                                <tr>
                                        <td>
                                                Rubrik:
                                        </td>
                                        <td>
                                                <input type="text" name="topic" size="30">
                                        </td>
                                </tr>

                                <tr>
                                        <td valign="top">
                                                Text:
                                        </td>
                                        <td>
                                                <textarea rows="7" name="text" cols="30"></textarea>
                                        </td>
                                </tr>

                                <tr>
                                        <td></td><td>
                                                <input type="submit" value="Submit">
                                        </td>
                                </tr>
                        </table>
                </form>
        </body>
</html>
add.php

Code: Select all

<html>

<?
        header("Location: gb.php");
        include("db.php");
        $conn = mysql_connect("$dbhost", "$dbuser", "$dbpass");
        $date = date("Y-m-d H:i:s");
        mysql_db_query($database, "INSERT gb (topic, text, nick, mail, date) VALUES ('".$_POST['topic']."', '".$_POST['text']."', '".$_POST['nick']."', '".$_POST['mail']."', '".$date."')") or exit(mysql_error());
        mysql_close($conn);
?>

</html>
db.php

Code: Select all

<?
$dbhost = 'localhost';
$dbuser = '******';
$dbpass = '*******';
$database = 'gb';
?>
Last edited by jb on 2003-10-02 14:15:36, edited 2 times in total.
Ny låt ---> Jallabert - KRS3
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Det är inte så konstigt för headers måste skickas innan något annat, du kan alltså inte ha "header("Location: gb.php");" efter "<html>". Ett tips är att skicka användaren direkt till gb.php istället och lägga till den nya informationen där innan du hämtar ut det för att lista den.
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Post Reply