Mam jeszcze taki plik send.php
Było:
<?php
require 'inc/Database.class.php';
require 'inc/Newsletter.class.php';
$email = $_POST['signup-email'];
Newsletter::register($email);
}
Tak jest:
<?php
require 'inc/Database.class.php';
require 'inc/Newsletter.class.php';
$name = $_POST['signup-name'];
$email = $_POST['signup-email'];
Newsletter::register($name, $email);
}
Teraz mam:
<?php
class Newsletter
{
private static $datetime = null;
public function __construct() {
die('Init function is not allowed'); }
public static function register
($name, $email) { self::$name = $_POST['signup-name'];
self::$email = $_POST['signup-email'];
self::$datetime = date('Y-m-d H:i:s');
if (empty(self::$email)) { $status = "error";
$message = "The email address field must not be blank";
self::$valid = false;
} else if (!filter_var(self::$email, FILTER_VALIDATE_EMAIL)) {
$status = "error";
$message = "You must fill the field with a valid email address";
self::$valid = false;
}
if (empty(self::$name)) { $status = "error";
$message = "The name field must not be blank";
self::$valid = false;
} else if (!filter_var(self::$name, FILTER_VALIDATE_NAME)) {
$status = "error";
$message = "You must fill the field with a name";
self::$valid = false;
}
if (self::$valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$existingSignup = $pdo->prepare("SELECT COUNT(*) FROM newsletter WHERE newsletter_name='$name' AND newsletter_email_address='$email'");
$existingSignup->execute();
$data_exists = ($existingSignup->fetchColumn() > 0) ? true : false;
if (!$data_exists) {
$sql = "INSERT INTO newsletter (newsletter_name, newsletter_email_address, newsletter_date) VALUES (:name, :email, :datetime)";
$q = $pdo->prepare($sql);
$q->execute(
array(':name' => self::$name, ':email' => self::$email, ':datetime' => self::$datetime));
if ($q) {
$status = "success";
$message = "You have been successfully subscribed";
} else {
$status = "error";
$message = "An error occurred, please try again";
}
} else {
$status = "error";
$message = "This email is already subscribed";
}
}
'status' => $status,
'message' => $message
);
Database::disconnect();
}
}
}
i mam problem z: "An error occurred, please try again"
Okej, ostatnim problemem jest:
if (empty(self::$name)) { $status = "error";
$message = "The name field must not be blank";
self::$valid = false;
} else if (!filter_var(self::$name, FILTER_VALIDATE_EMAIL)) {
$status = "error";
$message = "You must fill the field with a name";
self::$valid = false;
}
Jak dać sprawdzanie po imieniu ?
Problem rozwiązany, dzięki!