Autor Zpráva
JanuMarek
Profil *
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
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 *
$_REQUEST


Aha a nějaká syntaxe jak tedy vypsat proměnnou?
JanuMarek
Profil *
<?
$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
JanuMarek
mysql_query("INSERT INTO $tb values ('$promena', '$casvlozeni')", $spojeni);
Za echem ti chybí ;
peta
Profil
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
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.
AMATER
Profil *
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
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 *
ID je AUTO_INCREMENT PRIMARY KEY
AMATER
Profil *
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 *
tak ja som to uz zvladol... aj tak dakujem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0