Autor Zpráva
kozusnik.jan
Profil *
Ahoj, mám tento zdrojový kód:
<?php

mysql_connect("localhost") or die ("Nelze najít databázi!");
mysql_select_db("pokus") or die ("Nelze se pripojit k dané tabulce!");
if($ok) {
$sql = 'insert into login (jmeno, login, heslo) values ($jmeno, $login, $heslo)';
$res = mysql_query($sql);
};
?>
 
<form action="vypis_databaze.php" method="post">

<input type="text" name="jmeno" />Jmeno<br />
<input type="text" name="login" />Login<br />
<input type="text" name="heslo" />Heslo<br />
<input type="submit" name="ok" value="Odeslat" />
</form>

který se připojí k databázi a zapisuje do ni, ale nezapisuje mi to tam proměnnou z input (např. jmeno,....) ale zapíše mi to "$jmeno" nebo "$heslo" ...... nevím, jak to zpravit, prosím poraďte
Taps
Profil
kozusnik.jan:
menší ukázka
$jmeno=mysql_real_escape_string($_POST['jmeno']);

$sql = "insert into login (jmeno) values ('$jmeno')";
kozusnik.jan
Profil *
aha, a tak to mám udělat se všema?
nedá se to trochu jednodušeji?
kozusnik.jan
Profil *
když tam napíšu to, co si mi poradil, tak mi to napíše : "Fatal error: Call to undefined function: mysql_real_escape_string() in c:\apache\htdocs\pokusy\vypis_databaze.php on line 16"
Mastodont
Profil
kozusnik.jan:
Jakou verzi PHP máš?
kozusnik.jan
Profil *
php 5
kozusnik.jan
Profil *
tak sory, je to 4.1.1
nevite jak nainstalovat php 5
?
mckay
Profil
kozusnik.jan:
Zkus použít místo té funkce co psal Taps funkci htmlspecialchars();

Tedy:

$jmeno=htmlspecialchars($_POST["jmeno"]);
Alphard_
Profil *
kozusnik.jan:
Funkce mysql_real_escape_string() je kvůli bezpečnosti. Váš původní problém řeší nahrazení apostrofů (') za uvozovky (").

[#8] Když jde o bezpečnost, nepoužíval bych slovo zkus :-)

kozusnik.jan:
Mysql_real_escape_string() je od verze 4.3 (viz manuál). V současnosti hodně lidí řeší, jestli ještě zůstat u 5.2, nebo už přejít na 5.3. Verze 4.1 je vážně vykopávka a není rozumné pro ni cokoliv ladit, doporučuji update.

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