Autor | Zpráva | ||
---|---|---|---|
Venushja Profil |
#1 · Zasláno: 5. 3. 2009, 00:44:41 · Upravil/a: Venushja
Zdravim udelal jsem si takovou jednoduchou knihu navstev ale problem je v tom ze kdyz uzivatel prida vzkaz tak se akorad ukaze ten jeho a kdyz nekdo má jinou IP tak se mu ty ostatni nezobrazi jenom ty jeho co vlastne prida... Muzete mi rposim pomoct aby se to i ostatnim lidem zobrazovalo ?
<? $db_server = "mysql.ic.cz"; $db_login = "xxxxxxx"; $db_password = "xxxx"; $db_name = "xxxxxxxx"; @$spojeni = MySQL_Connect($db_server ,$db_login, $db_password); @MySQL_Select_DB($db_name); $bb = MySQL_Query("SELECT * FROM knihanavstev order by id DESC LIMIT 20"); $uu = MySQL_Query("SELECT count(*) FROM knihanavstev"); $tt=MySQL_Fetch_Array($uu); ?> <center> <a href="?page=knihanavstev-pridat">Přidat vzkaz</a><br> <? if ($_GET["id"]) { $od = $_GET["id"];} else {$od = "0";} $kolik = 5; $count = mysql_result(mysql_query("SELECT COUNT(*) FROM knihanavstev"), 0); echo "Strana:"; for($i=0;$i<=ceil($count/$kolik)-1;$i++) { $kolko= $i*$kolik; if ($kolko == $od): echo "<b><font color='maroon'><a href='?page=knihanavstev&id=$kolko'>" . ($i+1) . "</a></font></b> "; else: echo "<a href='?page=knihanavstev&id=$kolko'>" . ($i+1) . "</a>"; endif; } echo "<br>"; $vyber = mysql_query("SELECT * FROM knihanavstev order by id DESC LIMIT $od, $kolik"); while ($db= MySQL_Fetch_Array($vyber)): $ip = $_SERVER['REMOTE_ADDR']; if($ip=="$db[ip]"){ echo" <table border='0' bordercolor='white' cellpadding='5' cellspacing='0' width='60%'> <tr> <td width='60%'><center><font size='2'><hr>$db[pridal] ($db[datum]/$db[cas]) <form method='post'> <input type='submit' class='input' name='vymaz' value='Vymazat'> <input type='hidden' class='input' name='vymaz' value='vymazano'> </form> <br><br>$db[text]</font></center></td> </tr> </table> "; if($vymaz=="vymazano"){ MySQL_Query("DELETE FROM `knihanavstev` WHERE `knihanavstev`.`id` = $db[id] LIMIT 1;"); echo"Mažu Přesměrovávám"; Header("Location: http://pkde.tym.cz/index.php?page=knihanavstev"); }elseif ($ip != "$db[ip]"){ echo" <table border='0' bordercolor='white' cellpadding='5' cellspacing='0' width='60%'> <tr> <td width='60%'><center><font size='2'><hr>$db[pridal] ($db[datum]/$db[cas]) <br><br>$db[text]</font></center></td> </tr> </table> ";};}; endwhile; ?> Dekuji |
||
Venushja Profil |
#2 · Zasláno: 5. 3. 2009, 01:25:15 · Upravil/a: Venushja
Tak jsem to s tim Zobrazovanim ostatnim uzivatelum zprovoznil vypada to tedka takhle
if($ip=="$db[ip]"){ echo" <table border='0' bordercolor='white' cellpadding='5' cellspacing='0' width='60%'> <tr> <td width='50%'><center><font size='2'><hr>$db[pridal] ($db[datum]/$db[cas])</td> <td width='10%'><center><font size='2'><br><hr> <form method='post'> <input type='submit' class='input' name='vymaz' value='Vymazat'> <input type='hidden' class='input' name='vymaz' value='vymazano'> </form> </td> </tr> <tr> <td width='50%'><center><font size='2'>$db[text]</font></center></td> </tr> </table> "; }elseif ($ip != "$db[ip]"){ echo" <table border='0' bordercolor='white' cellpadding='5' cellspacing='0' width='60%'> <tr> <td width='60%'><center><font size='2'><hr>$db[pridal] ($db[datum]/$db[cas]) <br><br>$db[text]</font></center></td> </tr> </table> ";} ale tedka mam ropblem zase v tom ze to nemaze rpispevky a vubec nevim kam toto vlozit :-( if($vymaz=="vymazano"){ MySQL_Query("DELETE FROM `knihanavstev` WHERE `knihanavstev`.`id` = $db[id] LIMIT 1;"); echo"Mažu Přesměrovávám"; Header("Location: http://pkde.tym.cz/index.php?page=knihanavstev"); }; Bud mi to smaze ale uplne kompletni tabulku ze tam nezbyde ani 1 zprava nebo to nic nedela :-( |
||
Jan Tvrdík Profil |
#3 · Zasláno: 5. 3. 2009, 06:42:59
Venushja:
„Bud mi to smaze ale uplne kompletni tabulku ze tam nezbyde ani 1 zprava nebo to nic nedela :-(“ To mi přijde jako blbost, protože je tam LIMIT 1. |
||
Venushja Profil |
#4 · Zasláno: 5. 3. 2009, 06:59:22 · Upravil/a: Venushja
Jan Tvrdík
Fakt nekecam kdyz to je ve while tak to smaze vsechno a kdyz to daj minam tak to nefunguje :-( taky to nechapu proc to smaze vsechyn prispevky je to fakt uz hruza uz 3 dny nemuzu nanic prijit :-( |
||
Jan Tvrdík Profil |
#5 · Zasláno: 5. 3. 2009, 07:17:14
Venushja:
Hlavním problém je ten, že si vůbec neposíláš informaci, který (ID) příspěvek chceš smazat. |
||
Venushja Profil |
#6 · Zasláno: 5. 3. 2009, 09:28:39
a jak to mam udelat ??
|
||
SwimX Profil |
#7 · Zasláno: 5. 3. 2009, 11:56:20
Venushja
promiň pokud to nebude ono, nestudoval jsem celé dlouhé kódy, ale předávat si ID můžeš buď pomocí $_GET proměnné pak ale při mazání by bylo třeba kontrolovat is_numeric($_GET['id']) a je to trochu nebezpečně pokud ti někdo pošle odkaz ty ho otevřeš a budeš přihlášená -> tak někomu smažeš příspěvek nebo přes echo "<input type='hidden' value='$id' name='mazaci'>"; To si napíšeš ve chvíli když tě to přesměruje na stránku kde potvrzuješ mazání a potom smažeš DELETE ... id = $mazaci; |
||
Venushja Profil |
#8 · Zasláno: 5. 3. 2009, 13:42:39
SwimX
No jo ale me se neukazuje zadna stranka s vymazanim ja to mam primo u toho vzkazu tlacitko vymazat :-( a po kliku se ma vymazat ten vzkaz |
||
SwimX Profil |
#9 · Zasláno: 5. 3. 2009, 14:01:57
Venushja
To nic nemění na mém způsobu ukládání id do hiddnu. <form method='post'> <input type='submit' class='input' name='vymaz' value='Vymazat'> <input type='hidden' class='input' name='vymaz' value='vymazano'> <input type='hidden' class='input' name='id' value='$db[id]'> </form> ... if($vymaz=="vymazano"){ MySQL_Query("DELETE FROM `knihanavstev` WHERE `knihanavstev`.`id` = $_POST[id] LIMIT 1;"); echo"Mažu Přesměrovávám"; Header("Location: http://pkde.tym.cz/index.php?page=knihanavstev"); }; |
||
Venushja Profil |
#10 · Zasláno: 5. 3. 2009, 14:16:46
SwimX
Mazec ono to funguje :-) Muzes mi torchu popsat jako v cem se to lisi atd.. Nebo ten input udava presny ID co chces mazat a ne vsechno |
||
SwimX Profil |
#11 · Zasláno: 5. 3. 2009, 14:24:20
Venushja
„Mazec ono to funguje :-)“ :) Při výpisu své knihy vždycky vypíšeš formulář s tlačítkem smazat. ale nikde nenapíšeš co se má smazat když se ten formulář odešle. Proto si do toho formuláře přidáš input hidden (aby nerušil) a do něj jako value ID příspěvku který zrovna vypisuješ (je to v cyklu takže se postupně vypíšou všechny příspěvky a u každýho formulář s tlačítkem VYMAZAT a skrytym id toho příspěvku) po odeslání se odešle i ten input hidden, takže v proměnné $_POST['id'] (post proto že formulář má method post a id proto že sme si tak pojmenovali ten input hidden) bude id toho příspěvku u kterýho si odeslal formulář -> můžeš ho vymazat. Vysvětlování mi zas až tolik nejde je to jasné? jinak if($vymaz=="vymazano"){ dáváš někde do $vymaz = $_POST['vymaz'] nebo spolíháš na zaplé register_globals? taky by to šlo napsat elegantněji jako if(isset($_POST['vymaz']{ a pak z formulářů můžeš vyhodit <input type='hidden' class='input' name='vymaz' value='vymazano'> a další věc co mě zarazila: echo "...<td width='50%'><center><font size='2'><hr>$db[pridal] ($db[datum]/$db[cas])</td>..."; ($db[datum]/$db[cas]) - to se ti provede? IMHO by to mělo být echo "...<td width='50%'><center><font size='2'><hr>$db[pridal] ".($db[datum]/$db[cas])."</td>..."; |
||
Venushja Profil |
#12 · Zasláno: 5. 3. 2009, 14:35:24
SwimX
jj v pohode me to vypise „taky by to šlo napsat elegantněji jako if(isset($_POST['vymaz']{“ „a pak z formulářů můžeš vyhodit <input type='hidden' class='input' name='vymaz' value='vymazano'>“ Na takovou uroven php jsem se zatim nedostal :-) :-D |
||
SwimX Profil |
#13 · Zasláno: 5. 3. 2009, 15:06:25
Venushja
„jj v pohode me to vypise“ ajo, já myslel, že to chceš vydělit, teď mi došlo k čemu to je. :) DO db se dá ukládat přímo datetime, do jednoho sloupce |
||
Venushja Profil |
#14 · Zasláno: 5. 3. 2009, 15:13:01
SwimX
jj me to zatim vyhovuje takhle :-) |
||
Časová prodleva: 15 let
|
0