Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP script

Mam jeden dotaz. jsem zacatecnik a ucim se programovat. Naprogramoval jsem si takovy jednoduchy script na novinky. kdyz neco upravim na webu vypnim formular co jsem na webu zmenil a odeslu do databaze a pomoci druheho scriptu to zobrazim na webu. proste takovy jednoduchy novinkovac jenze chtel bych to upravit tak aby pri pripsane novince se vedle textu zobrazilo slovicko smazat a kdyz na to kliknu tak se cely text smaze s databaze. kdyz treba neco napisu blbe. Poslu tu script jak to mam udelane prosim nekoho kdo v tom umi tak jestli by mi to neopravil dekuji.

Script pro odeslani textu do databaze:

<?
mysql_connect("localhost","jmeno","heslo");
mysql_select_db("databaze");

$text = $_POST["zprava"];

if($text != "")
{
 $cas = $cas = StrFTime("%Y-%m-%d %T", Time());
 mysql_query("INSERT INTO Novinky VALUES ('$text','$cas')");
 header("Location: ---");
}
?>

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
  <head>
  <title>MYSQL</title>
  <meta http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-2">
  </head>
<body>


<form action="zapis.php" name="post" method="post">
<textarea cols="60" rows="5" name="zprava" value=""></textarea>
<br><br>
<input type="submit"  value="odeslat">

</form>
</body>
</html>

Script pro zobrazeni novinek na webu:

<?
mysql_connect("localhost","--","--");
mysql_select_db("--");

$vyber = mysql_query("SELECT * FROM `Novinky` ORDER BY `Novinky`.`cas` DESC");
?>

<?
while ($zanam = mysql_fetch_array($vyber, MYSQL_NUM))
{
 echo "<div style='border: 2px solid'><b>$zanam[1] - $zanam[0]</b></div><br>";
}
?>

doplněn tag CODE (host)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Hoci je to vyriešené, napíšem ešte pár poznámok, ktoré sú dúfam k veci: 1. Keď vyvíjaš skript, tak…
los 14.04.2009 22:49
los
v prípade čísla ho môže stačiť pretypovať. Mozem poprosit o podrobnejsie vysvetlenie? Dakujem. :-)
2laak 15.04.2009 07:06
2laak
Napr. po priradení $id = (int)$_GET["id"]; bude v $id určite číslo, takže sa dá bezpečne použiť v SQ…
los 15.04.2009 08:34
los
Vdaka, doteraz som si myslel, ze ciselne typy (smallint, int atd) su bez problemov a neriesil som na… poslední
2laak 15.04.2009 08:43
2laak

Hoci je to vyriešené, napíšem ešte pár poznámok, ktoré sú dúfam k veci:

1. Keď vyvíjaš skript, tak si nastav vypisovanie chýb (error_reporting) buď v konfigurácii alebo priamo v PHP súbore. Oveľa jednoduchšie potom nájdeš príčinu problému podľa chybovej hlášky.

2. V SQL dopytoch používaš neošetrené vstupy od používateľa, takže hrozí SQL injection. Pred použitím reťazca v SQL dopyte sa používa funkcia mysql_real_escape_string, v prípade čísla ho môže stačiť pretypovať.

Zpět do poradny Odpovědět na původní otázku Nahoru