Avatar billede Ribez Nybegynder
01. november 2009 - 19:26 Der er 3 kommentarer og
1 løsning

Script oprettet en post selv.

Hej

Jeg har lidt problemer med et lille script.

Når jeg henter siden ind via en include, laver den en post i databasen selv (uden data, med ID 0)

Når jeg så includer siden igen, siger den at O allerede findes.

Mit script er som dette:

<form id="FormName" action="<? echo $PHP_SELF; ?>" method="post" name="tilfoej">
            <table width="300" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td width="120">ButiksID:</td>
                    <td><input class="input" type="text" name="id" size="30"></td>
                </tr>
                <tr>
                    <td width="120">Butiksnavn:</td>
                    <td><input class="input" type="text" name="butiksnavn" size="30"></td>
                </tr>
               
            </table>
            <input class="buttons" type="submit" value="Tilf&oslash;j">&nbsp;<input class="buttons" type="reset" value="Slet alt">
        </form>
       
        <?php
       
        if ( $_POST['submit'] = "Tilf&oslash;j")
{
       
include("connect.php"); //Inkluder filen der connecter til min database

$sql="INSERT INTO butikker (id, butiksnavn) VALUES ('$_POST[id]','$_POST[butiksnavn]')";


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

mysql_close($con);

}

?>

Problemet er jo nok at den kører det sidste skrift, som om at jeg havde trykket på tilføj i formen.
Avatar billede paaskehare Nybegynder
01. november 2009 - 19:34 #1
Jep, det er helt og holdent derfor, prøv at bytte:

<input class="buttons" type="submit" value="Tilf&oslash;j">

ud med:

<input class="buttons" type="submit" value="Tilf&oslash;j" name="submit">

og derefter bytte:

if ( $_POST['submit'] = "Tilf&oslash;j")

ud med fx:

if (isset($_POST['submit']))

Og så er det også en god idé at tjekke efter om de values der nu bliver sendt ikke er SQL injections eller andet skrammel.
Avatar billede dkfire Nybegynder
01. november 2009 - 20:10 #2
Og lige for at tilføje, så ligger din fejl i at du kun bruger et enkelt =. For at sammen ligne noget skal du bruge == eller ===.
Brugen af kun = vil altid give sandt.

if ( $_POST['submit'] == "Tilf&oslash;j")
Avatar billede Ribez Nybegynder
01. november 2009 - 21:22 #3
"Og så er det også en god idé at tjekke efter om de values der nu bliver sendt ikke er SQL injections eller andet skrammel."

Hvordan kan jeg gøre det? (evt. link)
Avatar billede Ribez Nybegynder
01. november 2009 - 21:25 #4
Og forresten, det virkede som det skulle. tak
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