Kezdőoldal » Számítástechnika » Weblapkészítés » Miért nem tudok form-ból...

Miért nem tudok form-ból adatot bevinni az adatbázisba?

Figyelt kérdés

Egy egyszerű tanulással kapcsolatos honlapot szeretnék készíteni (az adatokat a böngészőből, form segítségével vinném be).

Az a problémám, hogy nem akarja felvinni az adatokat. Mitől lehet? Az adatbázishoz szépen csatlakozik, ami benne van a táblában, azt szépen megjeleníteni.

A forráskód az első hozzászólásban lesz.


Az adatbázis felépítése:

Dictionary tábla: id (int 4, ai), english (varchar 150, unique), hungarian (varchar 150), date (date)



2015. ápr. 22. 21:18
 1/10 A kérdező kommentje:

<form class='form-horizontal' method='POST' action='".$_SERVER["PHP_SELF"]."?r=new_word' >

<div class='form-group'>

<label for='eng' class='col-sm-2 control-label'>English word</label>

<div class='col-sm-10'>

<input type='text' class='form-control' name='eng' id='eng' placeholder='Put to/to be before the words if needed' required>

</div>

</div>

<div class='form-group'>

<label for='hun' class='col-sm-2 control-label'>Hungarian word</label>

<div class='col-sm-10'>

<input type='text' class='form-control' name='hun' id='hun' required>

</div>

</div>

<div class='form-group'>

<div class='col-sm-offset-2 col-sm-10'>

<input type='submit' name='submit' class='btn btn-default' value='Add!'>

</div>

</div>

</form>";


if(isset($_POST["submit"])){

$kapcsolat->query("

INSERT INTO dictionary

(english, hungarian, date)

VALUES

(". $_POST['eng'] .", ". $_POST['hun'] .", CURDATE())

");

2015. ápr. 22. 21:20
 2/10 anonim ***** válasza:
$kapcsolat milyen objektum?
2015. ápr. 22. 21:23
Hasznos számodra ez a válasz?
 3/10 Tengor ***** válasza:
String kolbászólással ne is akarj adatot bevinni! SQL injection! Használj prepared statementet!
2015. ápr. 22. 21:25
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
2/3: $kapcsolat = new mysqli("***", "**", "**", "**"); így kapcsolódok az adatbázishoz. ennek megfelelőnek kell lennie, mivel a lekért adatokat szépen kiolvassa az adatbázisból.
2015. ápr. 22. 21:28
 5/10 A kérdező kommentje:
3: Köszönöm, használni fogom! :)
2015. ápr. 22. 21:30
 6/10 Tengor ***** válasza:
100%

Egyébként szerintem az összefűzéssel van a baj, mert ha a $_POST['eng'] értéke Tengor, akkor a script valami ilyesmi: (Tengor,...) holott helyesen ('Tengor',...) lenne.

Már csak azért is célszerű a PS-t használni + a ellenőrizni a futás eredményét és a hibát megjeleníteni / logolni.

2015. ápr. 22. 21:35
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
Ott a pont.
2015. ápr. 22. 21:49
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:

Köszönöm szépen! Most már működik!

Így viszont előjött egy másik hiba. Vissza szeretnék jelezni a felhasználónak, hogy sikerült-e elmenteni az adatbázisba a szöveget. Ezt írtam, de ha sikeres a felvitel, akkor is az else ág fut le... Ebben mi lehet a hiba? :)


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

if ($kapcsolat->query === TRUE){

$content .= "<div class='alert alert-success' role='alert'>I put this word into the database! Hurray!</div>";

}

else{

$content .= "<div class='alert alert-danger' role='alert'>I can't put this word into the dictionary! It may have already been there!</div>";

}

}

2015. ápr. 22. 22:03
 9/10 anonim ***** válasza:
Ilyenkor azért rákeres a programozó a manuáléra, és elolvassa benne a query leírását. Erre mondják, hogy RTFM, azaz read the fAMOUS manual... És akkor kiderül, mi a query visszatérési típusa, és még az is lehet, hogy sok oda az a három = jel.
2015. ápr. 22. 22:12
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Köszönöm! Igen, igazad van, legközelebb így teszek! :)
2015. ápr. 22. 22:24

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!