Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z prostym skryptem zapisującym tresc do pliku
Bastian
post 14.09.2009, 22:55:13
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 winksmiley.jpg

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 winksmiley.jpg
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>
Go to the top of the page
+Quote Post
wookieb
post 14.09.2009, 23:02:36
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]




--------------------
Go to the top of the page
+Quote Post
Bastian
post 14.09.2009, 23:20:09
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 15.09.2009, 00:02:36 ) *
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..
Go to the top of the page
+Quote Post
Crozin
post 14.09.2009, 23:21:03
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)
Go to the top of the page
+Quote Post
Bastian
post 15.09.2009, 19:09:09
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');


smile.gif

Ten post edytował Bastian 15.09.2009, 21:49:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:29