Avatar billede husseintellawe Nybegynder
04. marts 2011 - 14:49 Der er 5 kommentarer og
1 løsning

opdatere mysql via en html form

Hej alle. jeg har set med et stk kode et par dage nu uden held, søgte os på nettet men syntes ikke jeg fandt noget jeg kunne bruge til noget. håber i kan hjælpe mig herinde :)

PS: vil os gerne lige vide hvordan det her point system virker. ?


min spørgsmål er.

Hvordan opdatere jeg det fælt på min database

min form ser sådan her ud

            <h4>Opdatere content About</h4><br />
                     
                          <form action="edit_about.php" method="post">
                        Info<br />
                        <input type="text" name="info" maxlength="25" class="text" /><br />
                        text<br />
                        <textarea name="text"></textarea><br><br>
                        <input type="submit" value="Tilf&oslash;j work menu" />
                        </form>


og går videre til edit_about.php


<?php

           
               
                        $con = mysql_connect("localhost", "root", "root", "portfolio");
                        if (!$con)
                          {
                          die('Could not connect: ' . mysql_error());
                          }
                       
                        mysql_select_db("portfolio", $con);
                       
                        mysql_query($con, " UPDATE content SET text = '".$text."', info'".$info."'  WHERE id=2");
                       
                        mysql_close($con);

           
?>

                <script type="text/javascript">
                <!--
                window.location = "admin.php"
                //-->
                </script>
           
<?php

mysql_close($con)

?>

på forhånd mange mange tak for hjælpen og god weekend.
Avatar billede jakobdo Ekspert
04. marts 2011 - 15:40 #1
F.eks. sådan her:

<h4>Opdatere content About</h4><br />
<form action="edit_about.php" method="post">
Info<br />
<input type="text" name="info" maxlength="25" class="text" /><br />
text<br />
<textarea name="text"></textarea><br><br>
<input type="submit" value="Tilf&oslash;j work menu" />
</form>

og går videre til edit_about.php

<?php
$con = mysql_connect("localhost", "root", "root", "portfolio") or die('Could not connect: ' . mysql_error());
mysql_select_db("portfolio",$con) or die('Could not select: ' . mysql_error());
mysql_query($con," UPDATE content SET text = '".$_POST['text']."', info'".$_POST['info']."'  WHERE id=2");
mysql_close($con);
header('Location: admin.php')
exit();
?>

Dog skal du lige være obs på en ting (faktisk 2).
Der er ingen kontrol på input til din database, så sql injections er meget nemt.
Ligeledes har du netop postet login til din database...
Avatar billede husseintellawe Nybegynder
04. marts 2011 - 16:12 #2
Mange tak for hjælpen.. virkede med lidt rettelse :)
Avatar billede jakobdo Ekspert
04. marts 2011 - 16:17 #3
Svar!
Du burde dog måske lave noget mere dynamik, så du ikke har en side ved navn: edit_about.php og hvor du så har id = 2 i.
Du kunne jo lave:

edit.php?id=2
og i din sql: WHERE id = intval($_GET['id']) LIMIT 1
Avatar billede husseintellawe Nybegynder
04. marts 2011 - 16:56 #4
okay det forstår jeg ikke helt :) hvordan vil det se ud hvis jeg skulle gøre det på den måde ?
Avatar billede jakobdo Ekspert
05. marts 2011 - 08:44 #5
Utestet og uden sikkerhedstjek for sql injections...

<?php
//edit.php

//Forbinder til mysql
$con = mysql_connect("localhost", "root", "root", "portfolio") or die('Could not connect: ' . mysql_error());
mysql_select_db("portfolio",$con) or die('Could not select: ' . mysql_error());

if(isset($_POST['id']) && is_numeric($_POST['id'])){
  $id = intval($_POST['id']);
  mysql_query($con,"UPDATE content SET text = '".$_POST['text']."', info'".$_POST['info']."'  WHERE id=".$id." LIMIT 1");
  mysql_close($con);
  header('Location: admin.php');
  exit();
}

$id = 0;
$text = '';
$info = '';

if(isset($_GET['id']) && is_numeric($_GET['id'])){
  $id = intval($_GET['id']);
  $q = mysql_query("SELECT text,info FROM content WHERE id=".$id." LIMIT 1");
  if(mysql_num_rows($q)==1){
    extract(mysql_fetch_assoc($q))
  }
  mysql_close($con);
  ?>
<h4>Opdatere content SIDE_NAVN</h4><br />
<form action="edit.php" method="post">
Info<br />
<input type="text" name="info" maxlength="25" class="text" value="<?=$info?>" /><br />
text<br />
<textarea name="text"><?=$text?></textarea><br><br>
<input type="submit" value="Tilf&oslash;j work menu" />
<input type="hidden" name="id" value="<?=$id?>" />
</form> 
  <?
}
?>
Avatar billede jakobdo Ekspert
29. august 2013 - 08:50 #6
Takker for point.
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