Autor | Zpráva | ||
---|---|---|---|
JanuMarek Profil * |
#1 · Zasláno: 7. 8. 2007, 09:47:42
Ahoj,
jsem začátečník v PHP, mám takový problém: chci do databáze vložit dva údaje, ale vložení neproběhne v případě, kdy proměnná, která se má do databáze vložit je předávána buď formulářem metodou POST nebo přes adresu (databaze.php?promena=nejakahodnota) následuje samotný skript <? $db="jménodatabáze"; $tb="můjadresář"; $casvlozeni=(Time()); $spojeni=mysql_connect("mysql.webzdarma.cz","jméno","heslo"); mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ($promena, $casvlozeni)", $spojeni); echo ($promena); ?> to echo promenou normalne vypíše, ale do databíáze vložení neproběhne, pokud do skriptu proměnou nadeklaruji tak je vše oka - vložení proběhne - viz. níže <? $promena="nejakahodnota"; $db="jménodatabáze"; $tb="můjadresář"; $casvlozeni=(Time()); $spojeni=mysql_connect("mysql.webzdarma.cz","jméno","heslo"); mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ($promena, $casvlozeni)", $spojeni); echo ($promena); ?> Tipuju, že to bude asi nějakým zabezpečením, ale vůbec nevím jak to obejít. Potřebuju prostě z formuláře odeslat nějaké hodnoty na PHP skript, který je má uložit do databáze.. Děkuji všem za poskytnuté rady, už se těším! |
||
bukaj Profil |
#2 · Zasláno: 7. 8. 2007, 09:54:57
JanuMarek
To nikdo nečte FAQ? Asi ne... Takže je to kvůli vypnuté direktivě register_globals. Dříve se ku proměnným předáváným pomocí metody POST a GET přistupovalo normálně pomocí $<název proměnné>, ale kvůli zvýšení bezpečnosti, možném přepisování proměnných, atd. se zavedly speciální pole - $_POST a $_GET. A pole $_REQUEST, kde se nacházejí proměnné z obou metodu + proměnné z cookies. |
||
JanuMarek Profil * |
#3 · Zasláno: 7. 8. 2007, 09:56:57
$_REQUEST
Aha a nějaká syntaxe jak tedy vypsat proměnnou? |
||
JanuMarek Profil * |
#4 · Zasláno: 7. 8. 2007, 10:05:43
<?
$promena=$_POST['promena1']; $db="data"; $tb="tab"; $casvlozeni=(Time()); $spojeni=mysql_connect("mysql.webzdarma.cz","manet","manet"); mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ($promena, $casvlozeni)", $spojeni); echo ($promena) ?> <html><body> <FORM NAME="zk" METHOD="POST" ACTION="databaze.php" title="zk"> <input type="text" name="promena1"> <BUTTON type="send">Odeslat</BUTTON> </FORM> sem to takhle upravil a nefachta to, asi mam spatne syntax, ale navim kde.. echo promenou opet vypise.. |
||
Taps Profil |
#5 · Zasláno: 7. 8. 2007, 10:23:50 · Upravil/a: Taps
JanuMarek
mysql_query("INSERT INTO $tb values ('$promena', '$casvlozeni')", $spojeni); Za echem ti chybí ; |
||
peta Profil |
#6 · Zasláno: 8. 8. 2007, 13:14:07 · Upravil/a: peta
JanuMarek
cz.php.net/REQUEST cz.php.net/php.ini print_r($_REQUEST); print_r($_POST); print_r($_GET); foreach ($_REQUEST as $key=>$value) {echo $key.' = '.$value;} foreach ($_REQUEST as $key=>$value) {$$key = $value; echo $$key;} // primo nejaky priklad na php.net pro vytvoreni globalnich promennych ... jinak 1. ti tam schazi strednik, viz Taps 2. u <input type="text" name="promena1"> mas value="" , tj. nemas 3. pokud udelas mysql_select_db($db, $spojeni); pak uz nemusis pro mysql_query() uvadet spojeni. Ledaze bys pracoval s vice databazemi najednou. Ale neni to chyba. 4. $casvlozeni=(Time()); cz.php.net/time pokud vim, tak time se pise malym. Nejsem si ted jist, jestli PHP rozlisuje velikost pismen, asi ne. Je to vsak netypicke psat velikymi Time() a malymi mysql_select_db() http://www.volny.cz/peter.mlich/www.htm#msub11 http://www.volny.cz/peter.mlich/www.htm#msub13 + literatura |
||
djlj Profil |
#7 · Zasláno: 8. 8. 2007, 13:16:01
cz.php.net/REQUEST
cz.php.net/php.ini Ani jedna z těch adres neexistuje ;). pokud vim, tak time se pise malym Je to jedno. |
||
Časová prodleva: 16 dní
|
|||
AMATER Profil * |
#8 · Zasláno: 24. 8. 2007, 18:25:43
Neviem či som sa trafil do témy,
ale mam script $sqlprikaz = mysql_query("UPDATE tab SET Meno='§promenna' where ID = $ID"); ... chcem vlastne zmeniť meno v danom riadku, ale nechce mi to fungovať a neviem prečo. Keď namiesto $ID napíšem kontrétne číslo, tak to funguje pre tej jeden riadok, ale ja chcem aby to fungovalo podľa toho, do ktorého riadku píšem... Viete mi poradiť? |
||
nightfish Profil |
#9 · Zasláno: 24. 8. 2007, 18:49:36
chcem vlastne zmeniť meno v danom riadku, ale nechce mi to fungovať a neviem prečo.
Keď namiesto $ID napíšem kontrétne číslo, tak to funguje pre tej jeden riadok, ale ja chcem aby to fungovalo podľa toho, do ktorého riadku píšem... probl0m je zřejmě v obsahu proměnné $ID - co obsahuje? (btw v PHP není $ID to stejné jako $id) §promenna a tam má být zřejmě $promenna |
||
AMATER Profil * |
#10 · Zasláno: 24. 8. 2007, 19:08:50
ID je AUTO_INCREMENT PRIMARY KEY
|
||
AMATER Profil * |
#11 · Zasláno: 24. 8. 2007, 19:16:13
najlepšie bude asi keď sa pozrieš čo vlastne potrebujem...
http://ccdec.tuke.sk/~kmetj/skuska/vyber.php chcem, aby ked napíšem do kolonky čislo a kliknem na zmeniť, tak sa zmeni čislo v danom riadku. ale funguje to iba: - zmeni vo vsetkych riadkoch - meni sa len jeden riadok ( napr. ID=20) ono to sice vypise "OK" ale to je len print |
||
AMATER Profil * |
#12 · Zasláno: 25. 8. 2007, 14:00:03
tak ja som to uz zvladol... aj tak dakujem
|
||
Časová prodleva: 17 let
|
0