![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na początek chciałbym serdecznie wszystkich przywitać na tym forum. Mam nadzieje, że nie będe dla Was zbyt dużym ciężarem ![]() Jakiś czas temu zacząłem przygode z PHP, uczę się jak narazie z wolnej książki na wikibooks, i po przeczytaniu gdzieś mniejwięcej połowy czas troche na praktykę. Przyjąłem metodologie małych kroczków, czyli mam zamiar zbudować jakąś tam prostą aplikację, wykorzystując to co już teoretycznie umiem. Na początek chciałem stworzyć formularz, który będzie zapisywał login, hasło oraz mail do pliku baza.txt (będzie to fragment aplikacji odpowiedzialnej za rejestrację uzytkownika). Jednak napotkałem problem. Otóż, po wprowadzeniu prawidłowych danych, skrypt i tak cały czas informuje mnie, że dane są nieprawidłowe. Chyba coś z if'em sprawdzającym poprawnośc emaila,bo jak zakomentuje je to skrypt poprawnie mnie o dobrze wprowadzonych danych....ale i tak nie zapisuje nic do pliku baza.txt....nie wiem, musze gdzieś mieć błąd logiczny ale o 12 w nocy juz nic nie widze ![]() Ktoś pomoże? Kod <?php
define('BAZA','./baza.txt'); function Dodawanie($login, $haslo, $email) { if(strlen($login) < 3) { return false; } if(strlen($haslo) < 3) { return false; } if(!preg_match("/^[a-zA-Z0-9\.\_\-]+\@[a-zA-Z0-9\.\_\-]+\.{2-4}[a-z]$/D",$email)) { return false; } $baza = fopen('BAZA',"a"); $tablica_bazy = array (0 => (nl2br(htmlspecialchars($login))), (nl2br(htmlspecialchars($haslo))), (nl2br(htmlspecialchars($email))) ); fwrite($baza, implode("\r\n",$tablica_bazy)."\r\n\r\n\r\n"); fclose($baza); return true; } if ($_SERVER['REQUEST_METHOD'] == "POST") { if(Dodawanie($_POST['login'],$_POST['haslo'],$_POST['email'])) { echo '<p>Dziekujemy, twoje konto zostalo utworzone</p>'; } else { echo '<p>Podales bledne lub za krotkie dane</p>'; } echo '<a href="nauka_php.php">Powrot</a>'; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <title>Moj projekt</title> </head> <body> <h1>Moj projekt</h1> <form method="post" action="nauka_php.php"> <h>Login</h> <input type="text" name="login" /> <h>Haslo</h> <input type="text" name="haslo" /> <h>Email</h> <input type="text" name="email" /> <input type="submit" value="wyslij" /> </form> </body> </html> |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A przyjrzyj się swojemu preg_match - owi i upewnij się, że jest poprawny... bo mnie wydaje się, że powinno być
Kod [a-z]{2-4} a nie Kod {2-4}[a-z] -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
A przyjrzyj się swojemu preg_match - owi i upewnij się, że jest poprawny... bo mnie wydaje się, że powinno być Kod [a-z]{2-4} a nie Kod {2-4}[a-z] Rzeczywiscie w książce jest pierw zakres a dopiero potem ilość, jednak nie wiem jakie by to miało mieć znaczenie? W kazdym razie nic to nie pomogło.. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie {2-4}, a {2,4}
(na resztę kodu nie patrzyłem) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
@Crozin, masz rację, już poprawiłem
Teraz warunki sprawdzające działają poprawnie, w zależności od tego czy wypełnie poprawnie formularz czy nie pojawia się stosowny komunikat, jednak nadal nic nie jest zapisywane do pliku....O co chodzi? EDIT: OK znalazlem byka. Trza bylo poprawić: Kod $baza = fopen('BAZA',"a"); na Kod $baza = fopen(BAZA,'a'); ![]() Ten post edytował Bastian 15.09.2009, 21:49:20 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:29 |