Pomoc s guestbookom

Programovacie jazyky, rady, poradňa...
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Pomoc s guestbookom

Príspevok od používateľa Stalin »

Zdravim. Potreboval by som trosku pomoct s guestbookom. Potreboval by som vyriesit tieto veci
1. [vyriesene]Aby sa na jednej strane zobrazil len urcity pocet prispevkov a aby ste presli na dalsiu stranu tak pouzijete tlacitko.[/vyriesene]
2. [vyriesene]Vylepsenie ochrany pred odosielanim prazdnych sprav resp ked dakto posle medzeru [/vyriesene]
3. [vyriesene]Pridanie smajlikov[/vyriesene]
4. Protispamova ochrana
-----------------------------------------------------------------------------------------------------------------
1. na vypis z db pouzivam

Kód: Vybrať všetko

while($rows=mysql_fetch_array($result)){
?>
<table bgcolor="#2C2C2C" width="450" border="0" align="center" cellpadding="5" cellspacing="0" >
<tr>
  <td><table width="450" border="0" cellpadding="5" cellspacing="0" bgcolor="#282828">
    <tr>
      <td width="231"><div align="left"><strong><font color="#9E9E9E"size="2" face="Verdana"><? echo $rows['name']; ?></font></strong></div></td>
	  <td width="204"><div align="right" ><font color="#9E9E9E" size="1" face="Verdana">  <? echo $rows['datetime']; ?>  </font></div></td>
    </tr>
    <tr>
      <td colspan="2">
        <font color="#FFFFFF" size="1" face="Verdana"><hr style="border-color:#9F9F9F; border-style:Dashed; border-width:1px;"><? echo $rows['comment']; ?></font>
		<hr style="border-color:#9F9F9F; border-style:Dashed; border-width:1px;">
        <font face="Verdana" size="1" color="#9E9E9E" >IP: <? echo $rows['ip']; ?></font></td>
	  </tr>
  </table></td>
</tr>
</table>
<BR>
<?
}
2. vyriesene

3. vyriesene

4. Nemam zatial poriesene vobec :( No zatial neni podstatne.

Dakujem za odpovede.
DeaDMAn_X
Medium Expert
Medium Expert
Príspevky: 94
Registrovaný: 06 apr 2009, 14:38

Re: Pomoc s guestbookom

Príspevok od používateľa DeaDMAn_X »

2. chce to osetrit aj html tagy
$name = trim(strip_tags($_POST["name"]));
tymto vyriesis novy riadok: $comment = str_replace("\n", "<br/>", $comment);
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa Stalin »

Dakujem za poradenie ako na tie entre :) no hlavny problem je to aby bol na jednej strane len urcity pocet sprav. Pomoze mi s tym niekto prosim?
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: Pomoc s guestbookom

Príspevok od používateľa Mmartin »

Skus pouzit strankovanie. Pekny slovensky navod najdes aj na tejto adrese
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa audiotrack »

DeaDMAn_X napísal: tymto vyriesis novy riadok: $comment = str_replace("\n", "<br/>", $comment);
existuje aj funkcia nl2br()
k tej 3 by bolo treba vidieť html, lebo inak neviem "kam" mám toho smajlíka cez js dať (minimálne názov textarei, a či je to v rámci toho istého okna napíš)
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa Stalin »

no ten formular sa nachadza na indexe a odosiela sa to na index cize to pracuje v ramci sameho seba.
-snad som odpovedal na to co si chcel :) lebo som moc nepochopil otazke
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa caesar1987 »

ten js na smajlika najdes napr aj tu na fore ked das odpovedat. staci si pozriet zdrojak.
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa Stalin »

No tak po dlhom studovani navodov na nete sa mi podarilo zbuchnut max toto (ide o to strankovanie)

Kód: Vybrať všetko

$query="SELECT * FROM $tbl_name ORDER BY id";   
$result=mysql_query($sql) or die ("Spojenie s databázou bolo neúspešné");

$num=mysql_num_rows($result);   
//$ctrl je pomocná premenná   
if ($ctrl1<>1)    
{   
    $strana=1;   
}//endif   
$limit=2;   
$celkovy_pocet=$num;   
$pocet_stran=ceil($celkovy_pocet/$limit);   
$pociatok=($strana*$limit)-$limit;   
  
for ($i=1; $i<=$pocet_stran; $i++)   
{   
    if ($i<>$strana)    
    {   
?> <center> <?
        echo "<a href=\"index.php?ctrl=1&strana=",$i,"\">",$i,"</a> |</center> ";   
    }   
    else    
    {   
      ?><center><?  echo "<font color=\"#FF0000\">",$i,"</font> | ";   
    }//endif   
?> </center></center> <?
}//endfor   
  
if ($strana<>$pocet_stran)   
{   
    echo "<a href=\"index.php?ctrl=1&strana=",$strana+1,"\">nasledujúca strana</a>";   
}//endif   
echo "</p>";   
  
//výpis danej množiny prvkov   
$query="SELECT * FROM guestbook ORDER BY id DESC LIMIT $pociatok, $limit";   
$result=mysql_query($sql) or die ("Spojenie s databázou bolo neúspešné");   
$num=mysql_num_rows($result);   
while ($row=mysql_fetch_array($result))   
{   
?><table bgcolor="#2C2C2C" width="450" border="0" align="center" cellpadding="5" cellspacing="0" >
<tr>
  <td><table width="450" border="0" cellpadding="5" cellspacing="0" bgcolor="#282828">
    <tr>
      <td width="231"><div align="left"><strong><font color="#9E9E9E"size="2" face="Verdana"><? echo $row["name"]; ?></font></strong></div></td>
	  <td width="204"><div align="right" ><font color="#9E9E9E" size="1" face="Verdana"><? echo $row["datetime"];  ?></font></div></td>
    </tr>
    <tr>
      <td colspan="2">
        <font color="#FFFFFF" size="1" face="Verdana"><hr style="border-color:#9F9F9F; border-style:Dashed; border-width:1px;"><? echo $row["comment"]; ?></font>
		<hr style="border-color:#9F9F9F; border-style:Dashed; border-width:1px;">
        <font face="Verdana" size="1" color="#9E9E9E" >IP: <? echo $row["ip"];  ?></font></td>
	  </tr>
  </table></td>
</tr>
</table>
<BR>
<?
}
mysql_free_result($result); 
Tak spravi to akurat to ze vypocita kolko je prispevkov, to predeli a zisti kolko treba stran, vypise odkazy na dalsie strany ale uz nevypise tie prispevky pre prislusnu stranu...vypise vsetky prispevky...neviem preco...hodne prikazom nechapem a tak sa neviem dalej pohnut.

ked kliknem napr na stranu 2 tak ma to normalne da na stranu napr index.php?ctrl=1&strana=5 ale tiez su tam vypisane vsetky prispevky :( prosim pomozte
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa audiotrack »

$query="SELECT * FROM $tbl_name ORDER BY id";
$result=mysql_query($sql) or die ("Spojenie s databázou bolo neúspešné");
.
.
.
$query="SELECT * FROM guestbook ORDER BY id DESC LIMIT $pociatok, $limit";
$result=mysql_query($sql) or die ("Spojenie s databázou bolo neúspešné");

v druhých riadkoch má byť v zátvorke $query a nie $sql (vlastne premennú $sql ti tam nikde nevidím tak sa čudujem že ti to vôbec ide). A druhé $num=mysql_num_rows($result); (to pri výpise nie to hore) tam máš zbytočne
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa Stalin »

uz to slape to strankovanie :) to $sql som mal este zo stareho kodu co som prerabal a dako som to zabudol vyhodit :) neviete dakto ako osetrit to aby mi dakto neposlal prazdny znak (alt+0160) som to skusal cez ascii hodnotu toho znaku ale dako neuspesne...skusal som dako takto

Kód: Vybrať všetko

$coment = str_replace(chr(0160)," ", $coment);
//autoeditácia príspevku (03 Jún 2010, 15:54)
Opet sa na vas obraciam...Smajliky vkladam pomocou tohto JS

Kód: Vybrať všetko

<script language="Javascript" type="text/javascript"> 
            <!-- 
            function add(data) 
            { 
                  document.getElementById('form1').comment.value =                   //form1 je nazov mojho formularu kde to bude vkladat
                  document.getElementById('form1').comment.value + data + ""; 
            } 
            //--> 
</script>
a potom mam tlacitka co vyzeraju dako takto:

Kód: Vybrať všetko

<a href="javascript:add('--01--')"><img src="smiles/aa.gif" border="0"></a>
Vsetko funguje, ale chcel by som aby to vkladalo na poziciu kurzoru a nie vzdy na koniec textarei. Dalej by som chcel aby sa dali vkladat smajlici aj z PoP-UP okna ktore mam vytvorene takto:

Kód: Vybrať všetko

<a href="/more_smiles.htm" onclick="window.open('/more_smiles.htm','popup','width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">Viac.</a>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa audiotrack »

prvé spravíš cez caretPos, druhé cez opener. Vkladanie na konkrétnu pozíciu ti možno ale nepôjde v každom prehliadači
Stalin
Medium Expert
Medium Expert
Príspevky: 95
Registrovaný: 20 jan 2005, 16:38
Bydlisko: Martin
Kontaktovať používateľa:

Re: Pomoc s guestbookom

Príspevok od používateľa Stalin »

Dik. Uz mi to vklada na poziciu kde je kurzor...ak by dakto potreboval tak tu je kod

Kód: Vybrať všetko

<script language="Javascript" type="text/javascript"> 
function insertAtCaret(areaId,text) {
	var txtarea = document.getElementById(areaId);
	var scrollPos = txtarea.scrollTop;
	var strPos = 0;
	var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? 
		"ff" : (document.selection ? "ie" : false ) );
	if (br == "ie") { 
		txtarea.focus();
		var range = document.selection.createRange();
		range.moveStart ('character', -txtarea.value.length);
		strPos = range.text.length;
	}
	else if (br == "ff") strPos = txtarea.selectionStart;
	
	var front = (txtarea.value).substring(0,strPos);  
	var back = (txtarea.value).substring(strPos,txtarea.value.length); 
	txtarea.value=front+text+back;
	strPos = strPos + text.length;
	if (br == "ie") { 
		txtarea.focus();
		var range = document.selection.createRange();
		range.moveStart ('character', -txtarea.value.length);
		range.moveStart ('character', strPos);
		range.moveEnd ('character', 0);
		range.select();
	}
	else if (br == "ff") {
		txtarea.selectionStart = strPos;
		txtarea.selectionEnd = strPos;
		txtarea.focus();
	}
	txtarea.scrollTop = scrollPos;
}
</script>
smajlov potom vkladam takto:

Kód: Vybrať všetko

<a href="javascript:insertAtCaret('comment','--01--');"><img src="smiles/aa.gif" border="0"></a> //comment je nazov mojej textarei (id)
uz len doriesit to vkladanie z pop-upu :)
Napísať odpoveď