[oop]-Problem z klasa rejestracji

0

Witam mam mały dość problemik otóż całe 1,5 roku pisze w php ale proceduralnie , php oop znam w teori ale czas nauczyć sie pisać aplikacje już w całości obiektowe i tutaj jest problem bo w praktyce nie za bardzo mi to wychodzi worriedsmiley.gif .W javie [j2se] pisze już 5miesiecy i z oop i pisaniem programów nie mam problemu ,tylko w php sam nie wiem dla czego , może dla tego z jave od początku uczy programowania w oop, bo inaczej nie da sie programować w tym języku , może macie jakieś rady ?.Wiem programowania webowego nie można porównywać do programowania apliakcji użytkowych
Co robie zle ?
No i panowie nadal nic mi nie wychodzi nawet nie pokazuje komunikatów żadnych , nie dodaje nowego usera do bazy itd ,jak by ktoś mógł pokazać jak to prawidłowo powinno być zrobione .A ktos może też dać jakieś linki do jakiś stron które by mi pomogły w pisaniu obiektowo
Bo powiem szczerze ze oop w c++i java problemów nie mam ale w php mam ciągle :smutny: 😟

<?php

class  Rejestracja
{
	public  $login;
	public $haslo;
	public $haslotwo;
	
	function __construct($login,$haslo,$haslotwo)
{
 include_once('config_database.php');
//odbieranie danych
 $this-> login = $login=$_POST['login'];
 $this-> haslo= $haslo=$_POST['haslo'];
$this-> haslotwo=$haslotwo=$_POST['haslotwo'];
}
 
public  function polaczenie()
{
$polaczenie=mysql_connect(connect,user,password)or die('connect_error'.mysql_error());
mysql_select_db(database)or die('database_error'.mysql_error());
}
public  function spraw_user()
{
$zapytanielog= "SELECT * FROM user WHERE login='$login'";
$sprawdzlog= mysql_query($zapytanielog)or die(mysql_error());
$numrows=mysql_num_rows($sprawdzlog);
if($numrows > 0)
{
  return "Podany login już istnieje";
   exit;
}
if($haslo!=$haslotwo)
{
 return "Hasło jest błedne";
   exit;
}
}
public  function rej_user()
{
	
$zapisrej="INSERT INTO user(`login`,`haslo`)VALUES('$login','$haslo')";
$touser=mysql_query($zapisrej);
if($touser)
{
  return "Użytkownik dodany";
}
else
{
   return  "Użytkownik nie dodany!";
  exit;
}
}
}
$start=new Rejestracja(login,haslo,haslotwo);
$start->polaczenie();
$start->spraw_user();
$start->rej_user()
?>
0

$this-> login = $login=$_POST['login']; [...] - Po co w tej funkcji parametry $login itd?
$zapytanielog= "SELECT * FROM user WHERE login='$login'"; - $login nie istnieje. Używa się $this aby dostać się do pól klasy ($this->login).
$zapisrej="INSERT INTO user(login,haslo)VALUES('$login','$haslo')"; j/w

$start->spraw_user();
$start->rej_user()
  • Sprawdzasz czy jest user, ale i tak lecisz dalej niezależnie od wyniku tej metody.
0

nav a czy byś mógł pokazać jak to ma być bo za wiele mi nic to nie dało

0
<?php

class Rejestracja
{
		public $login;
		public $haslo;
		public $haslotwo;

		function __construct()
		{
			include_once('config_database.php');
			//odbieranie danych
			$this->login = $_POST['login'];
			$this->haslo = $_POST['haslo'];
			$this->haslotwo = $_POST['haslotwo'];
		}
		 
		public function polaczenie()
		{
			$polaczenie = mysql_connect('localhost','user','password') or die('connect_error'.mysql_error());
			mysql_select_db('database') or die('database_error'.mysql_error());
		}
		public function spraw_user()
		{
			$zapytanielog = "SELECT * FROM user WHERE login='" . $this->login . "'";
			$sprawdzlog = mysql_query($zapytanielog) or die(mysql_error());
			return mysql_num_rows($sprawdzlog) > 0;
		}
		public function rej_user()
		{
			$zapisrej="INSERT INTO user(`login`,`haslo`)VALUES('" . $this->login . "','" . $this->haslo . "')";
			return mysql_query($zapisrej);
		}
}
$start=new Rejestracja();
$start->polaczenie();
if ($start->spraw_user())
{
	die('Taki user istnieje');
}
if (!$start->rej_user())
{
	die('Nie udalo sie dodac');
}
echo 'Dodano pomyslnie';
?>

(Taki szczegół - podatne na SQL injection, jeśli nie filtrujesz nigdzie danych w $_POST.)

0

Dziękuje , czy byś mi mógł dać rade lub jakieś linki ? , bo oop znam ale w teorii ale w praktyce mniej i z tym mam większy problem więc rady i linki mile widziane :>

0

Generalnie to jest tego mnóstwo, polecam Google. Np. tutaj partia artykułów:

http://webcity.pl/webcity/programowanie_obiektowe_w_php_5_cz__1
http://webcity.pl/webcity/programowanie_obiektowe_w_php_5_cz__2
http://webcity.pl/webcity/programowanie_obiektowe_w_php_5_cz__3

PS. wcięcia w kodzie to dobry nawyk, warto, abyś się go nauczył.

0

To to już dobrze znam :/ ,ale dzinx za pomoc . ;-)

// skoro znasz, to czytaj - Cold

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