Dopiero zaczynam robić skrypty w php.
Ten poniższy chcę przystosować do moich potrzeb.
Chciałbym aby na stronie był formularz. Ja wpisuję do niego imie, nazwisko, adres email i klikam wyślij.
Na razie to proste, ale dodatkowo...
Po kliknięciu -
- na podany email jest wysyłany kod z bazy który ma status true, automatycznie zmienia się status tego kodu na false.
- w bazie zapisuje się wysłany kod, imie, nazwisko, adres email, data
- przy ponownym wypełnieniu formularza wysyłany jest następny kod który ma status true.
Bardzo proszę o pomoc lub pomocny link, cokolwiek co pomoże.
Poniżej wklejam kod który mam na ten moment, mam nadzieję że nie jest za duży.
Dzięki za każdą pomoc.
Kod
<?php
// Pobieramy adres IP komentującego
$IP = $_SERVER['REMOTE_ADDR'];
// Pobieramy pełny adres strony na której wysyłany jest komentarz
$lokalizacja = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$adres = $_SERVER['REQUEST_URI'];
DEFINE ('DB_USER', '***');
DEFINE ('DB_PASSWORD', '***'); // Jeżeli masz jakieś hasło to wpisz
DEFINE ('DB_HOST', '192.168.1.102');
DEFINE ('DB_NAME', '***'); // Podaj nazwę bazy danych
// Nawiązuje połączenie i wybiera bazę danych.
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem połączyć się z MySQL-em: ' . mysql_error() );
@mysql_select_db(DB_NAME) OR die ('<b>Nie udało mi się wybrać bazy danych:</b> ' . mysql_error() );
ini_set( 'display_errors', 'On' );
error_reporting( E_ALL );
// Jeżeli został wciśnięty przycisk "wyślij"
if (isset ($_POST['wys_kom'])) {
// Jeżeli nick jest pusty
if (empty($_POST['nick'])) {
$komunikat .= '<p>Podaj swój nick (imię).</p>';
} else {
$nick = ($_POST['nick']);
}
// Jeżeli komentarz jest pusty
if (empty($_POST['email']) ) {
$komunikat .= '<p>Napisz komentarz.</p>';
} else {
$koment = stripslashes($_POST['email']);
}
// Zabezpieczenie przed robotami
if (!empty($_POST['e_mail'])) {
$komunikat .= '<p>Według skryptu jesteś robotem. Twój komentarz został odzrzucony. Jeżeli nie jesteś tym za kogo wziął Cię nasz skrypt, skontaktuj się z administratorem strony.</p>';
}
//Jeżeli nie ma żadnego błędu
if (!isset($komunikat)) {
//treść wiadomości
$mailText = $_POST['nick'];
mail('test@test.com', 'Formularz kontaktowy', $mailText) or die('Błąd: wiadomość nie została wysłana');
$zapytanie = "INSERT INTO komentarze (url, nick, data, ip, email) VALUES ('$adres', '$nick', NOW(), '$IP', '$koment')";
mysql_query("set names utf8;");
if ($rezultat = mysql_query ($zapytanie)) {
mysql_close();
header ("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
} else {
$komunikat = '<p>Przepraszamy za chwilowe usterki. Wysłanie komentarza nie było możliwe. Spróbuj później.</p>';
}
}
}
echo'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
// Wyświetla wszystkie komentarze do tego artykułu
echo'<h2>Wasze komentarze:</h2>';
$zapytanie2 = "SELECT * FROM komentarze ORDER BY id";
mysql_query("set names utf8;");
$rezultat2 = mysql_query ($zapytanie2);
while ($dane = mysql_fetch_array ($rezultat2, MYSQL_ASSOC)) {
echo'
<div class="koment">
<table boder="1" >
<tr>
<td>',$dane['nick'],'</td>
<td>',$dane['data'],'</td>
<td>',nl2br($dane['email']),'</td>
</tr>
</table>
</div>';
}
// Jeżeli są jakieś komunikaty - wyświetl je
if (isset($komunikat)) {
echo '<div class="komunikat">'.$komunikat.'</div>';
}
// TEST
$zapytanie3 = "SELECT `nick` FROM komentarze ORDER BY id LIMIT 1";
mysql_query("set names utf8;");
$rezultat3 = mysql_query ($zapytanie3);
echo '<table border="1" >';
while ($wiersz = mysql_fetch_row($rezultat3))
{
echo '<tr><td>'. $wiersz[0] .'</td></tr>';
}
echo '<table>';
$zapytanie4 = "UPDATE `komentarze` SET `nick`='pobrane' WHERE `nick`='".$wiersz[0]."'";
$rezultat3 = mysql_query ($zapytanie4);
echo $rezultat3;
// END NEW
// Formularz wysyłania komentarza
echo'
<div class="formularz">
<h2>Napisz komentarz:</h2>
<form action="'.$lokalizacja.'" method="post">
<p><b>Twój Nick</b>: <br /><input type="text" name="nick" size="35" maxlength="35" /></p>
<p class="email_h"><b>Twój e-mail</b>: <br /><input type="text" name="e_mail" size="50" maxlength="50" /></p>
<p><b>Adres email</b>:<br /><textarea name="email" cols="77" rows="10" ></textarea></p>
<input type="submit" name="wys_kom" value="Wyślij" class="przycisk"/>
</form>
</div>
</body>
</html>';
?>
// Pobieramy adres IP komentującego
$IP = $_SERVER['REMOTE_ADDR'];
// Pobieramy pełny adres strony na której wysyłany jest komentarz
$lokalizacja = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$adres = $_SERVER['REQUEST_URI'];
DEFINE ('DB_USER', '***');
DEFINE ('DB_PASSWORD', '***'); // Jeżeli masz jakieś hasło to wpisz
DEFINE ('DB_HOST', '192.168.1.102');
DEFINE ('DB_NAME', '***'); // Podaj nazwę bazy danych
// Nawiązuje połączenie i wybiera bazę danych.
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem połączyć się z MySQL-em: ' . mysql_error() );
@mysql_select_db(DB_NAME) OR die ('<b>Nie udało mi się wybrać bazy danych:</b> ' . mysql_error() );
ini_set( 'display_errors', 'On' );
error_reporting( E_ALL );
// Jeżeli został wciśnięty przycisk "wyślij"
if (isset ($_POST['wys_kom'])) {
// Jeżeli nick jest pusty
if (empty($_POST['nick'])) {
$komunikat .= '<p>Podaj swój nick (imię).</p>';
} else {
$nick = ($_POST['nick']);
}
// Jeżeli komentarz jest pusty
if (empty($_POST['email']) ) {
$komunikat .= '<p>Napisz komentarz.</p>';
} else {
$koment = stripslashes($_POST['email']);
}
// Zabezpieczenie przed robotami
if (!empty($_POST['e_mail'])) {
$komunikat .= '<p>Według skryptu jesteś robotem. Twój komentarz został odzrzucony. Jeżeli nie jesteś tym za kogo wziął Cię nasz skrypt, skontaktuj się z administratorem strony.</p>';
}
//Jeżeli nie ma żadnego błędu
if (!isset($komunikat)) {
//treść wiadomości
$mailText = $_POST['nick'];
mail('test@test.com', 'Formularz kontaktowy', $mailText) or die('Błąd: wiadomość nie została wysłana');
$zapytanie = "INSERT INTO komentarze (url, nick, data, ip, email) VALUES ('$adres', '$nick', NOW(), '$IP', '$koment')";
mysql_query("set names utf8;");
if ($rezultat = mysql_query ($zapytanie)) {
mysql_close();
header ("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
} else {
$komunikat = '<p>Przepraszamy za chwilowe usterki. Wysłanie komentarza nie było możliwe. Spróbuj później.</p>';
}
}
}
echo'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
// Wyświetla wszystkie komentarze do tego artykułu
echo'<h2>Wasze komentarze:</h2>';
$zapytanie2 = "SELECT * FROM komentarze ORDER BY id";
mysql_query("set names utf8;");
$rezultat2 = mysql_query ($zapytanie2);
while ($dane = mysql_fetch_array ($rezultat2, MYSQL_ASSOC)) {
echo'
<div class="koment">
<table boder="1" >
<tr>
<td>',$dane['nick'],'</td>
<td>',$dane['data'],'</td>
<td>',nl2br($dane['email']),'</td>
</tr>
</table>
</div>';
}
// Jeżeli są jakieś komunikaty - wyświetl je
if (isset($komunikat)) {
echo '<div class="komunikat">'.$komunikat.'</div>';
}
// TEST
$zapytanie3 = "SELECT `nick` FROM komentarze ORDER BY id LIMIT 1";
mysql_query("set names utf8;");
$rezultat3 = mysql_query ($zapytanie3);
echo '<table border="1" >';
while ($wiersz = mysql_fetch_row($rezultat3))
{
echo '<tr><td>'. $wiersz[0] .'</td></tr>';
}
echo '<table>';
$zapytanie4 = "UPDATE `komentarze` SET `nick`='pobrane' WHERE `nick`='".$wiersz[0]."'";
$rezultat3 = mysql_query ($zapytanie4);
echo $rezultat3;
// END NEW
// Formularz wysyłania komentarza
echo'
<div class="formularz">
<h2>Napisz komentarz:</h2>
<form action="'.$lokalizacja.'" method="post">
<p><b>Twój Nick</b>: <br /><input type="text" name="nick" size="35" maxlength="35" /></p>
<p class="email_h"><b>Twój e-mail</b>: <br /><input type="text" name="e_mail" size="50" maxlength="50" /></p>
<p><b>Adres email</b>:<br /><textarea name="email" cols="77" rows="10" ></textarea></p>
<input type="submit" name="wys_kom" value="Wyślij" class="przycisk"/>
</form>
</div>
</body>
</html>';
?>