Avatar billede Hamder83 Praktikant
08. november 2005 - 20:12 Der er 10 kommentarer og
1 løsning

iseet ? ny med php

hej, jeg vil gerne lave mine forms sådan at de kun skriver noget til databasen hvis der står noget i felterne, og ikke skriver til databasen hvis man f.eks. trykker f5. Er helt ny med php, men har prøvet det her : (og det virker ikke)


<?
if(isset($_POST["navn"]!= "" && $_POST["besked"]!= "") == 'submittet')
{
    mysql_query("INSERT INTO dtw (navn, besked) VALUES('".$_POST["navn"]."','".$_POST["besked"]."');");
}

$result=mysql_query("SELECT navn, besked FROM dtw ORDER BY id DESC LIMIT 0,10;");
while($row=mysql_fetch_array($result))
{
                echo $row["navn"] ." :<br>".$row["besked"] .""."<br><br>";
}


?>


på forhånd tak for hjælpen :)
Avatar billede jakobdo Ekspert
08. november 2005 - 20:17 #1
Du skal rette:
if(isset($_POST["navn"]!= "" && $_POST["besked"]!= "") == 'submittet')
til:
if(!empty($_POST["navn"]) && !empty($_POST["besked"]))
Og for at undgå f5, kan du sefter din insert lave:
mysql_query("INSERT INTO dtw (navn, besked) VALUES('".$_POST["navn"]."','".$_POST["besked"]."');");

header("location: " . $_SERVER["PHP_SELF"]);
exit();
Avatar billede pidgeot Nybegynder
08. november 2005 - 20:17 #2
Skift din if-kommando ud med følgende:

if(isset($_POST['navn']) && isset($_POST['besked']))

Du kan godt bruge " i stedet for ', men det tager lidt længere for PHP at se hvad der står hvis du bruger ", da den kigger strengen igennem efter variabler og erstatter disse med deres værdi - forskellen er lille, men hvis din side ender med at blive meget brugt, kan det godt ende med at have en stor indflydelse på hastigheden.
Avatar billede Hamder83 Praktikant
08. november 2005 - 20:29 #3
jakobdo, har gjort som du skrev.... men hvis jeg refresher min side... gør den det stadig?
Avatar billede jakobdo Ekspert
08. november 2005 - 20:32 #4
Har du tilføjet:
header("location: " . $_SERVER["PHP_SELF"]);
exit();
efter din mysql_query("INSERT...
Avatar billede Hamder83 Praktikant
08. november 2005 - 20:37 #5
ja... første gang jeg gør det, sker der ikke noget. Men hvis jeg igen udfylder begge felter, og trykker <ctrl><r> og den ber mig om at refreshe, så udfører den handlingen fra sidst. er der en slags clear mem. kommando? eller andre forslag?
Avatar billede jakobdo Ekspert
08. november 2005 - 20:57 #6
Prøv at smid hele din kode herind.
Avatar billede gringostar Nybegynder
09. november 2005 - 00:49 #7
du kan gøre det med et lille java script:

echo "<script language='javascript'>location.replace('".$_SERVER['PHP_SELF']."')</script>";
Avatar billede webstuff Nybegynder
14. november 2005 - 08:54 #8
Jeg er også helt ny i php.. Og jeg havde det samme problem her forleden..
Men jeg gjorde sådan her:

skriv.html - formen til at skrive i!
gem.php - gemmer i db og sender til vis.php med en header!
vis.php - viser udtræk fra db...
Avatar billede webstuff Nybegynder
14. november 2005 - 08:55 #9
du kan godt have skriv.html sat sammen med vis.php - men den skal bare lige hen og vende om gem.php..
Avatar billede Hamder83 Praktikant
11. september 2010 - 15:58 #10
Webstuff

smid lige et svar så får du points.
Avatar billede Hamder83 Praktikant
07. februar 2011 - 17:07 #11
Afsluttes.
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