Pobrałem sobie gotowy projekt systemu rejestracji, wrzuciłem go na serwer, ustawiłem pod swoje zmienne, etc.. Jednak po wypełnieniu formularza wyskakuje mi szereg błędów na temat połączeń z my_sql (o ile dobrze zrozumiałem). W innych skryptach nie zauważyłem problemów z połączeniem się z bazą.

<- oto błędy.
<?php
function connect() {
// serwer
$mysql_server = "localhost";
// admin
$mysql_admin = "musicdwa_db";
// hasło
$mysql_pass = "pIjaOO";
// nazwa baza
$mysql_db = "musicdwa_db";
// nawiązujemy połączenie z serwerem MySQL
or
die('Brak połączenia z serwerem MySQL.'); // łączymy się z bazą danych
or
die('Błąd wyboru bazy danych.');}
if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
connect();; // połączenie się z bazą danych
$tabela = 'users'; // zdefiniowanie tabeli MySQL
require_once('recaptchalib.php'); // dołączenie modułu reCAPTCHA
$privatekey = '6LdFpMwSAAAAAAXRTwWOMABUgklG5bmUwckLKZJI'; // prywatny klucz reCAPTCHA
$publickey = '6LdFpMwSAAAAAArW2ZVIyIxAeUkvdvo-_7LME5jx'; // publiczny klucz reCAPTCHA
if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
// filtrowanie treści wprowadzonych przez użytkownika
$haslo = $_POST["haslo"];
$haslo2 = $_POST["haslo2"];
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
// system sprawdza czy prawidło zostały wprowadzone dane
if (strlen($login) < 3 or
strlen($login) > 30 or
!eregi("^[a-zA-Z0-9_.]+$", $login)) { $blad++;
echo '<p>Proszę poprawny wprowadzić login (od 3 do 30 znaków).</p>'; } else {
$wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'"); $blad++;
echo '<p>Podana nazwa użytkownika została już zajęta.</p>'; }
}
$blad++;
echo '<p>Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków). </p>'; }
if ($haslo !== $haslo2) {
$blad++;
echo '<p> Podane hasła nie są ze sobą zgodne. </p>'; }
if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) { $blad++;
echo '<p> Proszę wprowadzić poprawnie adres email.</p>'; } else {
$wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'"); $blad++;
echo '<p> Podany adres e-mail jest już zajęty.</p>'; }
}
if ($email !== $email2) {
$blad++;
echo '<p> Podane adresy e-mail nie są ze sobą zgodne.</p>'; }
if (!$resp->is_valid) {
$error = $resp->error;
echo '<p>Proszę wpisać poprawnie wyrazy z obrazka.</p>'; $blad++;
}
// jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
if ($blad == 0) {
$haslo = md5($haslo); // zaszyfrowanie hasla $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
$wynik = mysql_query("INSERT INTO $tabela VALUES('', '$login', '$haslo', '$email', '$kod', NOW(), '')"); if ($wynik) {
$list = "Witaj $login !
Kliknij w poniższy link, aby aktywować swoje konto. <a href="http://www.music-dwarf.xaa.pl/verify.php?weryfikacja=potwierdz&kod=$kod";" target="_blank">http://www.music-dwarf.xaa.pl/verify.php?w...#036;kod";</a>
mail($email, "Rejestracja użytkownika", $list, "From: <support@music-dwarf.xaa.pl>"); echo '<p>Dziękujemy za rejestrację! W ciągu nabliższych 5 minut dostaniesz wiadomość e-mail z dalszymi wskazówkami rejestracji.</p>'; }
}
}
// tworzenie formularza HTML
<form action="registry.php" method="post">
<input type="hidden" name="wyslane" value="TRUE" />
<p>Login*: <input type="text" name="login" /></p>
<p>Hasło*: <input type="password" name="haslo" /></p>
<p>Powtórz hasło*: <input type="password" name="haslo2" /></p>
<p>Adres e-mail*: <input type="text" name="email" /></p>
<p>Powtórz adres e-mail*: <input type="text" name="email2" /></p>
KONIEC;
echo recaptcha_get_html
($publickey); // wyświetlanie reCAPTCHA
<p><input type="submit" value="wyślij" /></p></form>
KONIEC;
} else {
header('Location: / '); // zalogowany użytkownik zostaje przekierowany na stronę główną }
?>
Kod rejestracji.
Tak, wiem, że niepotrzebne jest tam użycie funkcji connect, jednak myślałem, że skrypt po prostu nie łapie funkcji include, albo coś takiego, więc postanowiłem spróbować i tego. Tonący brzytwy się chwyta, prawda
?