Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Wysyłanie aktywnych kodów
Forum PHP.pl > Forum > Przedszkole
artursztuka
Witam

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>';
?>
b4rt3kk
I gdzie masz problem? Bo nawet nie zacząłeś nic w tym kierunku robić (przynajmniej nie ma tego w powyższym kodzie). Pobierasz kod z bazy (SELECT id, kod FROM kody WHERE status = 'true'), następnie dołączasz do treści maila i tym razem robisz UPDATE dla tabeli kodów i dla userów.
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.