Avatar billede b3k-0ne Nybegynder
21. september 2006 - 20:14 Der er 7 kommentarer og
1 løsning

Vis kun nyhed hvid du er logget ind

Hej eksperter..
Jeg har dette script, og vil gerne at nyhederne fra databasen kun bliver vist på denne side hvis man er logget ind..

Hvordan gør jeg det?


<?php
session_start();

require('connect.php');

if(isset($_SESSION['admin']))
{
    if(is_numeric($_GET['slet']))
    {
        $query = mysql_query("DELETE FROM Nyheder WHERE id = ".$_GET['slet']." LIMIT 1");
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit();
    }
    if(isset($_POST['opretnyhed']))
    {
        $header = mysql_real_escape_string(strip_tags($_POST['header']));
        $news  = mysql_real_escape_string(strip_tags($_POST['news']));
        $query = mysql_query("INSERT INTO Nyheder(id,header,news,writen) VALUES('','".$header."','".$news."',NOW())");
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit();
    }
   
    //Hack til rediger...
    $overskrift = "";
    $nyhed = "";
    if(is_numeric($_GET['rediger']))
    {
        $query = mysql_query("SELECT * FROM Nyheder WHERE id = ".$_GET['rediger']." LIMIT 1");
        if(mysql_num_rows($query)==1)
        {
            $row = mysql_fetch_assoc($query);
            $overskrift = $row['header'];
            $nyhed = $row['news'];
        }
    }
    echo '<table>';
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo '<tr><td>Overskrift:</td><td><input type="text" name="header" value="'.$overskrift.'"></td></tr>';
    echo '<tr><td>Nyhed:</td><td><textarea name="news" cols="50" rows="10">'.$nyhed.'</textarea></td></tr>';
    echo '<tr><td colspan="2"><input type="submit" value="Opret Nyhed" name="opretnyhed"></td></tr>';
    echo '</form>';
    echo '</table>';
    echo '<A href="logud.php">Log ud</A>';
}
else
{
    if(isset($_POST['login']))
    {
        if($_POST['user'] == 'admin' && $_POST['pass'] == 'password')
        {
            $_SESSION['admin'] = true;
            header('Location: ' . $_SERVER['PHP_SELF']);
            exit();
        }else

{
    echo '<b>Du har angivet forkert brugernavn eller password!</b>';
    print '<br>';
}


    }
    echo '<table>';
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo '<tr><td>Brugernavn:</td><td><input type="text" name="user"></td></tr>';
    echo '<tr><td>Password:</td><td><input type="password" name="pass"></td></tr>';
    echo '<tr><td colspan="2"><input type="submit" value="Log Ind" name="login"></td></tr>';
    echo '</form>';
    echo '</table>';
}


echo '<hr>';

$query = mysql_query("SELECT * FROM Nyheder ORDER BY writen DESC") or die (mysql_error());
if(mysql_num_rows($query)>0)
{
    echo '<table>';
    while($row = mysql_fetch_assoc($query))
    {
        echo '<tr><td><b><font size="2">' . $row['header'] . '</font></b></td></tr>';
        echo '<tr><td style="border-bottom: 2px solid black;"><font size="2">' . $row['writen'] . '</font></td></tr>';
        echo '<tr><td><font size="2">' . nl2br($row['news']) . '</font></td></tr>';
        if($_SESSION['admin'])
        {
            echo '<tr><td><a href="skrivnyhed.php?slet='.$row['id'].'">Slet artikel</a></td></tr>';
            echo '<tr><td><a href="skrivnyhed.php?rediger='.$row['id'].'">Rediger artikel</a></td></tr>';
        echo '<tr><td><BR></td></tr>';
        echo '<tr><td><HR> </td></tr>';
        echo '<tr><td><BR></td></tr>';
        }
    }
    echo '</table>';
}
else
{
    echo 'Ingen nyheder endnu';
}

?>
Avatar billede coderdk Praktikant
21. september 2006 - 20:54 #1
Flyt alt nederste:

echo '<hr>';

$query = mysql_query("SELECT * FROM Nyheder ORDER BY writen DESC") or die (mysql_error());
if(mysql_num_rows($query)>0)
{
    echo '<table>';
    while($row = mysql_fetch_assoc($query))
    {
        echo '<tr><td><b><font size="2">' . $row['header'] . '</font></b></td></tr>';
        echo '<tr><td style="border-bottom: 2px solid black;"><font size="2">' . $row['writen'] . '</font></td></tr>';
        echo '<tr><td><font size="2">' . nl2br($row['news']) . '</font></td></tr>';
        if($_SESSION['admin'])
        {
            echo '<tr><td><a href="skrivnyhed.php?slet='.$row['id'].'">Slet artikel</a></td></tr>';
            echo '<tr><td><a href="skrivnyhed.php?rediger='.$row['id'].'">Rediger artikel</a></td></tr>';
        echo '<tr><td><BR></td></tr>';
        echo '<tr><td><HR> </td></tr>';
        echo '<tr><td><BR></td></tr>';
        }
    }
    echo '</table>';
}
else
{
    echo 'Ingen nyheder endnu';
}

op over den foregående }
Avatar billede b3k-0ne Nybegynder
21. september 2006 - 21:43 #2
Jo tak, det var slet ikke så indviklet.. :D

Du skulle vel ikke vide hvordan jeg kunne lave sådan en [Read more] knap for nyhederne.. Hvor her måske vises de første 50 tegn af sætningen?
Avatar billede coderdk Praktikant
21. september 2006 - 21:49 #3
http://dk.php.net/substr kan klippe lidt tekst til dig :)
Avatar billede b3k-0ne Nybegynder
21. september 2006 - 21:56 #4
Okay, det tror jeg ikke jeg finder ud af... Det skulle vel ikke være muligt at du kunne skrive kode til det..?
Altså sådan her: BlahBlaHHHH BlaHHH[Læs mere]

Og så kommer resten af nyheden frem...?
Avatar billede coderdk Praktikant
21. september 2006 - 22:12 #5
Tjah, prøv med:

<?php

$query = mysql_query("SELECT * FROM Nyheder ORDER BY writen DESC") or die (mysql_error());
if(mysql_num_rows($query)>0)
{
    echo '<table>';
    while($row = mysql_fetch_assoc($query))
    {
        echo '<tr><td><b><font size="2">' . $row['header'] . '</font></b></td></tr>';
        echo '<tr><td style="border-bottom: 2px solid black;"><font size="2">' . $row['writen'] . '</font></td></tr>';
        echo '<tr><td><font size="2">' . nl2br(substr($row['news'],0,50));
        echo '... [<a href="readmore.php?id=' .$row['id'] . '">læs mere</a>]</font></td></tr>';
        if($_SESSION['admin'])
        {
            echo '<tr><td><a href="skrivnyhed.php?slet='.$row['id'].'">Slet artikel</a></td></tr>';
            echo '<tr><td><a href="skrivnyhed.php?rediger='.$row['id'].'">Rediger artikel</a></td></tr>';
        echo '<tr><td><BR></td></tr>';
        echo '<tr><td><HR> </td></tr>';
        echo '<tr><td><BR></td></tr>';
        }
    }
    echo '</table>';
}
else
{
    echo 'Ingen nyheder endnu';
}
   
?>


Lav så readmore.php

<?php
session_start();

require('connect.php');

if(isset($_SESSION['admin']))
{
    $query = mysql_query("SELECT * FROM Nyheder WHERE id = '" . mysql_escape_string( $_GET['id'] ) . "'") or die (mysql_error());
    if ( $row = mysql_fetch_assoc( $query ) )
    {
        echo '<table>';
        echo '<tr><td><b><font size="2">' . $row['header'] . '</font></b></td></tr>';
        echo '<tr><td style="border-bottom: 2px solid black;"><font size="2">' . $row['writen'] . '</font></td></tr>';
        echo '<tr><td><font size="2">' . nl2br(row['news']);
        echo ' [<a href="readmore.php?id=' .$row['id'] . '">læs mere</a>]</font></td></tr>';
        echo '<tr><td><a href="skrivnyhed.php?slet='.$row['id'].'">Slet artikel</a></td></tr>';
        echo '<tr><td><a href="skrivnyhed.php?rediger='.$row['id'].'">Rediger artikel</a></td></tr>';
        echo '</table>';
    }
}

?>
Avatar billede coderdk Praktikant
21. september 2006 - 22:13 #6
Altså, erstat det lige efter den sidste <HR> med:

$query = mysql_query("SELECT * FROM Nyheder ORDER BY writen DESC") or die (mysql_error());
if(mysql_num_rows($query)>0)
{
    echo '<table>';
    while($row = mysql_fetch_assoc($query))
    {
        echo '<tr><td><b><font size="2">' . $row['header'] . '</font></b></td></tr>';
        echo '<tr><td style="border-bottom: 2px solid black;"><font size="2">' . $row['writen'] . '</font></td></tr>';
        echo '<tr><td><font size="2">' . nl2br(substr($row['news'],0,50));
        echo '... [<a href="readmore.php?id=' .$row['id'] . '">læs mere</a>]</font></td></tr>';
        if($_SESSION['admin'])
        {
            echo '<tr><td><a href="skrivnyhed.php?slet='.$row['id'].'">Slet artikel</a></td></tr>';
            echo '<tr><td><a href="skrivnyhed.php?rediger='.$row['id'].'">Rediger artikel</a></td></tr>';
        echo '<tr><td><BR></td></tr>';
        echo '<tr><td><HR> </td></tr>';
        echo '<tr><td><BR></td></tr>';
        }
    }
    echo '</table>';
}
else
{
    echo 'Ingen nyheder endnu';
}
 
?>


og så lav den fil jeg skriver med det indhold :)
Avatar billede b3k-0ne Nybegynder
21. september 2006 - 22:38 #7
Får denne fejl i readmore.php

Parse error: syntax error, unexpected '[' in /var/www/hotserv.dk/users/hg205/test/readmore.php on line 14
Avatar billede b3k-0ne Nybegynder
21. september 2006 - 22:46 #8
Har fundet ud af det.. det var bare et lille $ tegn der manglede...
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