Kezdőoldal » Számítástechnika » Weblapkészítés » Mysql információs nyomógomb...

Mysql információs nyomógomb nem sikerül. Miért? Többi lent

Figyelt kérdés

Szóval van ez ahol vannak a szerveroldali részek:


<?php

include "connect.php";

$cim = $_POST['inputName'];

$szoveg = $_POST['inputPass'];

$datum = $_POST['inputAuth'];


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

echo "Please fill out the form";

}else{

mysql_query("INSERT INTO web_hirek (`id`,`cim`,`szoveg`,`datum`) VALUES (`NULL`,`$cim`,`$szoveg`,`$datum`)");

echo "Hir hozzáadva!";


}



nyomógomb rész:


<h1>Hír beküldés</h1>

<form action=" [link] method="post">

Username:<input type="text" name="inputName" value=""></input><br>

Password:<input type="text" name="inputPass" value=""></input><br>

Authority:<input type="text" name="inputAuth" value=""></input><br>

<input type="submit" name="submit" value="Add new member"></input>

</form>



Nem rakja be sql-be.


2015. okt. 23. 19:08
 1/10 anonim ***** válasza:

id-nek "NULL" szöveget adsz. Csak simán NULL legyen vagy teljesen hagyd ki az id-t a beillesztésből.


ui.: Ne használj mysql függvényeket, és ne ellenőrizetlenül tedd az űrlap értékeket. Mert: a mysql elavult és egyre kevésbé támogatott (mint php alól való kapcsolat! nem mint adatbázis), az ellenőrzés meg mysql injection és XSS miatt kell.

2015. okt. 23. 19:35
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

1. Mint az előző hozzászóló is írta: a mysql modul elavult - használj helyette mysqli-t vagy PDO-t.


2. Az űrlapról érkező adatokat sohase add át nyersen a lekérdezésnek - minimum escapeld (mysqli_real_escape_string).


3. Jelszót sosem tárolunk titkosítatlanul. Minimum "sózott" ellenőrzőösszeget készítünk belőle, akár több metódus kombinálásával (például: sha1("hosszuveletlensorozat".md5("masikhosszuveletlensorozat".$password)) ).


4. Ha az id oszlop egy elsődleges kulcs, akkor érdemes használni az AUTO_INCREMENT-tet, így nem kell megadni az értékét az adatbázishoz való hozzáadáskor.

[link]


5. Látok ott egy dátum oszlopot - az valahogy (legalábbis számomra) nincsen összefüggésben az űrlappal. Mi célt szolgál?


Ha a regisztráció dátumát, akkor SQL-ben ott a NOW() függvény:

[link]

2015. okt. 23. 20:05
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
sajnos nem jó... valaki nem tudnak leírni egy működőképeset? Mert anélkül próbáltam legelsőnek. de nem tudom mibaja van :/
2015. okt. 23. 20:07
 4/10 anonim ***** válasza:

Ja és:

6. Használj valamilyen megoldást a tömeges beküldések elkerülése végett - például Captcha-t.

2015. okt. 23. 20:08
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

Neem... én azokat nem írtam át. Egyik sem jelszó lenne. csak copy-ztam és amit átkell azt átírtam hogy lássam hogy jó-e mert webről másoltam ki. de nem jó sehogy sem...

Már 10 órája ezzel szenvedek xD

2015. okt. 23. 20:09
 6/10 anonim ***** válasza:

mysql_query("INSERT INTO web_hirek (`cim`,`szoveg`,`datum`) VALUES ('$cim','$szoveg','$datum')");


1. MySQL megszűnt/szűnik MySQLi függvényeket használd majd.

Nem sokban tér el, mysql_* helyett mysqli_* és néhány funkció mint a query -nél elsőnek megadod a kapcsolat változóját, amit globalis változóba raksz...)

2. ID -t automatikusan adja, felesleges azt bele rakni.

3. ` helyett ' jel kell values adatoknál. ` jelek közé SQL mezők tábla nevek kerülnek, aposztróf vagy idéző jelek közé pedig tartalom.

4. escapeld a beviteli mezőket, mert így SQL injektálható, azaz tetszőleges SQL parancsot csinálhatnak belőle...


+1: javaslom " jelek helyet aposztrófot használj, igaz akkor hozzá kell fűzni a változókat, de nem futsz hibákba ha pl. jQuery -t írogatsz PHP -ból vagy sima $ jelet jelet szeretnél megjeleníteni.


mysql_query('INSERT INTO web_hirek (`cim`,`szoveg`,`datum`) VALUES ("'.$cim.'","'.$szoveg.'","'.$datum.'")');

2015. okt. 23. 21:05
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

értem, köszi!


Így működik: mysql_query('INSERT INTO web_hirek (`cim`,`szoveg`,`datum`) VALUES ("'.$cim.'","'.$szoveg.'","'.$datum.'")');

2015. okt. 23. 21:22
 8/10 A kérdező kommentje:

az escapálás az így működik ugye?: $cim = mysql_real_escape_string ($_POST['inputName']);

$szoveg = mysql_real_escape_string ($_POST['inputPass']);

$datum = mysql_real_escape_string ($_POST['inputAuth']); :D


amúgy a dátumot nem viszi be félreéértés neessék azt nem a gomb-al akarom bevinni. csak még nem tudtam miért nem írja be sql-be az adatokat.


sql táblában az oszlop datetime.

és a $datum = date("Y-m-d H:i:s");


nem viszi be a dátumot úgy hogy én ott feltüntettem hogy $datum az miért lehet?:O

2015. okt. 23. 21:38
 9/10 A kérdező kommentje:

dátumos problémát megoldottam :)

Már csak az a kérdésem maradt.

2015. okt. 23. 21:42
 10/10 A kérdező kommentje:
köszönöm mindenkinek. a problémák megoldva :)
2015. okt. 23. 22:03

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!