Skocz do zawartości

KG 3 ostatnie wpisy


maxy2

Rekomendowane odpowiedzi

Napisałem Księge Gości i nie wiem jak zrobić aby w indexie wyświetlały sie 3 ostatnie wpisy. Przesyłem moje kody, jak pisałe, a zarazem prosze o pomoc. ( albo żeby w indexie nie wyświetlały sie żadne wpisy ale na liście tak). ;)

index2.php

<html>
<head>
 <meta http-equiv="Content-type" 
       content="text/html; charset=iso-8859-2" />
  <title>Księga Gości</title>
  <style type="text/css">
  body {background:#BBBBBB;font-family:arial;font-size:12px;}
  table,td {font-family:arial;font-size:12px;}
  .tab {border:1px dotted #00ad00;width:90%;background:#A9A9A9}
  h1 {text-align:center;color:blue;text-decoration:underline;}  
  h2 {color:blue;}
a,a:visited {color:blue-black;} 
a:hover {background:#0068D8;color:white;}
hr {color:blue-black;background:blue-black;height:1px;}
.motto {text-align:center;border:1px solid white;
        width:95%;margin-left:5%;
		  background:#ff4f4f;color:white;}
  input, textarea {font-family:arial;font-size:12px;
        background:#ffb5b5;
		  border:1px solid red;
		  color:red;} 
  .blad {color: #666666;border:2px solid #ff0000; text-align:center;font-weight:bold;width:80%;padding:5px;}
  .ok {color: #00af00;border:2px solid #00af00; text-align:center;font-weight:bold;width:80%;padding:5px;}

  </style>
</head>
<body>

<?php include('ksiega.php'); ?>


</body>
</html>		

ksiega.php

<h1>Ksiêga Go¶ci</h1>
<table align="center" class="tab">
<tr><td valign="top">
<!-- menu -->
<div align="center">
[ <a href="https://www.osieczany.com/">Osieczany</a> ]
[ <a href="index2.php?pokaz=lista">Lista wpisów</a> ]
[ <a href="index2.php?pokaz=dodaj">Dodaj wpis</a> ]
<hr />
</div>
<!-- tre¶æ g³óna -->
<?php include('sys.php'); ?>
<!-- koniec -->
</td></tr>
</table>

lista.php

<?php
if (file_exists('wpisy.txt'))
         readfile('wpisy.txt');
    else echo('Brak pliku z wpisami!');
?>

dodaj.php

<h2>Dodaj wpis do ksiêgi go¶ci</h2>
<?php
function info($s,$klasa)
{
   echo ('<div align="center"><p class="'.$klasa.'">'.$s.'</p></div>');    
}

function konwertuj($s)
{
   $s=strip_tags($s,'<b><i><u>');
   $s=stripslashes($s);
   $s=str_replace('"','"',$s);
 return ($s);
}

if (isset($_POST['imie']))
{
   $_POST['imie']=konwertuj($_POST['imie']);
   $_POST['email']=konwertuj($_POST['email']);
   $_POST['www']=konwertuj($_POST['www']);
   $_POST['opinia']=konwertuj($_POST['opinia']);

   $blad='';
 if (strlen($_POST['opinia'])<10 || strlen($_POST['opinia'])>1024) $blad='Opinia jest zbyt krótka';
   if ($_POST['www']!='')
   {
      if (strtolower(substr($_POST['www'],0,7))!='https://') $_POST['www']='https://'.$_POST['www'];
      if (strlen($_POST['www'])<11) $blad='¬le podano adres strony WWW';
 }
   if (! ereg ("^.+@.+\..+$", $_POST['email'])) $blad='Podaj poprawny adres e-mail';
   if (strlen($_POST['imie'])<3) $blad='¬le wprowadzono imie i nazwisko'; 
 if ($blad!='') info($blad,'blad');
 else {
    //zapisujemy dane do pliku
    if (file_exists('wpisy.txt')) $dane=file('wpisy.txt'); else $dane=array();

    $plik=fopen('wpisy.txt','w');
    flock($plik,2);
    fputs($plik,"<table border='0'>");
    fputs($plik,"<tr><td align='right'><b>Data wpisu:</b></td><td>".date('d.m.Y H:i:s')."</td></tr>");
    fputs($plik,"<tr><td align='right'><b>Imie i nazwisko:</b></td><td>$_POST[imie]</td></tr>");
	 fputs($plik,"<tr><td align='right'><b>E-mail:</b></td><td><a href='mailto:$_POST[email]'>$_POST[email]</a></td></tr>");
	 if ($_POST['www']!='') fputs($plik,"<tr><td align='right'><b>WWW:</b></td><td><a href='$_POST[www]'>$_POST[www]</a></td></tr>");
	 fputs($plik,"<tr><td align='right' valign='top'><b>Opinia:</b></td><td><i>$_POST[opinia]</i></td></tr>");
 		 fputs($plik,"</table><hr />");
    for ($i=0;$i<count($dane);$i++) fputs($plik,$dane[$i]."\r\n");
    flock($plik,3);
    fclose($plik);

  	 info('Formularz zosta³ zapisany.','ok');
    include('lista.php');
    return;
 }
} else
{
  $_POST['imie']='';
  $_POST['email']='';
  $_POST['www']='';
  $_POST['opinia']='';
  echo '<p>Wype³nij poprawnie poni¿szy formularz.</p>';
}
?>

<form action="index2.php" method="POST">
<input type="hidden" name="pokaz" value="dodaj" />
<table border="0">
<tr><td>Imie i nazwisko:</td><td><input size="30" type="text" name="imie" value="<?php echo $_POST['imie']; ?>" /></td></tr>
<tr><td>Adres e-mail:</td><td><input size="30" type="text" name="email" value="<?php echo $_POST['email']; ?>" /></td></tr>
<tr><td>Strona WWW:</td><td><input size="30" type="text" name="www" value="<?php echo $_POST['www']; ?>" /></td></tr>
<tr><td>Opinia:</td><td><textarea cols="40" rows="5" name="opinia"><?php echo $_POST['opinia']; ?></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Dopisz siê do ksiêgi" /></td></tr>
</table>
</form>

sys.php

<?php
$dozwolone=array('lista','dodaj');

if (isset($_GET['pokaz'])) $pokaz=$_GET['pokaz']; else $pokaz=$dozwolone[0];
if (isset($_POST['pokaz'])) $pokaz=$_POST['pokaz'];

if (in_array($pokaz,$dozwolone)) include($pokaz.'.php');
                            else include($dozwolone[0].'.php');
?>

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób to w oparciu o bazę danych MySQL jest nawet prościej niż pliki tekstowe.

Przykaldowe rozwiązanie:

Zakładając, że plik tekstowy księgi gości ma format

Pierwszy wpis

Drugi wpis

Trzeci wpis

Czwarty wpis

Odczytaj plik funkcją file() która utworzy tablice

Array

(

[0] => Pierwszy wpis

[1] => Drugi wpis

[2] => Trzeci wpis

[3] => Czwarty wpis

)

Odwroc kolejność elementów tablicy i pobierz pierwsze trzy elementy..

LUB

Przykładowa implementacja pobieranie 3 ostatnich wpisów z księgi gości

$dane=file('kg.txt');
$ile=count($dane);

echo $dane[$ile-3].'<br />';
echo $dane[$ile-2].'<br />';
echo $dane[$ile-1].'<br />';

LUB w pętli for

for($a=3;$a>=0;$a--)
{
  echo $dane[$ile-$a].'<br />';
}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  Cytat
fputs($plik,"<table border='0'>");

fputs($plik,"<tr><td align='right'><b>Data wpisu:</b></td><td>".date('d.m.Y H:i:s')."</td></tr>");

fputs($plik,"<tr><td align='right'><b>Imie i nazwisko:</b></td><td>$_POST[imie]</td></tr>");

fputs($plik,"<tr><td align='right'><b>E-mail:</b></td><td><a href='mailto:$_POST'>$_POST</a></td></tr>");

if ($_POST['www']!='') fputs($plik,"<tr><td align='right'><b>WWW:</b></td><td><a href='$_POST[www]'>$_POST[www]</a></td></tr>");

fputs($plik,"<tr><td align='right' valign='top'><b>Opinia:</b></td><td><i>$_POST[opinia]</i></td></tr>");

fputs($plik,"</table><hr />");

W jakim celu ładujesz html do pliku wpisy.txt ?

Zabiera więcej miejsca na dysku i przeszkadza przy przebudowie strony. Poczytaj o explode() i pomyśl o odpowiednim zapisie danych.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Wielki Elektronik

Odnośnik do komentarza
Udostępnij na innych stronach

I przy okazji o implode() ... :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  maxy2 napisał(a):
ale na moim serwerze mam tylko jedną baze danych, wiec nie da rady.
Ale jedna baza może mieć przecież wiele tabel a na księgę gości jedna prosta tabela wystarczy :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nowe tabele możesz tworzyć w phpMysql aminie bardzo łatwo googlni sobie. NP https://home.pl/pomoc/1518

[jako ciekawostkę podam, że widziałem książkę obsłudze phpMyAdmin:]...

Lub możesz wkleić w oknie formularza zapytania SQL poniższy kod tworzący tabele KsiegaGosci.

// Przykładowa Struktura tabeli dla `KsiegaGosci`

CREATE TABLE `KsiegaGosci` (
 `id` int(6) NOT NULL auto_increment,
 `nick` varchar(20) NOT NULL default '',
 `email` varchar(50) NOT NULL default '',
 `data` date NOT NULL default '0000-00-00',
 `ip` varchar(15) NOT NULL default '',
 `tresc_wpisu` text NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  Mion napisał(a):

Nowe tabele możesz tworzyć w phpMysql aminie bardzo łatwo googlni sobie. NP https://home.pl/pomoc/1518

[jako ciekawostkę podam, że widziałem książkę obsłudze phpMyAdmin:]...

Lub możesz wkleić w oknie formularza zapytania SQL poniższy kod tworzący tabele KsiegaGosci.

// Przykładowa Struktura tabeli dla `KsiegaGosci`

CREATE TABLE `KsiegaGosci` (
 `id` int(6) NOT NULL auto_increment,
 `nick` varchar(20) NOT NULL default '',
 `email` varchar(50) NOT NULL default '',
 `data` date NOT NULL default '0000-00-00',
 `ip` varchar(15) NOT NULL default '',
 `tresc_wpisu` text NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;

dzieki za ten kod. Jaki mam napisac kod i gdzie go umieścić w index2.php czy sys.php. Chodzi mi o to aby pobierał informacje z bazy danych. ?????

Odnośnik do komentarza
Udostępnij na innych stronach

I po co cytujesz w całości ! Już Ci kolega Erbit zwrócił uwagę...

To o co pytasz to są podstawowe zagadnienia związane z obsługą baz danych.... Wiec skoro chcesz bawić się w programowanie czas się zacząć uczyć ;)

Przykładowa księga gości w akcji:

https://smarty.ovh.org/ksiega/

do pobrania:

https://smarty.ovh.org/ksiega/ksiega.zip

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności