Gå til innhold

Endre et shoutbox skript, poste blankt og namepass


Anbefalte innlegg

Heisann

 

Har fått satt opp skriptet nå, men det trenger litt små justeringer:

 

Brukeren kan jo poste blankt! Skikkelige iriiterende, siden det ødelegger layout'en. Kan det fikses?

 

Brukeren kan også bruke navnet "Jonas" som de vil. Jeg vil gjerne at det skal være et ekstra felt i "postinga" hvor man må skrive inn et passord for å bruke navnet "Jonas". Går det ann?

 

Slik ser skriptet ut:

<?php

$file="shout.html";


$o=fopen($file,'r');

$txt=fread($o,filesize($file));

fclose($o);


$f=fopen($file,'w+');

$text=fread($f,filesize($file));


fwrite($f, "<p style=\"margin-left: 2px; margin-right: 2px\"><b>" . $_POST['navn'] . ":</b> " . $_POST['komentar'] . "<br><br></p> $txt");
fclose($f);

header("Refresh: 3; URL=index.php?page=shoutbox"); 
echo " "; // NN4 requires that we output something... 
exit();

echo "Du blir nå overført<br>";
echo "Hvis ikke, trykk <A href=\"index.php?page=shoutbox\">her</A>";

?>

 

Takker for svar :)

Lenke til kommentar
Videoannonse
Annonse

bytt ut

fwrite($f, "<p style=\"margin-left: 2px; margin-right: 2px\"><b>" . $_POST['navn'] . ":</b> " . $_POST['komentar'] . "<br><br></p> $txt");
fclose($f);

 

 

med

 

if (empty($_POST[kommentar])) {
echo("Du må fylle inn alle feltene!");
exit;
}
else
{
fwrite($f, "<p style=\"margin-left: 2px; margin-right: 2px\"><b>" . $_POST['navn'] . ":</b> " . $_POST['komentar'] . "<br><br></p> $txt");
fclose($f);
}

Sikkert et en eller annen feil inni der, men jeg er stuptrøtt

Lenke til kommentar
du bør strippe htmltags fra input

Jeg har også tenkt over det ja, men jeg vet ikke helt hvordan jeg skulle ha gjort det..

 

Har sett litt på koden din, SirIce, og kommet fram til at hvis brukeren også må poste navn, så blir koden slik:

if (empty($_POST['navn'])) {
echo("Du må fylle inn alle feltene!");
exit;
}
else
{
if (empty($_POST['komentar'])) {
echo("Du må fylle inn alle feltene!");
exit;
}
else
fwrite($f, "<p style=\"margin-left: 2px; margin-right: 2px\"><b>" . $_POST['navn'] . ":</b> " . $_POST['komentar'] . "<br><br></p> $txt");
fclose($f);
}
}

Har ikke tid til å teste nå, men ser noen noe feil i den?

 

Takk for svar :)

 

Edit: Og hvordan blir det med at hvis brukeren skriver "Jonas", men skriver feil passord, så postes ikke posten? Skjønner ikke helt hvordan if'en blir :blush:

Endret av Jonas
Lenke til kommentar

Ok, jeg fikk til slik at man må poste noe for å poste, men hvordan skal jeg få til namepass? Altså, jeg har et felt. Hvis brukeren vil bruke navnet "Jonas" må det riktige passordet stå i det feltet. Slik ser skriptet ut nå:

<?php

if (empty($_POST['navn'])) {
echo("Du må fylle inn alle feltene!<br>");
echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";
exit;
}
else
{
if (empty($_POST['komentar'])) {
echo("Du må fylle inn alle feltene!<br>");
echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";
exit;
}
else

$file="shout.html";


$o=fopen($file,'r');

$txt=fread($o,filesize($file));

fclose($o);


$f=fopen($file,'w+');

$text=fread($f,filesize($file));

fwrite($f, "<p style=\"margin-left: 2px; margin-right: 2px\"><b>" . $_POST['navn'] . ":</b> " . $_POST['komentar'] . "<br><br></p> $txt");
fclose($f);
}

header("Refresh: 3; URL=index.php?page=shoutbox"); 
echo " "; // NN4 requires that we output something... 
exit();

echo "Du blir nå overført<br>";
echo "Hvis ikke, trykk <A href=\"index.php?page=shoutbox\">her</A>";

?>

Torbjørn, vet du hvordan jeg kan gjøre det?

Lenke til kommentar

du må ha et nytt felt, la oss kalle det $_POST['pass']

 

if`n må først sjekke at $_POST['navn'] ikke er tom, er den det ->feil hvis ikke sjekk om det er Jonas, er det det ->sjekk at $_POST['pass'] inneholder passordet ditt -> hvis ikke gå til feil. hvis det inneholder passord

gå videre å sjekk om $_POST[`kommentar`] er tom eller ikke..

 

litt klundrete forklart, men jeg kan ikke php.

Lenke til kommentar
du må ha et nytt felt, la oss kalle det $_POST['pass']

 

if`n må først sjekke at $_POST['navn'] ikke er tom, er den det ->feil hvis ikke sjekk om det er Jonas, er det det ->sjekk at $_POST['pass'] inneholder passordet ditt -> hvis ikke gå til feil. hvis det inneholder passord

gå videre å sjekk om $_POST[`kommentar`] er tom eller ikke..

 

litt klundrete forklart, men jeg kan ikke php.

Hva jeg skal gjøre vet jeg, men jeg vet ikke hvordan jeg skal gjøre det ;)

 

Hadde jeg bare vist hvordan man kunne sammenligne tekster i php hadde det gått glatt, men jeg har fått et inntrykk av at en if kan skrives på mange måter, alt ettersom hva som skal sammenlignes.

Lenke til kommentar
Gjest Slettet-rXRozPkg
if (empty($_POST['navn'])) {
echo("Du må fylle inn alle feltene!<br>");
echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";
exit;
}
else
{
if (empty($_POST['komentar'])) {
echo("Du må fylle inn alle feltene!<br>");
echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";
exit;
}
else
bla bla.....

Det der var er merkelig måte å skrive på :yes:

 

if (empty($_POST['navn'])) {

echo "Du må fylle inn alle feltene!<br>";

echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";

}

else if (empty($_POST['komentar']))

{

echo "Du må fylle inn alle feltene!<br>";

echo "<A href=\"index.php?page=shoutbox\">Tilbake</A>";

}

else.....

 

Jeg har altså fjernet exit; og byttet til en if - elseif - else stuktur.

Endret av Slettet-rXRozPkg
Lenke til kommentar

Yeah! Fikk det til namepass'en heeelt selv nå :wee: Da var shoutboxen ferdig.

 

Takker for svar!

 

http://home.no.net/psg1/index.php?page=shoutbox

 

Edit: Finnes det noe form for en "replace" funksjon i php? Jeg vil bruke den til å replace alt som står mellom de to "tag"-tegnene (< og >) Hvordan gjør jeg det?

 

Og når jeg skriver et ord med gåseøyne rundt, blir det ikke bare gåseøyne, men også skråstrek! Eks:

 

"Jonas"

blir til

\"Jonas\"

 

Hvorfor skjer det?

Endret av Jonas
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...