Avatar billede Malika Nybegynder
24. september 2011 - 20:57 Der er 15 kommentarer og
1 løsning

Gemme data i php database

Hej skal lige have hjælp til noget php...
Jeg har noget data som skal gemmes ned i databasen, når man trykker på knappen...
Hvordan kan det gøres....????
Avatar billede heinzdmx Nybegynder
24. september 2011 - 21:04 #1
Tag et kig på:

http://www.freewebmasterhelp.com/tutorials/phpmysql

En meget vigtig detalje der dog ikke er med i den tutorial er nødvendigheden af sikring mod sql injeqtions.

Dette gøres typisk ved at lave følgende før data indsættes i DB:

$safe_title = mysql_real_escape_string($_GET['title']);


Ellers risikere du at hackere kan udnytte dit site til at ændre data, eller det der er værre: slette alt i din database.
Avatar billede Malika Nybegynder
24. september 2011 - 21:11 #2
ok tak ser på det...:)
Avatar billede Malika Nybegynder
24. september 2011 - 21:37 #3
Jeg skal ikke sætte værdier ned i databasen sådan her... Skal gør det fra fx en tekstfelt og ned i databasen... Det skal være dynamisk...
Avatar billede heinzdmx Nybegynder
24. september 2011 - 21:41 #4
Så kombiner det du lige har læst med følgende:

http://www.tizag.com/phpT/examples/formvar.php

Der omhandler brugen af <form>-elementet
Avatar billede Malika Nybegynder
24. september 2011 - 21:52 #5
Jeg har alt det der connenction på plads.. Hvordan vil man gøre det samme med en tabel og en knap....???

<?php
    include('DB_Connection.php');
    $FName  = $_Post['FName'];
    $LName  = $_Post['Lname'];
    $PHON  = $_Post['PHON'];
   
    $query="Insert Into TabelNavn(Fname) VALUES ('NULL')
?>



<html>
<head>
<title> update database </title>
</head>
<body>
<form method="post" action="update.php">

first name: <input type"text" name"Fname" size"30"/>
last name: <input type"text" name"Lname" size"30"/>
Phone number: <input type"text" name"PHON" size"30"/>
Avatar billede NielsErikP Mester
24. september 2011 - 22:24 #6
Hej...
Et eksempel opret 2 php filer (OPRET_DATABASE.php og OPRET_TABEL.php).

OPRET_DATABASE.php  :


<?php

$MySql_connect= mysql_connect("localhost","root","") or die(mysql_error());

mysql_query("
    CREATE DATABASE kartotek

") or die(mysql_error());

$MySql_select_db= mysql_select_db("kartotek") or die(mysql_error());
include("OPRET_TABEL.php");

?>



Og OPRET_TABEL.php :


<?php
$MySql_connect= mysql_connect("localhost","root","") or die(mysql_error());
$MySql_select_db= mysql_select_db("kartotek") or die(mysql_error());


mysql_query("

        CREATE TABLE besked (
                nr        INTEGER NOT NULL AUTO_INCREMENT,
                besked  VARCHAR(1024) NOT NULL,
                PRIMARY KEY(nr))

")or die (mysql_error());

?>



Kør OPRET_DATABASE.php og tjek evt. gennem PhpMyAdmin at den er oprettet.

Så opretter du en php fil, som evt kan se sådan ud :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <title>
    </title>
   
    <link rel="stylesheet" href="Navn_på_din_css_fil" type="text/css">
</head>
<body>

<?php
/*  Tilpas variablerne til dine oplysninger */
    $host = "localhost";     //skal ikke ændres i 90% af tilfældende
    $bruger = "root";        //"navn på din bruger"; //se de udleverede papirer/spørg dit wehotel
    $kodeord = "";             //dit personlige password
    $database = "";    //"navn på din database"; //se de udleverede papirer/spørg dit wehotel
       
/* Herfra ændres på eget ansvar - Der forbindes til databasen */
    $db = mysql_connect($host,$bruger,$kodeord)or die ('Der kunne ikke forbindes til databasen. Fejl: ' . mysql_error());    //der connectes til databasen
    mysql_select_db($database,$db);       
                       
/*Tjekker om besked er udfyldt */       
        if($besked != ""){
               
/* Sikkerheds script mod SQL injektions*/
            $besked = mysql_real_escape_string($besked);
               
/* Der tester på om besked er postet før. For at undgå ens indlæg, når man  opdaterer  siden */   
            $sql = "SELECT * FROM kartotek";
            $sql .= "WHERE besked = " . $besked;
            $result= mysql_query($sql);
               
            if($row = mysql_fetch_row($result)){
                echo "<p style='margin-top:0;margin-left:50px;color:red;' >Indlægget findes allerede, og blev ikke gemt igen.</p>";
            }else{
                mysql_query("INSERT INTO kartotek (besked) VALUES($besked)") or die(mysql_error());  //data skrives til tabellen bog
            }
        }   
   
?>       
       
       
    <form  method="post" id="gaestbog" action="/gb2.php">
            <p>
                <span>Besked:</span> <br>
                <textarea name="besked" cols="50" rows="10"></textarea>
                <br>
                <input type="submit" value="Send">
            </p>
    </form>

<?php
   
    $foresp = mysql_query("SELECT besked FROM kartotek ORDER BY nr DESC") or die(mysql_error()); //Data hentes i tabellen bog
    echo "<table>";
   
    while($data = mysql_fetch_array($foresp)){
        echo "<tr><td>";
        echo "<br />";
        echo nl2br($data["besked"]);  //nl2br = newline oversættes til html breaktag.
        echo "</td></tr>";
    }
    echo "</table>";
?>
</body>
</html>



Håber du kan bruge det til noget :-)
Avatar billede NielsErikP Mester
24. september 2011 - 22:28 #7
Hej..
Lille rettelse  :


    <form  method="post"  action="/Navn_på_denne_php_fil">
            <p>
                <span>Besked:</span> <br>
                <textarea name="besked" cols="50" rows="10"></textarea>
                <br>
                <input type="submit" value="Send">
            </p>
    </form>

Avatar billede NielsErikP Mester
24. september 2011 - 22:30 #8
Hej igen..
Endnu en rettelse:


$database = "kartotek";    //"navn på din database"; //se de udleverede papirer/spørg dit wehotel

Avatar billede Malika Nybegynder
24. september 2011 - 22:32 #9
Hvad er besked??
Avatar billede Malika Nybegynder
24. september 2011 - 22:34 #10
jeg har forstået det...
Avatar billede Malika Nybegynder
24. september 2011 - 22:36 #11
Tusind tak...:) Hvis man nu opretter rækker via javascript.. Er det så det samme kode jeg skal bruge...???
Avatar billede NielsErikP Mester
24. september 2011 - 22:58 #12
Hej...
Kunne du bruge det.. Har ikke testet det, har bare reduceret min egen gæstebog, for ligesom at give dig et eksempel!!
Avatar billede Malika Nybegynder
24. september 2011 - 23:02 #13
tusind tak, jeg igang med rette i det så det passer med mine data...:) Jeg skriver her, hvis jeg får problemer....
Avatar billede NielsErikP Mester
25. september 2011 - 00:20 #14
Hej...
Du kan bare købe en pose "Salte Fisk" til mig... Eller havd du nu finder ud af ;-)
Avatar billede NielsErikP Mester
25. september 2011 - 00:30 #15
Hej..
Til din php kode i #5, nu må du ikke glemme at bruge :


  mysql_real_escape_string($query);



Huske at bruge den alle de steder, hvor du inserter noget i din Database.
Avatar billede NielsErikP Mester
25. september 2011 - 19:36 #16
Hej...
Tak 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