Avatar billede udvikler Nybegynder
24. august 2005 - 17:14 Der er 11 kommentarer og
1 løsning

Er der en bedre/nemmere måde at lave dette på

Hejsa.. jeg har lavet et forum (udelukkene kun for at lære lidt mere om php) jeg er så blevet færdig med det og vil gerne lige høre om der er nogle ting som kunne finpudses ? Altså er der nemmere måder eller bedre måder at lave de forskellige ting på..

Jeg har 3 filer:

index.php
laes.php
opret.php

Hvis i vil hjælpe så skriv lige.. så skriver jeg mine koder..
Avatar billede fixxxer Nybegynder
24. august 2005 - 17:29 #1
Hvis du laver en simple fil der hedder source.php med indholdet:

<?
  highlight_file($_GET['fil']);
?>

Så behøver du ikke copy/paste hele dit script herind..
Avatar billede udvikler Nybegynder
24. august 2005 - 17:32 #2
Er gjort.. her er min side: www.fora.frac.dk
Avatar billede udvikler Nybegynder
24. august 2005 - 17:33 #3
Hmm.. det script virker ikke på frac.dk :S
Avatar billede fixxxer Nybegynder
24. august 2005 - 17:34 #4
Ok, det tillader frac.dk åbenbart ikke .. Så må du paste din kode her ind
Avatar billede udvikler Nybegynder
24. august 2005 - 17:36 #5
Ok.. her er min index.php fil:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>

<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $query = mysql_query("select id, overskrift, besked from forum where id='" . $_GET['id'] . "'") or die(mysql_error());
    while ($foo = mysql_fetch_array($query))
    {
        echo $foo['overskrift'] . "<br><hr><br>" . $foo['besked'];
    }
}
else
{
    $query = mysql_query("select id, overskrift, besked from forum") or die(mysql_error());
    while ($row = mysql_fetch_array($query))
    {
        echo "<a href=\"laes.php?id=" . strip_tags($row['id']) . "\">" . strip_tags($row['overskrift']) . "</a><br><hr><br>";
    }
}
?>

</td>
</tr>
</table>
</div>

og her er opret.php:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>


<html>
<head>
<title>Forum</title>
</head>

<body>


<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>


<form action="" method="POST">

<?
//Her inkludere vi filen der indenholder database oplysningerne

include "mysql.php";

// Her tjekker vi om man overhovdet har trykket på submit knappen

if($_POST[submit]) {

// Her tjekker vi om man overhovedet har skrevet noget i felterne

if($_POST[overskrift] == "" OR $_POST[besked] == "") {
print "Et eller flere felter mangler at blive udfyldt!";
print "<br/><br/>";

}else{

//hvis de alt ovenstående er opfyldt, indsætter den teksten i mysql databasen

mysql_query("INSERT INTO forum (overskrift, besked) VALUES ('$_POST[overskrift]', '$_POST[besked]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";

}
}
?>

Overskrift <br/>
<input type="text" name="overskrift" size="30"><br/>

Besked <br/>
<textarea name="besked" rows="10" cols="40"></textarea><br/><br/>

<input type="submit" name="submit" value="submit">

</form>

</td>
</tr>
</table>
</div>

</body>
</html>

og til sidst så er dette leas.php:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>


<html>
<head>
<title>Forum</title>
</head>

<body>


<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>


<form action="" method="POST">

<?
//Her inkludere vi filen der indenholder database oplysningerne

include "mysql.php";

// Her tjekker vi om man overhovdet har trykket på submit knappen

if($_POST[submit]) {

// Her tjekker vi om man overhovedet har skrevet noget i felterne

if($_POST[overskrift] == "" OR $_POST[besked] == "") {
print "Et eller flere felter mangler at blive udfyldt!";
print "<br/><br/>";

}else{

//hvis de alt ovenstående er opfyldt, indsætter den teksten i mysql databasen

mysql_query("INSERT INTO forum (overskrift, besked) VALUES ('$_POST[overskrift]', '$_POST[besked]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";

}
}
?>

Overskrift <br/>
<input type="text" name="overskrift" size="30"><br/>

Besked <br/>
<textarea name="besked" rows="10" cols="40"></textarea><br/><br/>

<input type="submit" name="submit" value="submit">

</form>

</td>
</tr>
</table>
</div>

</body>
</html>
Avatar billede fixxxer Nybegynder
24. august 2005 - 17:39 #6
Jeg samler lige mine kommentarer i en ny fil, og ligger op :)
Avatar billede fixxxer Nybegynder
24. august 2005 - 17:45 #7
<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>

<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $query = mysql_query("select id, overskrift, besked from forum where id='" . $_GET['id'] . "'") or die(mysql_error());
    /*
        i ovenstående mysql_query() tillader du et hul, i det at det er muligt at sende uønskede tegn ind i
        forespørgelsen.
       
        brug mysql_real_escape_string() eller mysql_escape_string() for at lukke hullet:
       
        mysql_query("select id, overskrift, besked from forum where id='" . mysql_escape_string( $_GET['id'] ). "'")
    */
   
    while ($foo = mysql_fetch_array($query))
    {
                echo $foo['overskrift'] . "<br><hr><br>" . $foo['besked'];
    }
}
else
{
    $query = mysql_query("select id, overskrift, besked from forum") or die(mysql_error());
    while ($row = mysql_fetch_array($query))
    {
        echo "<a href=\"laes.php?id=" . strip_tags($row['id']) . "\">" . strip_tags($row['overskrift']) . "</a><br><hr><br>";
            /*
                personligt foretrækker jeg at bruge enkelt-quotes når jeg skriver html,
                for at undgå at escape dobbelt-quotes i selve html'et
               
                '<a href="laes.php?id=' . strip_tags($row['id']) . '">'
               
                dog skal man være opmærksom på at '$variabel' ikke virker i modsætningen til "$variabel"
                det samme gælder \n og \t m.fl
            */
    }
}
?>

</td>
</tr>
</table>
</div>

og her er opret.php:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>


<html>
<head>
<title>Forum</title>
</head>

<body>


<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>


<form action="" method="POST">

<?
//Her inkludere vi filen der indenholder database oplysningerne

include "mysql.php";

// Her tjekker vi om man overhovdet har trykket på submit knappen

if($_POST[submit]) {

// Her tjekker vi om man overhovedet har skrevet noget i felterne

if($_POST[overskrift] == "" OR $_POST[besked] == "") {
/*
    brug trim() for at undgå at en bruger blot skriver et mellemrum i overskrift og besked
    if(trim($_POST[overskrift]) == "" OR trim($_POST[besked]) == "")
*/
print "Et eller flere felter mangler at blive udfyldt!";
print "<br/><br/>";

}else{

//hvis de alt ovenstående er opfyldt, indsætter den teksten i mysql databasen

mysql_query("INSERT INTO forum (overskrift, besked) VALUES ('$_POST[overskrift]', '$_POST[besked]')") or die(mysql_error());
/*
    igen, mysql_escape_string()
   
    mysql_query("INSERT INTO forum (overskrift, besked) VALUES ('".mysql_escape_string($_POST[overskrift])."', '".mysql_escape_string($_POST[besked])."')")
*/

print "Beskeden blev nu gemt!";
print "<br/><br/>";

}
}
?>

Overskrift <br/>
<input type="text" name="overskrift" size="30"><br/>

Besked <br/>
<textarea name="besked" rows="10" cols="40"></textarea><br/><br/>

<input type="submit" name="submit" value="submit">

</form>

</td>
</tr>
</table>
</div>

</body>
</html>

og til sidst så er dette leas.php:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>


<html>
<head>
<title>Forum</title>
</head>

<body>


<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>


<form action="" method="POST">

<?
//Her inkludere vi filen der indenholder database oplysningerne

include "mysql.php";

// Her tjekker vi om man overhovdet har trykket på submit knappen

if($_POST[submit]) {

// Her tjekker vi om man overhovedet har skrevet noget i felterne

if($_POST[overskrift] == "" OR $_POST[besked] == "") {
/*
    trim()
*/
print "Et eller flere felter mangler at blive udfyldt!";
print "<br/><br/>";

}else{

//hvis de alt ovenstående er opfyldt, indsætter den teksten i mysql databasen

mysql_query("INSERT INTO forum (overskrift, besked) VALUES ('$_POST[overskrift]', '$_POST[besked]')") or die(mysql_error());
/*
    mysql_escape_string()
*/
print "Beskeden blev nu gemt!";
print "<br/><br/>";

}
}
?>

Overskrift <br/>
<input type="text" name="overskrift" size="30"><br/>

Besked <br/>
<textarea name="besked" rows="10" cols="40"></textarea><br/><br/>

<input type="submit" name="submit" value="submit">

</form>

</td>
</tr>
</table>
</div>

</body>
</html>
Avatar billede fixxxer Nybegynder
24. august 2005 - 17:48 #8
Umiddelbart ser det jo pænt ud, dog ville jeg selv gøre lidt mere ved opsætningen af HTML, her tænker jeg på tekst-layoutet. (tabulator er en fantastisk ting :-)

leas.php og opret.php har næsten samme layout og samme validering - du kunne måske nøjes med kun ene, der hed skriv.php?
Avatar billede udvikler Nybegynder
24. august 2005 - 17:55 #9
Hmm.. nej.. så ville jeg få problemer når man skal kommentere spørgsmålene.. for så ville kommentar textarea'et også kommer frem når man opretter et indlæg.. engang var det to filer, men det har jeg lavet om ;)
Læg et svar.. jeg har sku lært meget :)
Avatar billede fixxxer Nybegynder
24. august 2005 - 19:07 #10
Jeg er glad for at du har fået noget ud af min kritik :-)


Fortsat god scripting-lyst!
Avatar billede fixxxer Nybegynder
24. august 2005 - 19:07 #11
-
Avatar billede Slettet bruger
24. august 2005 - 19:48 #12
Til næste gang du vil have din kode nederst på sitet, skal du blot skrive:

show_source(__FILE__);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester