Autor Zpráva
Vesman
Profil *
dělám školní práci a narazil jsem na problém ohledně zapisování do mysql databáze a především aktualizace stránky, na které je konkrétní mysql tabulka umístěna po zadání nových záznamů

mám stránku ucitele.php, na kterou se dostávám přes login, je na ní umístěna tabulky z MySQL databáze a textová pole na zadávání nových záznamů do zobrazené tabulky:

<?php
session_start(); session_register(prihlaseni);

$loginu=$_POST["loginu"];
$loginu=HTMLSpecialChars($loginu);
$heslou=$_POST["heslou"];
$heslou=HTMLSpecialChars($heslou);

if ($loginu=="" or $heslou=="")
{
echo "Nevyplnili jste všechny požadované údaje! Opakujte zadání";
$prihlaseni = 0;
exit;
}
elseif (($heslou <> "dioda" and $loginu=="Petr") or ($loginu <> "Petr"))
{
echo "Zadali jste nesprávné údaje!";
$prihlaseni = 0;
exit;
}
elseif ($loginu == "Petr" and $heslou == "dioda")
{
$prihlaseni = 1;
}

?>
<html>
<head>
<title>učitelé</title>
</head>
<body>

<center>
<font size="5">učitelská oblast s omezeným přístupem</font>
</center>
<?
$databaze = "maturita";

MySQL_Connect("localhost","root","") or die("Nepodařilo se připojit k databázi");
MySQL_Select_DB($databaze) or die("Nepodařilo se otevřít databázi");

$dotaz=mysql_query("SELECT zadavajici_zkr,prijmeni,jmeno,vyucovane_predmety,kabinet,pocet_otazek FROM ucitele");
echo "výpis z tabulky ucitele";
echo "<center>";
echo "<table border="1">";
echo "<tr><td>zadávající</td><td align="center">prijmeni</td><td>jméno</td><td>předměty</td><td>kabinet </td><td>počet otázek</td></tr>";
while ($row=mysql_fetch_object($dotaz))
{
echo "<tr><td>$row->zadavajici_zkr</td><td>$row->prijmeni</td><td>$row->jme no</td><td>$row->vyucovane_predmety</td><td>$row->kabinet</td><td>$row ->pocet_otazek</td></tr>";
}
echo "</table>";
echo "</center>";
?>

<form action="form_zadavani_dat.php" method="POST">
<br><br>
<center>
<table>

<tr><td> <font size="4" color="Blue">Zadejte příjmení:</font> </td>
<td> <input type="text" name="prijmeni"> </td></tr>

<tr><td> <font size="4" color="Blue">Zadejte jméno:</font> </td>
<td> <input type="text" name="jmeno"> </td></tr>

<tr><td> <font size="4" color="Blue">Zadejte číslo kabinetu:</font> </td>
<td> <input type="text" name="kabinet"> </td></tr>

<tr><td> <font size="4" color="Blue">Zadejte počet přidělených otázek:</font> </td>
<td> <input type="text" name="pocet_otazek"> </td></tr>

</table>

<table>

<tr>
<td rowspan="8"> <font size="4" color="Blue">Zadejte vyučované předměty:</font> </td>
<td> EN</td> <td><input type="checkbox" name="vyucovane_predmety" value="EN"> </td> </tr>
<tr><td> EP</td> <td><input type="checkbox" name="vyucovane_predmety" value="EP"> </td> </tr>
<tr><td> EPc</td> <td><input type="checkbox" name="vyucovane_predmety" value="EPc"> </td> </tr>
<tr><td> EM</td> <td><input type="checkbox" name="vyucovane_predmety" value="EM"> </td> </tr>
<tr><td> PV</td> <td><input type="checkbox" name="vyucovane_predmety" value="PV"> </td> </tr>
<tr><td> MAT</td> <td><input type="checkbox" name="vyucovane_predmety" value="MAT"> </td> </tr>
<tr><td> CJ</td> <td><input type="checkbox" name="vyucovane_predmety" value="CJ"> </td> </tr>
<tr><td> EKO</td> <td><input type="checkbox" name="vyucovane_predmety" value="EKO"> </td> </tr>

</table>
<input type="submit" name="submit" value="Odeslat">
</form>
</center>

</body>
</html>


a pro zadání dat do MySQL tabulky tady napsaný skript formuláře form_zadavani_dat.php:

<html>
<body>
<?php
$databaze = "maturita";

MySQL_Connect("localhost","root","") or die("Nepodařilo se připojit k databázi");
MySQL_Select_DB($databaze) or die("Nepodařilo se otevřít databázi");

$prijmeni=$_POST["prijmeni"];
$jmeno=$_POST["jmeno"];
$vyucovane_predmety=$_POST["vyucovane_predmety"];
$kabinet=$_POST["kabinet"];
$pocet_otazek=$_POST["pocet_otazek"];
$potvrzeni=$_GET["potvrzeni"];

$dotaz2="Insert into ucitele values (prijmeni,jmeno,vyucovane_predmety,kabinet,pocet_otazek)
as('$prijmeni','$jmeno','$vyucovane_predmety','$kabinet','$pocet_otaze k')";

$dotaz3="update Ucitele set zadavajici_zkr = substring(prijmeni,1,3)";

mysql_query($dotaz2);
mysql_query($dotaz3);

?>
<a href="ucitele.php">odkaz</a> na stránku s aktualizovanou databází
</body>
</html>


alespoň podle mého začátečnického názoru by to teoreticky mělo fungovat, ale pokud do textových polí zadám informace a stisknu tlačítko Odeslat tak se mi objeví odkaz na stránku ucitele.php, kde by se podle mě měla zobrazit již zaktualizovaná tabulka s nově zadaným záznamem a zadávacími poli pro další záznamy do tabulky, ale v praxi se mi objeví hláška "Nevyplnili jste všechny požadované údaje! Opakujte zadání" jako kdybych neměl vyplněné heslo nebo login pro přístup na stránku ucitele.php, mohl by jste mi někdo poradit jak se po zadání nových dat do tabulky dostat na stránku ucitele.php, aniž bych musel zadávat nové heslo

schválně jsem zkusil, po zadání nových dat do tabulky přejít na stránku, ze které jsem se přihlašoval na ucitele.php, ale po přihlášení byla tabulka stejná jako předtím, bez nově zadaných záznamů
nightfish
Profil
nechybí ti v souboru form_zadavani_dat.php session_start()?
Vesman
Profil *
No, schválně jsem ho tam dopsal, ale efekt byl stejný a navíc mi to vypisovalo chybu právě na tom řádku, kam jsem ten session napsal.
nightfish
Profil
navíc mi to vypisovalo chybu právě na tom řádku, kam jsem ten session napsal.
Cannon send session cookie - Headers already sent by?

jestli jo, tak si přečti ve FAQ, co s tím - připomínám, že session_start() musí být ještě před prvním výstupem skriptu (tzn. ještě před DOCTYPEM...)
djlj
Profil
Vesman
session_start musí být před jakýmkoliv výstupem, viz manuál (!)...
Doufám, že tu práci děláš jako žák a ne jako učitel ;)
Toto téma je uzamčeno. Odpověď nelze zaslat.