Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Księga Gości
Forum PHP.pl > Forum > Przedszkole
chieslaw3
Witam

Potrzebuje pomocy.
Otóz zrobiłem ksiego gosci ale potrzebuje zrobic pare zmian a mianowice ksiega składa zi ez 3 ponizszych plikow.
Chce - dodac walidacja adresu email, bo wiadomo ze kto smoze podac niepoprawny - gdzie wstawic kod i jak powinien wyglądac?
- zrobic filtrowanie po id, dacie i emailu.
- co do html to dowiedzialem sie ze tabele stosuje się już tylko do danych i ze współcześnie elementy pozycjonuje się za pomocą elementu div. - jak przerobic ten god na DIVy

Prosze o pomoc. Ponizej KOD:
===============================================


guestbook.php

<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong>Test Sign Guestbook </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>


<form id="form1" name="form1" method="post" action="addbook.php">
<td>
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="117">email</td>
<td width="14">:</td>
<td width="357"><input name="email" type="text" id="email" size="40" /></td>
</tr>
<tr>

<td>Temat</td>
<td>:</td>
<td><input name="temat" type="text" id="temat" size="40" /></td>
</tr>

<tr>
<td valign="top">WPIS</td>
<td valign="top">:</td>
<td><textarea name="wpis" cols="40" rows="3" id="wpis"></textarea></td>
</tr>

<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Submit" />
<input type="reset" name="Submit2" value="Reset" /></td>
</tr>
</table>
</td>
</form>

</tr>

</table>
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong><a href="wyswietl.php">Wywietl Ksiazke</a> </strong></td>
</tr>
</table>

-----------------------------------------
addbook.php

<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="ryguohdfr"; // Mysql password
$db_name="kg"; // Database name
$tbl_name="ksiega"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");


$datetime=date("y-m-d h:i:s"); //date time
$email=$_POST['email'];
$temat=$_POST['temat'];
$wpis=$_POST['wpis'];

$sql="INSERT INTO $tbl_name(email, data, temat, wpis)VALUES('$email', '$datetime', '$temat', '$wpis')";
$result=mysql_query($sql);

//check if query successful
if($result){
echo "Successful";

echo "<BR>";

// link to view guestbook page
echo "<a href='wyswietl.php'>Wywietl wpisy</a>";

}

else {
echo "ERROR";
}

mysql_close();
?>

-------------------------

wyswietl.php

<?
//Definicja zmiennych (haslo,login,nazwe bazy i hosta)
$haslo='ryguohdfr';
$login='root';
$host='localhost';
$baza='kg';

//logowanie do serwera mysql
@ $bd = mysql_pconnect($host, $login, $haslo);
if (!$bd)
{
echo 'Połączenie z bazą danych jest teraz nie możliwe.';
exit;
}
mysql_select_db($baza);
//wysyłamy zapytanie
$zapytanie = 'SELECT * FROM `ksiega` WHERE 1 LIMIT 0, 100';
$dd = mysql_query($zapytanie);
$bb = mysql_fetch_array($dd);
while($bb)
{
$wpis=stripslashes($bb['wpis']);
$email=stripslashes($bb['email']);
$data=stripslashes ($bb['data']);
$temat=stripslashes ($bb['temat']);
//wyswietlamy wpis
echo '<br>Napisał z adresu: '.$email.'<br>TEMAT:'.$temat.'<br>';
echo 'DATA: '.$data.'<br>TRESC:'.$wpis.'<br>';
echo '--------------------------------- '.'<br>';
$bb = mysql_fetch_array($dd);
}
?>
------------------------------------

-- Struktura tabeli dla `ksiega`
--

CREATE TABLE `ksiega` (
`id` int(4) NOT NULL auto_increment,
`email` varchar(252) NOT NULL default '',
`data` timestamp(14) NOT NULL,
`temat` varchar(250) NOT NULL default '',
`wpis` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=37 ;
nospor
Zacznij prosze w koncu uzywac BBCODE dla kodow, ktore wstawiasz na forum
in5ane
Ponadto zacznij używać wbudowanego w przeglądarki słownika.

Co do sprawdzania poprawności adresu e-mail, kod wyglądałby mniej więcej tak:
  1. <?php
  2. if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
  3. {
  4. echo 'Niepoprawny adres e-mail!<br /><a href="wyswietl.php">Wywietl wpisy</a>';
  5. }
  6. else
  7. {
  8. $host="localhost"; // Host name
  9. $username="root"; // Mysql username
  10. $password="ryguohdfr"; // Mysql password
  11. $db_name="kg"; // Database name
  12. $tbl_name="ksiega"; // Table name
  13.  
  14. // Connect to server and select database.
  15. mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
  16. mysql_select_db("$db_name")or die("cannot select DB");
  17.  
  18.  
  19. $datetime=date("y-m-d h:i:s"); //date time
  20. $email=$_POST['email'];
  21. $temat=$_POST['temat'];
  22. $wpis=$_POST['wpis'];
  23.  
  24. $sql="INSERT INTO $tbl_name(email, data, temat, wpis)VALUES('$email', '$datetime', '$temat', '$wpis')";
  25. $result=mysql_query($sql);
  26.  
  27. //check if query successful
  28. if($result){
  29. echo "Successful";
  30.  
  31. echo "<BR>";
  32.  
  33. // link to view guestbook page
  34. echo "<a href='wyswietl.php'>Wywietl wpisy</a>";
  35.  
  36. }
  37.  
  38. else {
  39. echo "ERROR";
  40. }
  41.  
  42. }
  43. ?>


Co do filtrowania, to zapewne chodzi Ci o sotowanie, tak? Jeśli tak, to zacznij również precyzować swoje wypowiedzi. Jeśli chodzi o to sortowanie to zamień to:
  1. $zapytanie = 'SELECT * FROM `ksiega` WHERE 1 LIMIT 0, 100';
na to:
  1. $zapytanie = 'SELECT * FROM `ksiega` ORDER BY id DESC, data DESC, email ASC LIMIT 0, 100';
A jeśli chodzi Ci o wyfiltrowanie wpisów w księdze to trzeba zrobić do tego jakiś formularz, przesyłać parametry i wciskać je do zapytania do klauzuli WHERE.

Co do zamiany tabelek na div'y - nikt za Ciebie tego nie zrobi. Poczytaj, co to jest div, jak się tego używa i kombinuj.

Jeszcze jedna kwestia, kto jawnie na forum pokazuje dane do bazy danych? Nawet jeśli to jest localhost.
chieslaw3
Fatal error: Call to undefined function: filter_var() in C:\Program Files\WebServ\httpd\OK\addbook.php on line 3


Taki wyskakuje bład po edycji kodu przez Ciebie
in5ane
http://stackoverflow.com/questions/1173553...tion-filter-var, a jak nie to szukaj w Google, żeby zamiast filter_var używać preg_match.
chieslaw3
chialem wstawic ale nie iwem gdzi eto wstawic

  1. $regEx = '/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/';
  2. if(preg_match($regEx, $email))
  3. {
  4. echo "Email jest poprawny ";
  5. }
  6. else
  7. {
  8. echo "Email jest niepoprawny! ";
  9. }
in5ane
Tam, gdzie ja wstawiłem swój kod. Kombinuj.
chieslaw3
moze ktos inny bedzi ebadziej pomocny?
albo ma inny pomysł
!*!
Cytat(chieslaw3 @ 24.06.2014, 15:00:31 ) *
moze ktos inny bedzi ebadziej pomocny?
albo ma inny pomysł


Skoro filter_var nie zaskoczył, to zamień go na preg_match dokładnie w tym samym miejscu.

  1. $regEx = '/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/';
  2. if(!preg_match($regEx, $email))
  3. {
  4. echo "Email jest niepoprawny ";
  5. }
  6. else
  7. {
  8. host="localhost"; // Host name
chieslaw3
nie działą to moz ektos ma jeszcze jaki spomysł
in5ane
Co to znaczy nie działa? Link, screen, błąd?
chieslaw3
Ok juz działa.

Ale mam ciag dalszy zapytania tzn. prosze Was zeby mi kto skonkretnie podał fragment kodu zeby mozna bylo w tej ksiadze filtrowac po adresi eemail i po dacie utworzenia wpisu
Turson
Zaraz, zaraz... To ty szukasz pomocy i masz chęć nauczenia się czy gotowca?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.