Autor | Zpráva | ||
---|---|---|---|
Celebi Profil |
#1 · Zasláno: 5. 1. 2005, 17:48:22
[u]pokus/aktualizace.php[/u]
<html> <head> <meta http-equiv="cache-control" content="no-cache" /> <title></title> </head> <body> <? $dbi=mysql_connect("localhost","uzivatel","heslo"); ?> <? if ($vlozit=='a') { if ((!empty($jmeno)) & (!empty($clanek)) & ((!empty($autor))) { // před vložením či úpravou musíme vyplnit některá pole $datum_vytvoreni=date("Y-m-d H:i:s"); $datum=date("Y-m-d H:i:s"); if (empty($id)) { $sql="insert into n_clanky (id_autor,clanek,datum,opraveno) values ('$id_autor','$jmeno','$clanek','$datum') "; } else { $sql="update n_clanky set id_autor='$id_autor',clanek='$clanek',datum='$datum',jmeno='$jmeno' where id='$id'"; } mysql_query($sql,$dbi) or die("Nepodařilo se vložit"); echo "Údaje v databázi byly opraveny"; } else echo "Musí být vyplněny všechny položky!"; } ?> <? if ($akce=='upravit') { $sql="select * from n_clanky where id='$id'"; $vysledek=mysql_query($sql,$dbi) or die("Nepodařilo se vložit"); $id_autor=mysql_result($vysledek,0,"id_autor"); $clanek=mysql_result($vysledek,0,"clanek"); $datum=mysql_result($vysledek,0,"datum"); $jmeno=mysql_result($vysledek,0,"jmeno"); } ?> <form action="" enctype="multipart/form-data" method="post" /> <fieldset id="pridat"> Datum: <input type="text" name="titulek" value="<? echo $jmeno;?>" /> Autor:<input type="text" name="titulek" value="<? echo $jmeno;?>" /> <textarea rows="10" cols="80" name="clanek"><? echo $clanek;?></textarea></td></tr> <tr><td colspan="2"><input type="submit" value="Aktualizovat" /> </td></tr> </table> <input type="hidden" name="id" value="<? echo $id;?>" /> <input type="hidden" name="vlozit" value="a" /> <input type="hidden" name="file" value="http://www.tpo.wz.cz/pokus/novinky.php" /> </fieldset> </form> </body> </html> [u]pokus/novinky.php[/u] <html> <head> <meta http-equiv="cache-control" content="no-cache" /> <title></title> </head> <body bgcolor=beige text=black> <? $dbi=mysql_connect("localhost","uzivatel","heslo"); ?> <? $vysledek=mysql_query("select * from jmena",$dbi) or die("Nepodařilo se vykonat příkaz"); echo "<table width= '500' height='1' border='1' align='center' cellpadding='4' cellspacing='0' bordercolor=' Blue ' bordercolorlight=' Blue' bordercolordark=' Blue' id='AutoNumber2' style='border-collapse: collapse'>; for ($i=0;$i<=mysql_num_rows($vysledek)-1;$i++) <tr> <td width='77%' bgcolor='Blue' height='1'><p align='left'> <b>1.1.2005</b>".mysql_result($vysledek,$i,"datum") ."</td> <td width='20%' bgcolor=' Blue ' height='1'><b>Autor</b>: <a href=http://www.tpo.wz.cz/osobni/autori.html><font color=black>".mysql_result($vysledek,$i,"jmeno")." </font></a></td> <tr> <td width='100%' bgcolor=beige colspan='3' height='12'> ".mysql_result($vysledek,$i,"clanek")." </table> ?> Text stránky. </body> </html> Opravte mi prosím chyby v těchto dvou souborech. Jsem začátečník s php a tak s tím ještě moc neumím pracovat. |
||
Celebi Profil |
#2 · Zasláno: 5. 1. 2005, 17:49:27
Ty řádky na nichž je tag u v hranatých závorkách jsou názvy souborů.
|
||
thingwath Profil * |
#3 · Zasláno: 5. 1. 2005, 18:10:19
V tom pokus/novinky.php je smyčka for trochu nedořešená, html tam nelze nechat jako php kód, ukonči před ním php ?> a za ním znovu otevři <?
Pak viditelně předpokládáš register_globals on, což není zrovna ideální přístup, použij místo toho $_GET a $_POST případně $_REQUEST Každopádně by myslím bylo pro všechny lepší ten skript napřed u sebe vyzkoušet a pak se ptát co s chybama, to co jsem jmenoval je jenom to čeho jsem si po krátkém proletnutí všiml a vyzkoušet to nemůžu, protože nevím jak vypadá databáze |
||
Celebi Profil |
#4 · Zasláno: 5. 1. 2005, 20:56:47
Ten skript jsem zkoušel a napsalo mi to nějaké chyby. Jinak těch chyb tam je určitě více. Byl bych vděčný kdyby si na to někdo našel čas a opravil to.
|
||
thingwath Profil * |
#5 · Zasláno: 5. 1. 2005, 21:51:00
Tak já zkusím opravit pár chybek, které vidím na první pohled, ale neslibuj si od toho moc :-)
Ty chyby myslím jen tak někdo sám neopraví. Zkusil jsem opravit tu for smyčku a přijde mi podezdřelá ta věc v tom formuláři v prvním souboru, ale nejsem si jist jak to bylo myšleno, tak to sám opravit nemůžu. Krom toho by skutečně bylo dobré ten skript přepsat tak aby nepoužíval register_globals, ale to je dost nezáživné a zvládneš to sám :-) Rovněž jsem nekontroloval jestli je ten skript dobře navržen a není v tom nějaká logická chyba, takže předpokládám, že po této stránce je v pořádku. |
||
thingwath Profil * |
#6 · Zasláno: 5. 1. 2005, 21:51:50
Rovnou koukám, že jsem zapoměl přihodit k tomu druhému mysql_result () print
|
||
Yuhů Profil |
#7 · Zasláno: 6. 1. 2005, 17:57:35
technická připomínka pro thingwatha: kdyby ses registroval, můžeš svoje příspěvky opravovat
|
||
thingwath Profil |
#8 · Zasláno: 6. 1. 2005, 19:35:25
No tak teda jo. Čistě abych vás nenutil číst po mně deset oprav, tak se zaregistruju :-)
Každopádně, mám taky připomínky :-) Proč je tak drasticky omezená množina znaků pro heslo? (Neměl bych to říkat, ale) mám pro podobné účely připravenu sadu hesel (tak pět nebo šest), které si pamatuju a které dávám všude (když to praskne, tak mě to moc bolet nebude, na kritických místech jsou pochopitelně jedinečná hesla). Problém je ovšem v tom, že všechny obsahují (jak je mým zvykem) nějaké znaky typu +@#$%^&*(){} a tak dál. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0