Witam, chciał bym poprosić o pomoc w napisaniu pewnego skryptu, a mianowicie coś w rodzaju formularza rejestracyjnego ale dane nie zapisywały się w SQL tylko w pliku txt. Ponadto aby każda nowa rejestracja zapisywała się w nowym pliku txt.
A co to zmienia? Ja nie widzę problemu. Przecież to nadal jest tylko zapis do pliku, jedynie co się zmienia do sposób zapisu (w postaci kodu php) oraz rozszerzenie pliku (z txt na php).
Tylko wg mnie to każdy user będzie miał osobny plik txt i to jest lepsze bo szuka się w katalogu usera i sprawdza hasło w pliku txt. Jakoś ta alternatywa do mnie bardziej przemawia
Gerzesie1k fajny kod, tylko nie zapisuje niczego w katalogu db - nie zapisuje zarejestrowanych uzytkownikow.
Pozatym po rejestracji nie pisze mi, ze jestem zalogowany jako(nazwa uzytkownika) i niema slowa wyloguj, ze jak sie wyluguje to bede mogl sie ponownie zalogowac jako ten zarejstrowany uzytkownik. I jak sie zalozy konto to zeby powiadomienie o zalozonym koncie przyszlo na maila podanego przy rejestracji.
Grzesie1k ale powiadomienia na maila nie przychodza o tym, ze dana osoba sie zarejestrowala. Wiesz moze jak ten kod poprawic ?
I czy nie moznaby poprawic tego, zeby w folderze db zapisywane pliki nie mialy nazwy takiej dlugiej: 21232f297a57a5a743894a0e4a801fc3.php , tylko zeby nazwa byla krotsza np. user1
Kolejny zarejestrowany uzytkownik to: user 2 itd. Czy moglbys ten kod poprawic ?
Fajnie by było gdyby była wyświetlana jakaś lista osób, które już konto sobie założyło.
Nazwe użytkownika można oczywiście łatwo skróci, by uzyskać numer wystarczy zliczyć pliki z katalogu, lecz może pojawić się problem z odczytem tych informacji.
Co do powiadomomienia na maila to zobacz tą linię:
<?php
foreach(scandir('db') as $file){
if($file!='.' and $file!= '..'){
include('db/'.$file);
}
}
foreach($user as $name=>$data){
echo $name.'
';
}
?>
Aby wyświetlać inne dane użytkowników na początku trzeba je posiadać, a jeżeli tak dalej pójdzie to napisze cały cms operaty na tych plikach. Mógłbyś zrobić coś samemu a nie czekać na gotowca…
Funkcje mail() mam wyłączoną więc pewnie będzie potrzebne coś zastępczego.
A czy ten kod, który dałeś powyżej to sobie dodać do pliku logowanie.php, wyloguj.php czy do rejestracja.php ? i w ktorym miejscu ? Żebym sobie tego nie zepsuł. Tylko tę jedną rzecz mi powiedz o które teraz Cie prosze i już sobie potem jakoś poradze.
Grzesie1k zadnych powiadomień na maila nie dostaje o zalożonym koncie. Np. Jak ktoś sobie zalozy konto i poda adres email jacek@com.pl to zeby mu na tego maila jacek@com.pl przyszlo powiadomienie o zalozonym koncie. U mnie nic takiego sie nie dzieje, jak to poprawic ?
Jeszcze taka malutka prośba. Możesz mi powiedzieć jak zrobić, żeby obok nazwy użytkownika wyswietlała się ikonka emailktóra by była linkiem do adreu email podanego przy rejestracji ?
Grzesie1k ładnie działa, tylko problem jest w tym iż przy wyświetlaniu listy zarejestrowanych osób tworzy liste w ten sposób: Kliknij Tutaj
W momencie gdy jest wolne miejsce miedzy zarejestrowanymi osobami jest wolne miejsce i obok jest ikonka email. Tak nie powinno być, a skoro powinno to czemu gdy jest odstęp miedzy tymi osobami to tez się wyświetla ikonka email a wtedy nie powinna ? wiesz jak to poprawic ? - w tej chwili jest 8 osób zarejestrowanych a wyświetla mi 9 ikonek email.
Natomiast co do wysyłania maili to musze użyc phpmailera innej rady niema. Czyli aby wysyłanie powiadomień o zarejestrowanym użytkowniku było możliwe to musze użyć coś takiego:
<?php
if(!empty($_POST['temat']) && !empty($_POST['imie']) && !empty($_POST['tresc']))
{
//NASZ SKRYPT
require_once("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPKeepAlive = true;
$mail->SMTPAuth = true;
$mail->Username = "Test_";
$mail->Password = "hasło_masło";
$mail->SetLanguage("pl", "phpmailer/language/");
$mail->CharSet = "utf-8";
$mail->ContentType = "text/html";
$mail->FromName = $_POST['imie'];
$mail->Subject = $_POST['temat'];
$message = 'Witaj,
Otrzymujesz ten email ponieważ został wysłany przez formularz ze strony: http://www.history.is.net.pl
Wiadomość została wysłana przez użytkownika '.$_POST['imie'].', który posiada adres email: '.$_POST['email'].'
Treść wiadomości: '.$_POST['tresc'];
$mail->Body = $message;
$mail->AddAddress("test@pl");
if($mail->Send())
echo "
Wiadomość została wysłana. Dziękujemy. Kliknij Tutaj aby przejść do strony głównej
"; else echo "Wiadomość nie może zostać wysłana z powodu: ".$mail->ErrorInfo; $mail->SmtpClose(); } else { // wyswietlamy formularz echo " Poniższy formularz pozwala na skontaktowanie się z serwisem Uwaga! Prosimy nie zadawać pytań dotyczących serwisu poprzez ten formularz. Wszelkie pytania i problemy związane z tym serwisem należy umieszczać w komentarzach, które do tego celu właśnie są przeznaczone.