Avatar billede proman Nybegynder
25. juni 2006 - 20:54 Der er 13 kommentarer

Der skal være tekst i besked før den bliver posted.

Hejsa.

Hvad er det nu man skal skrive i sin PHP kode, for at den gør sådan at der skal stå noget i de felter der nu er i (navn og tekst) før beskeden bliver posted. Hvis en af dem, eller begge er tomme, så skal beskeden ikke vises.

Evt. oplysninger kan jeg skaffe.

Og nu hvor jeg er igang,
hvordan er det nu man laver sådan at det tidspunkt man poster en besked, det bliver gemt i databasen, og bliver hevet med ud sammen med det andet.
Den tutorial jeg læste, der stod der ingen ting om det :/

Ps. dette spørgsmål handler om en tagwall/gæstebog
Avatar billede steven_ Nybegynder
25. juni 2006 - 20:59 #1
if( !empty( $_POST['name'] ) && !empty( $_POST['text'] ) )
{
    // fys løs
}
Avatar billede proman Nybegynder
25. juni 2006 - 21:00 #2
Jeg kan ikke prøve det er lige nu, men om 2 timer nok..
Så hvis det virker så får du point der ;)
Avatar billede nielle Nybegynder
25. juni 2006 - 21:25 #3
Hvis den også skal kunne tage højde for at folk ikke bare skriver et par blamktegn i et af felterne:

if (!empty($_POST['name']) && trim($_POST['name']) != "" && !empty($_POST['text']) && trim($_POST['text']) != "")
{
    // fys løs
}
Avatar billede proman Nybegynder
26. juni 2006 - 10:54 #4
Hvad er det der skal være imellem {  } ?
Avatar billede proman Nybegynder
26. juni 2006 - 11:45 #5
Hmm.. Det virker vidst nu!

Men, når jeg lige har skrevet en besked, og jeg så opdaterer, så skriver den beskeden igen :S

Hvad kan jeg gøre for at gøre sådan at den ikke gør det? :D
Avatar billede nielle Nybegynder
26. juni 2006 - 11:52 #6
26/06-2006 10:54:17> Det jeg hentydede til var at scriptet helst skulle kunne tage højde for at folk ikke bare indtastede to blanktegn i f.eks. name-feltet i din formular. Hvis de gør dette, så er feltet nemlig *ikke* tomt ... men indholdet er på den anden side heller ikke mere brugbart end hvis de slet ikke havde indtastet noget.

Vi snakker om forskellen på teksterne "" og "  ".
Avatar billede proman Nybegynder
26. juni 2006 - 11:57 #7
Aha..

Men, hvordan kan jeg gøre sådan at den ikke skriver samme besked som jeg lige har skrevet, når jeg opdaterer?
Avatar billede proman Nybegynder
26. juni 2006 - 12:17 #8
Nå ikke :b

Sig endelig hvis du skal bruge noget :o)
Avatar billede nielle Nybegynder
26. juni 2006 - 12:44 #9
26/06-2006 12:17:33> Så utålmodig. Jeg håber ikke at det gør noget at jeg ikke sidder klistret til keyboardet hele tiden. ;^)

Hvad er det lige præcist som er dit problem? Umiddelbart skulle den ikke beholde de gamle værdier i din formular efter at den er blevet submittet. Hvis den alligevel gør det, så lyder det som om at der er noget kode som aktivt sørger for at den gør det.
Avatar billede proman Nybegynder
26. juni 2006 - 14:25 #10
Jeg er utålmodig :P:P

Du kan da lige få min kode :o)

<html>
<head>
<title>Untitled Document</title>
</head>
<form method="post" action="tagwall.php">
Navn:<br /><input type="text" name="navn" /><br />
Besked:<br />
<textarea name="besked" rows="5" cols="30">
</textarea><br />
<input type="submit" accesskey="R" value="Skriv" />
</form>

<?
$con = mysql_connect("localhost","****","****");
if(!$con)
{
die('Kunne ikke connecte: ' . mysql_error());
}

mysql_select_db("db204", $con);

if( !empty( $_POST['navn'] ) && !empty( $_POST['besked'] ) )
{
$sql = "INSERT INTO tagwall (navn, besked, dato) VALUES ('$_POST[navn]','$_POST[besked]','$_POST[dato]')";

if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
   

}

$result = mysql_query("SELECT * FROM tagwall");

while($row = mysql_fetch_array($result))
{
echo "<table border='1'>";
echo "<tr><td width='300'>";
echo "" . $row['navn'] . "<br /><hr size='1'>";
echo $row['besked'];
echo "<br /><br />";
echo "</td></tr></table>";
}
?>

<body>

</body>
</html>
Avatar billede nielle Nybegynder
26. juni 2006 - 15:52 #11
Jeg har lige lavet lidt om på din kode:

html>
<head>
<title>Untitled Document</title>
</head>
<body>

<form method="post" action="tagwall.php">
Navn:<br />
<input type="text" name="navn" /><br />
Besked:<br />
<textarea name="besked" rows="5" cols="30">
</textarea><br />
<input type="submit" accesskey="R" value="Skriv" />
</form>

<?
$con = mysql_connect("localhost", "****", "****") or die('Kunne ikke connecte: ' . mysql_error());

mysql_select_db("db204", $con) or die(mysql_error());

if (!empty($_POST['name']) && trim($_POST['name']) != "" && !empty($_POST['besked']) && trim($_POST['besked']) != "")
{
    $sql = "INSERT INTO tagwall (navn, besked, dato) VALUES ('$_POST[navn]','$_POST[besked]','$_POST[dato]')";
    mysql_query($sql, $con) or die('Error: ' . mysql_error());
}

$result = mysql_query("SELECT * FROM tagwall") or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
    echo "<table border='1'>";
    echo "<tr><td width='300'>";
    echo $row['navn'] . "<br /><hr size='1'>";
    echo $row['besked'];
    echo "<br /><br />";
    echo "</td></tr></table>";
}
?>
</body>
</html>

- sådan at den er mere kompakt, at den tager mit forslag fra 25/06-2006 21:25:50 med, og at den overholder nogle flere af HTML-standarderne. ;^)
Avatar billede nielle Nybegynder
26. juni 2006 - 15:54 #12
Men jeg er ikke sikker på hvad problemet er...

I bunden har du en løkke som udskriver samtlige poster fra tagwall'en ... selvfølgelig vil den så også udskrive den post du netop har submittet. Eller ville du have det på en anden måde?
Avatar billede nielle Nybegynder
08. juli 2006 - 08:19 #13
Hvad med noget respons?
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