Avatar billede smartguy101 Juniormester
24. marts 2010 - 15:33 Der er 7 kommentarer og
1 løsning

Simpel wall

Hej folkens.
Kan man lave dette script sådan, at man skal taste et kodeord f.eks. "hejsa" - før man kan poste til txt-filen? :-)

<form action"gbog.php" method="post">
<input name="navn" type="text">
<input name="tag" type="text">
<input type="Submit" value="Check your email">
</form>
<?php
if($_POST["navn"] && $_POST["tag"]) {
$str = "Name: $navn \r\r Tag: $tag<br>";
$file = "gbog.txt";
$fp = fopen($file, "r");
$txt = file($file);
$res = implode( "", $txt);
$res = "$str$res";
fclose($fp);
$fp = fopen($file,"w");
fputs($fp, $res);
fclose($fp);
}

// her udskrives hvad der er i gbog.txt
$filename="gbog.txt";
$message=file($filename);
$message = implode("\n",$message);
$txt = "$message";
echo "$txt";
?>
Avatar billede Slettet bruger
24. marts 2010 - 17:07 #1
Lige en opfølger, inden dit spørgsmål ryger ned under "horisonten"

- hvorfor ?

Det er let nok at tilføje et ekstra input-felt, og så checke at der står noget bestemt i det, før det nye indsættes nyt i text-filen. Men hvad er formålet ?
- og hvorfor står der "Check your email" på submit-knappen ?
Avatar billede smartguy101 Juniormester
24. marts 2010 - 19:33 #2
Hvorfor? Er lidt usikker hvad du mener? Altså det er fordi det kun er mig som skal kunne "tagge".

Check your email, skal jeg ikke kunne sige hvorfor der står. Der kan også stå OK. Det var bare et gratis script jeg fandt.
Avatar billede Slettet bruger
25. marts 2010 - 12:46 #3
Hej igen - jeg fik lige lyst til "lave den færdig" selv...

Der er 3 kodeord (som du kan dele ud til venner og mødre)
- de resulterer hver især i en særlig farve på indlæg'ene

Foruden wall.php skal der findes en wall.txt i samme mappe
- som "alle" har lov at skrive til

Se det her (i en begrænset periode): http://www.villytildethele.dk/wall/wall.php
- hvis andre har "noget at indvende" så lad høre :)


Sourcen (wall.php):

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html><head><meta http-equiv='Content-type' content='text/html;charset=UTF-8'>
<style>
body    { text-align:center; background-color:#000; font:12pt arial,sans serif; color:#ECE;}
.titel    { text-align:center; margin-top:30px; font:123px times,serif; color:#E22;}
.input    { text-align:center; margin:30px; display:inline-block; background-color:#EEE; padding:6px; border:3px solid #AAA; -moz-border-radius:7px; color:#000;}
.output    { text-align:left;  margin-top:12px; display:inline-block; background-color:#000; padding:6px 2px 0 6px; border:2px solid #AAF; -moz-border-radius:7px; max-width:500px;}
.under    { text-align:right;  display:block; font:9pt verdana,sans serif;border-top;1px solid #FFF;}
</style>
</head><body>

<div class='titel'>The Wall</div>

<div class='input'>
<form action'wall.php' method='post'>
Her kan du sige din mening - hvis du kender koden : )<br>
<input name='text' size='80' type='text'><br>
Navn:<input name='navn' size='30' type='text'>      Kode:<input name='kode' size='10' type='text'>    <input type='Submit' value='Send'>
</form>
</div>
<br>

<?php

$wall='';
if (file_exists('wall.txt'))
    $wall = file_get_contents('wall.txt');

if ($_POST['navn'] != '' && $_POST['kode'] != '' && $_POST['text'] != '') // alle 3 felter skal være udfyldt
    {
    sleep(5); // gør det meget meget sværere at "gætte" en valid kode med "brute force"

    $koder = array('OO7',    '47II',    'harumph!',    'MOR');
    $farve = array('FF0',    'E0C',    'FFF',        'E88');

    for ($i=0;$i<count($koder);$i++)
        if ($_POST['kode'] == $koder[$i])
            break;

    if ($i < count($koder))
        {
        $dage = array('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag','Søndag');
        $mndr = array('januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december');
        $nu = time();
        $datoStempel = $dage[date('w',$nu)] . ' d. ' . date('j',$nu) . '. ' . $mndr[date('n',$nu)-1] . ' kl. ' . date('H:i',$nu) . ' ';


        $_POST['text'] = htmlspecialchars($_POST['text']);
        $_POST['navn'] = htmlspecialchars($_POST['navn']);

        $blok  = '<div class="output" style="border-color:#' . $farve[$i] . ';">';
        $blok .= $_POST['text'];
        $blok .= '<div class="under" style="color:#' . $farve[$i] . ';border-color:' . $farve[$i] . ';">';
        $blok .= $_POST['navn'] . ' ~ ' . $datoStempel . '<br>';
        $blok .= '</div></div>';

   
        $wall = $blok . '<br><br>' . $wall;
        file_put_contents('wall.txt',$wall);
        echo '<script>window.location.replace("wall.php")</script></body></html>'; // for at undgå dobbelt-posts ved reload
        exit;
        }
    else
        echo '<script>alert("Ugyldig kode :(")</script>';
    }

echo $wall;
?></body></html>
Avatar billede smartguy101 Juniormester
25. marts 2010 - 13:26 #4
Hm, nu har jeg kæmpet en del med at få det til at passe ind i min egen kode :-/ Kan du prøve at implementere det i den kode jeg allerede har skrevet?
Avatar billede Slettet bruger
25. marts 2010 - 14:10 #5
Det er principielt den samme kode, blot med nogle tilføjelser og erstattede uhensigtsmæssigheder : )
Avatar billede smartguy101 Juniormester
25. marts 2010 - 21:28 #6
andre forslag ?
Avatar billede smartguy101 Juniormester
25. marts 2010 - 22:33 #7
Hov, fandt ud af det :-) - kan du ikke lige svare, så giver jeg point :-)
Avatar billede Slettet bruger
25. marts 2010 - 22:41 #8
S'gerne : )

Kan man se det et sted ?
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