Avatar billede fire-fox Nybegynder
14. september 2006 - 01:50 Der er 3 kommentarer og
1 løsning

dobbel post

Hvordan forhindre jeg denne kode i at smide tomme felter ind i mysql databasen når jeg trykker på Opdater...?


<?php
$db = mysql_connect("localhost", "root", "xxxxxx") or die (mysql_error());
mysql_select_db("domains") or die (mysql_error());
mysql_query("INSERT INTO vhosts (domain, docroot) VALUES ('" . $_POST["domain"] . "','" . $_POST["docroot"] . "')") or die(mysql_error());
?>

<form action="<? $PHP_SELF ?>" method="post">
  <table border="0" width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0" height="101">
    <tr>
      <td width="100%" height="16"><font color="000000" face="verdana" size="1">Domain:</font></td>
      <td width="100%" height="16" ></td>
    </tr>
    <tr>
      <td width="50%" height="22">
        <input type="text" name="domain" size="20"  maxlength="20">
        </font></td>
    </tr>
  <tr>
      <td width="100%" height="16"><font color="000000" face="verdana" size="1">Docroot:</td>
      <td width="100%" height="16" ></td>
    </tr>
    <tr>
      <td width="50%" height="22">
        <input type="text" name="docroot" size="20"  maxlength="20">
        </font></td>
    </tr>
    <tr>
      <td width="50%" height="26">
        <input type="submit" value="Opret">
        <input type="submit" class="button" name="clear" value="Clear">
        <input type="submit" class="button" name="update" value="Opdater"></font></td><br><br><p>
    </tr>
  </tabel>
</form>
<tr>
<td width="50%">

<? 
$result = mysql_query("select id, domain, docroot FROM vhosts order by id desc LIMIT 0, 50");
while($row = mysql_fetch_array($result)){
echo "
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-top: 1px solid #BBB5A5\" bordercolor=\"#111111\" width=\"15%\" height=\"1\">
          <tr>
          <td width=\"35%\" valign=\"top\" height=\"1\">
              <font face=\"Verdana\" size=\"1\">$row[id]</td>
              <td width=\"35%\" valign=\"top\" height=\"1\">
              <font face=\"Verdana\" size=\"1\">$row[domain]</td>
              <td width=\"35%\" valign=\"top\" height=\"1\">
              <font face=\"Verdana\" size=\"1\">&nbsp;&nbsp;&nbsp;&nbsp; $row[docroot]<br>
</td>
</font></td>

            </tr></table>
";
}
?>
Avatar billede onkel_satan Nybegynder
14. september 2006 - 02:44 #1
Kontrollere dine variabler inden du saetter dem ind.
Den simple:
if($_POST["domain"] != " " && $_POST["docroot"] != " "){ // Check at de ikke er tome
// indset i database
}

En lidt mere rafineret måde:
if(eregi("[a-zA-Z]{2}", $_POST["domain"]) && eregi("[a-zA-Z]{2}", $_POST["docroot"])){
// indset i database..
}
her kontrollere du at der er mindst 2 bogstaver i din variable. Du kan selv tilpasse din regular expression saa den passer til din opgave.
Avatar billede dkfire Nybegynder
15. september 2006 - 23:17 #2
Må jeg foreslå at du laver en anden user til din database, da det aldrig er sikkert at bruge root til websider.
Avatar billede fire-fox Nybegynder
16. september 2006 - 01:36 #3
Dkfire... syndes det virker fint :D
Avatar billede fire-fox Nybegynder
23. september 2006 - 23:03 #4
hmmm er der nogen der lige gider hjælpe med at konfigurere mit script, er ikke lige den store haj indenfor det endnu ...

<?php
$db = mysql_connect("localhost", "root", "xxxxxxxx) or die (mysql_error());
mysql_select_db("domains") or die (mysql_error());
mysql_query("INSERT INTO vhosts (domain, docroot) VALUES ('" . $_POST["domain"] . "','" . $_POST["docroot"] . "')") or die(mysql_error());

if(eregi("[a-zA-Z]{2}", $_POST["domain"]) && eregi("[a-zA-Z]{2}", $_POST["docroot"])){
// indset i database..
}
?>
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