Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Księga Gości, validacja adresu email
chieslaw3
post 23.06.2014, 11:50:58
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


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 ;
Go to the top of the page
+Quote Post
nospor
post 23.06.2014, 11:52:14
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zacznij prosze w koncu uzywac BBCODE dla kodow, ktore wstawiasz na forum


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 23.06.2014, 12:10:37
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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.

Ten post edytował in5ane 23.06.2014, 12:13:28


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
chieslaw3
post 23.06.2014, 16:42:07
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
in5ane
post 23.06.2014, 18:25:58
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


http://stackoverflow.com/questions/1173553...tion-filter-var, a jak nie to szukaj w Google, żeby zamiast filter_var używać preg_match.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
chieslaw3
post 24.06.2014, 10:55:05
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
in5ane
post 24.06.2014, 12:12:13
Post #7





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Tam, gdzie ja wstawiłem swój kod. Kombinuj.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
chieslaw3
post 24.06.2014, 14:00:31
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


moze ktos inny bedzi ebadziej pomocny?
albo ma inny pomysł
Go to the top of the page
+Quote Post
!*!
post 24.06.2014, 14:28:44
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


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


Ten post edytował !*! 24.06.2014, 14:29:36


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
chieslaw3
post 25.06.2014, 07:45:03
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


nie działą to moz ektos ma jeszcze jaki spomysł
Go to the top of the page
+Quote Post
in5ane
post 25.06.2014, 07:48:44
Post #11





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Co to znaczy nie działa? Link, screen, błąd?


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
chieslaw3
post 26.06.2014, 17:22:47
Post #12





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.06.2014

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Turson
post 26.06.2014, 19:27:53
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Zaraz, zaraz... To ty szukasz pomocy i masz chęć nauczenia się czy gotowca?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:58