Autor Zpráva
Matous
Profil *
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>&nbsp;</td>
</tr>
</table>";
}
?>
</body>
</html>
kajaman
Profil
na začátek skriptu napiš:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors',true);
bohyn
Profil
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 *
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
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
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());

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: