PHP jest dla mnie dość świeżym tematem. Staram się ukończyć pewien prosty skrypt formularza, który jednocześnie jest moim pierwszym skryptem. Na logikę wszystko wydaje się być poprawne, jednak nie jestem pewien jak sprawdzić poprawność napisanego kodu (syntax) oraz samo działanie funkcji mail() lokalnie (np. XAMPP). Sam skrypt ma za zadanie :
1. Sprawdza, czy użytkownik wprowadził jakiekolwiek dane w pole.
2. Dokonuje walidacji, czy wprowadzone dane składają się na prawidłowy adres email.
3. Po kliknięciu 'submit' dane zostają wysłane na mój adres email (wiadomość mająca w body $email)
4. Jednocześnie skrypt łączy się w bezpieczny sposób z bazą danych mysql i dokonuje próby wprowadzenia danych (zapis adresu email do tabeli)
5. Użytkownik jest przekierowany na adres URL.
6. Skrypt zamyka połączenie z bazą danych mysql.
Mówiąc, że skrypt łączy się w bezpieczny sposób z bazą danych mysql mam na myśli to, że główny plik php zawiera np. "parse_ini_file('/config.ini');" przy odpowiedniej zmiennej i pobiera z tego pliku dane nt. dbname, username oraz password.
Pytania :
1. Jak sprawdzić ogólną poprawność napisanego kodu ?
2. Jak używając lokalnego serwera (np. program XAMPP) sprawdzić poprawność działania całego skryptu.
3. Jak mogę monitorować wykonanie całego skryptu krok po kroku ? (Przydatne w czasie troubleshoot'ingu)
IDE z którego korzystam to Sublime Text 2
Kod głównego skryptu PHP :
<?php //Define variables $email = $_POST['email']; $from = 'Landing page'; $message = 'New form submission - Email adress: $email'; //Check if email was entered before submission if (!$_POST['email']) { $errEmail = 'Please enter a valid email adress' } // Validate e-mail if (!filter_var($email, FILTER_VALIDATE_EMAIL) === true) { } /* Send the message using mail() function */ /* Redirect visitor to the thank you page */ header('Location: <a href="http://affiliatelink.com'%3b%29;" target="_blank">http://affiliatelink.com');</a> // ----MYSQL---- // Load configuration as an array. // Try and connect to the database $connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']); // If connection was not successful, handle the error if($connection === false) { } // attempt insert query execution $sql = "INSERT INTO persons (email_address) VALUES ('$email')"; if(mysqli_query($link, $sql)){ } // close connection mysqli_close($link); // ----END MYSQL---- ?>
Uporządkowana i ładniejsza wersja kodu głównego skryptu PHP : http://ideone.com/jOG859
Zawartość pliku config.ini (przykładowa) :
[database]
username = root
password = 1234
dbname = mydb
Zawartość pliku email_data.ini (przykładowa) :
[email_data]
myemail = example@wp.pl
subject = Landing page form submission
Za wszelką pomoc będę wdzięczny

D.