problem z rejestracją

0

Witam na podstawie różnych turtoriali stworzyłem sobie
skrypt do rejestracji użytkowników z potwierdzeniem email tylko cośc nie chce działać cały czas jakis bląd wyskakuje oto pliki

connect.php

<?php

//ob

ob_start();

//sesja

session_start();

//polaczenie z bazą

 $error = "Problem z polaczeniem";
 mysql_connect('localhost','root','vertrigo') or die ($error); 
 
 //wybieranie bazy 
 mysql_select_db('a') or die ($error); 
?>

activate.php

<?php

include 'connect.php';
$code = $_GET['code'];

if (!code)
		echo "Kod nie sostał dostarczony";
else
{

	 $check = mysql_query("SELECT * FROM users WHERE code='$code' AND active='1'")
	 if (mysql_num_rows($check)==1)
			echo "Twoje konto jest już aktywne";
		
	 else
	 {
	 
			$activate = mysql_query("UPDATE users SET active='1' WHERE code='$code'");
				echo "Twoje konto zostało aktywowane!";
			
	 }
?>

register.php

<?php

include 'connect.php';

if($_POST['register'])
{

	//pobieranie danych formularza
	$username = addslashes(strip_tags($_POST['username']));
	$password = addslashes(strip_tags($_POST['password']));
	$email = addslashes(strip_tags($_POST['email']));
	
	if(!$username||!$password||!$email)
		echo "Prosze wypełnić wszystkie pola";
	else
	{
	
		//szyfrowanie hasła
		
	$password = md5($password);

	//sprawdzanie czy email jest już zarejestrowany

	$check = mysql_query("SELECT * FROM users WHERE username='$username'");
	if (mysql_num_rows($check)>=1)
		echo "Taki email już istnieje";
		
	else
	{
		//generowanie kodu
		$code = rand(11111111,99999999);

		//wysyłanie emaila aktywującego
		$to = $email;
		$subject = "Aktywuj konto";
		$headers = "From: [email protected]";
		$body = "Witaj $username,\n\nZostałes zarejestrowany musisz aktywować konto.Kliknji ten link\n\nhttp://localhost/activate.php?code=$code\n\nDziękuje!";

		if (!mail($to,$subject,$body,$headers))
			echo "Nie możesz teraz się zarejestrować.Proszę spróbować za chwilę.";
			else
			{
			//rejestracja bazy
			
			$register = mysql_query("INSERT INTO users VALUES ('',$username,'$password','$email','$code','0')");
			echo "Zostałeś zarejestrowany! Proszę sprawdzić email($email) w celu aktywacji konta";
}
       }
			}

	

	
 ?>
	<form action='register.php' method='POST'>
	Podaj username:<br />
	<input type='text' name='username'><p />
	Podaj password:<br />
	<input type='password' name='password'><p />
	Email:<br />
	<input type='text' name='email'><p />
	<input type='submit' name='register' value='Register'>
	<form/>

i jak możecie pomóżcie zrobić do tego jakąś validacje z użycie Jquery

0

ok za nastepnym razem bede tak robil jestem tu nowy i nie wiem dokladnie co i jak na tej stronie

0

Przykro nam, wróżka na urlopie.
Jaki błąd ?

0

serverm ma zainstalowany na komputzerze nazywa się vertrigo serv a oto błąd:

Parse error: syntax error, unexpected $end in C:\Program Files\VertrigoServ\www\register.php on line 64

najlepiej jakbys sprawdzil go u siebie

1

W pliku register.php masz 4 nawiasy wąsate otwierające, a tylko 3 zamykające. Jak poprawisz formatowanie to się zorientujesz, gdzie Ci brakło tego jednego zamykającego :)

0

dzieki wielkie heh niby daka drobnostka a wiesz może jeszcze jak zrobić do tego validacje jakąs z użyciem jquery albo ajax

i jeszcze jak klikne submit to wyskakuj mi taki błąd

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\VertrigoServ\www\register.php on line 39

to chodzi o to ze server zainstalowany na komputerze nie obsługuje tej funkcji? jaesli tak to da się to jakośc włączyć

1

Masz własny serwer czy tylko testujesz na localhost? Jażeli tylko testujesz to ten błąd nie powinien Cię martwić jeżeli na serwerze działa poprawnie. Prawdopodobnie jak napiszesz to w ten sposób to będzie dobrze.

register.php
Wariant 1:

<?php // ... linje od 1-38
@ $return_mail = mail($to,$subject,$body,$headers);
if (!empty($return_mail))
    echo "Nie możesz teraz się zarejestrować.Proszę spróbować za chwilę.";
// ... reszta
?>

lub
Wariant 2:

<?php // ... linie od 1-38
@ $return_mail = mail($to,$subject,$body,$headers);
if (empty($return_mail))
    echo "Nie możesz teraz się zarejestrować.Proszę spróbować za chwilę.";
// ... reszta
?>

Nie jestem pewien bo nie mogę przetestować u siebie bo u mnie mail() działa poprawnie. Pokombinuj, może coś zaskoczy.
Sprawdź czy w ogóle wysyła wiadomości. Jak czegoś się dowiem to napiszę.

A osobiście wolę i polecam XAMPP-a jest to bardzo dobry serwer Apach-a, MySQL-a i wielu innych przydatnych rzeczy. Ma tylko jedną wadę (albo ja coś robię źle), jak zmienię hasło do użytkownika root ( domyślnie brak ) to nie mogę się dostać do phpMyAdmina. Żadne okienko do logowania nie wyskakuje.

I do programowania polecam Notepad++, koloruje składnię i podświetla na czerwono niezamknięte nawiasy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1