Autor | Zpráva | ||
---|---|---|---|
Matous Profil * |
#1 · Zasláno: 26. 11. 2008, 15:23:00
Ahoj mam tri soubory, jeden na vkladani dat, druhy na provedeni zapisu a treti na vypis z databaze. Nikde mi to nehodi zadny error ale data se mi do databaze nezapisou, nevite kde mam chybu:
zadej: <?php $BudemeZobrazovat=true; if (isSet($_POST["odeslano"])) { if (strlen($_POST["text"])==0 || strlen($_POST["text"])>500) { echo "Vzkaz by měl mít mezi 1 - 500 znaků"; } else { $BudemeZobrazovat=false; ?> náhled <div> <?php echo nl2br($_POST["text"])?> </div> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>"> <input type="hidden" name="text" value="<?php echo $_POST["text"]?>"> <input type="hidden" name="jmeno" value="<?php echo $_POST["jmeno"]?>"> <input type="Submit" name="zpet" value="<< Zpět"> </form> <form method="post" action="odesli_aktuality.php"> <input type="hidden" name="text" value="<?php echo $_POST["text"]?>"> <input type="hidden" name="jmeno" value="<?php echo $_POST["jmeno"]?>"> <input type="Submit" name="Uložit" value="Uložit >>"> </form> <?php } } if ($BudemeZobrazovat):?> Vložení vzkazu <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>"> Jmeno:<br><textarea rows="1" name="jmeno" cols="25"><?php if (isSet($_POST['jmeno'])) echo $_POST['jmeno'];?></textarea><br> Váš vzkaz:<br><textarea rows="6" name="text" cols="40"><?php if (isSet($_POST['text'])) echo $_POST['text'];?></textarea><br> <input type="hidden" name="odeslano" value="true"> <input type="Submit" name="odeslat" value=">> Náhled"> </form> <?php endif;?> proved: <?php include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $last_id=mysql_insert_id(); $vysledek=mysql_query("insert into aktuality (id, cas, text, jmeno,) values (".$last_id.",".time().",'".$_POST["text"]."','".$_POST["jmeno"]."')") ; $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/aktuality.php'; Header("Location:".$path); exit; ?> Vypis: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> </head> <body> <a href="zadej_aktuality.php">Vložit záznam</a> <?php include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); $vysledek=mysql_query("select * from aktuality order by cas desc"); while ($zaznam=MySQL_Fetch_Array($vysledek)) { echo "<table> <tr> <td>Datum vložení:</td> <td>".date("j.n.Y G:i:s", ($zaznam["cas"]))."</td> </tr> <tr> <td>Jméno:</td> <td>".strip_tags($zaznam['jmeno'])."</td> </tr> <tr> <td><br>".strip_tags($zaznam['text'])."<br></td> <td> </td> </tr> </table>"; } ?> </body> </html> |
||
kajaman Profil |
#2 · Zasláno: 26. 11. 2008, 15:28:32
na začátek skriptu napiš:
error_reporting(E_ALL|E_STRICT); ini_set('display_errors',true); |
||
bohyn Profil |
#3 · Zasláno: 26. 11. 2008, 15:37:34 · Upravil/a: bohyn
mysql_last_isert_id() se vola pro zjisteni ID vlozeneho zaznamu az po vlozeni v tom samem scriptu
Pokud mas na id auto_incerement tak ho nevkladej $vysledek=mysql_query("insert into aktuality (cas, text, jmeno,) values (".time().",'".$_POST["text"]."','".$_POST["jmeno"]."')") ; Edit: precti si neco o SQL injection, treba na wikipedia |
||
Matous Profil * |
#4 · Zasláno: 26. 11. 2008, 16:00:35
Kdyz vlozim
error_reporting(E_ALL|E_STRICT); ini_set('display_errors',true); Tak stejne to zadnou chybu nenapise a ani kdyz zmenim to id tak se nic nedeje, napisu vzkaz, odeslu ale nic se mi nezobrazi a ani neulozi v databazi |
||
bohyn Profil |
#5 · Zasláno: 26. 11. 2008, 16:33:26 · Upravil/a: bohyn
Matous
Nejak nevidim kde beres promenou $_POST["odeslano"]. Ve formulari ji nemas takze se neprovede vlozeni. Edit: omlouvam se, uz sem to nasel |
||
bohyn Profil |
#6 · Zasláno: 26. 11. 2008, 16:43:15
MySQL se mozna nelibi sloupecek "text" (je to klicove slovo) a urcite se mu nelibi ta carka za "jmeno"
$vysledek=mysql_query("INSERT INTO aktuality (`cas`, `text`, `jmeno`) values (".time().",'".$_POST["text"]."','".$_POST["jmeno"]."')") or die(mysql_error()); |
||
Časová prodleva: 15 let
|
0