Problema nella pagina di registrazione e login

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
Ciao, sto cercando di fare una pagina di login e registrazione con php mvc ma senza usare framework.
Nel file View/LoginSignup.php ho del codice html con due form:
- uno per il login con l'action = public/indexLogin.php
- e un altro fomr per la registrazione con l'action = public/indexRegister.php.

Questi due file sono fatti in questo modo:

public/indexLogin.php

Codice:
$controller = new LoginController();
		$view = $controller->invoke();
		$view->render();

e public/indexRegister.php

Codice:
$controller = new RegisterController();
		$view = $controller->invoke();
		$view->render();

Il metodo invoke() chiamato in public/indexLogin.php fa questo:
Codice:
public function invoke() {
		    $view = $this->check();
		    return $view;
		}
dove check() è:
Codice:
 public function check() {
	       if(isset($_POST['submitL'])) {
	         if(isset($_POST['username']) && isset($_POST['password'])) {
	            $username = $_POST['username'];
	            $password = $_POST['password'];
	            if($this->checkData($username, $password)) {
	               $_SESSION['logged_in'] = 1;
	               $_SESSION['username'] = $username;
	               $usersRepo = new UserRepository();
	               $user = $usersRepo->findByUsername($username);
	               $view = new View('Home');
	               $view->setData('user', $this->user);
	               return $view;
	            }
	         }
	         else {
	            $view = new View('LoginSignup');
	            $view->setData('errorsL', $this->errorsL);
	            return $view;
	         }
	      }
	      else {
	         $view = new View('LoginSignup');
	         return $view;
	      }
	   }

Il metodo invoke() chiamato invece in public/indexRegister.php fa questo:
Codice:
public function invoke() {
			$view = $this->check();
			return $view;
		}
dove check() è:
Codice:
public function check() {
      if(isset($_POST['submitR'])) {
         if(isset($_POST['username']) && isset($_POST['password']) && isset($_POST['email'])) {
            $username = $_POST['username'];
            $password = $_POST['password'];
            $email = $_POST['email'];
            if($this->checkData($username, $password, $email)) {
               $usersRepo = new UserRepository();
               $user = new User();
               $user->setUsername($username);
               $user->setEmail($email);
               $user->setPassword($password);
               $user->saveRegister();
               $successesR['completed'] = "Registration completed successfully";
               $view = new View('LoginSignup');
               $view->setData('successesR', $this->successesR);
               return $view;
            }
            else {
               $view = new View('LoginSignup');
               $view->setData('errorsR', $this->errorsR);
               return $view;
            }
         }
         else {
            $view = new View('LoginSignup');
            $view->setData('errorsR', $this->errorsR);
            return $view;
         }
      }
      else {
         $view = new View('LoginSignup');
         return $view;
      }
   }

Il metodo render() si trova in View/View.php e fa questo:
Codice:
public function render(){
		extract($this->data);
		ob_start();
		require $this->path;
		ob_end_flush();
	}
Sempre in View/View.php si trova il metodo setData($name, $value) che è fatto in questo modo:
Codice:
public function setData($name, $value) {
		$this->data[$name] = $value;
	}
Dove $data è un array definito all'inizio.

La classe User (Model/User.php) rappresenta un utente (con i campi username, password, first_name...) e definisce i metodi get e set.
Inoltre contiene i metodi load() e save().
save() inserisce l'utente $this nel database.

Ho due problemi con questo codice:
1. Quando inserisco i dati corretti nel form della registrazione non viene inserito nessun nuovo utente nel database
2. Una volta fatto il login, entro nella pagina della home dove (View/Home.php) ho
Codice:
<p><?php echo "Hi ".$user->getUsername(); ?>
quindi dovrebbe visualizzare la scritta "Hi Josh" se Josh è l'utente loggato in questo momento.
Invece visualizza solo "Hi".

Qualcuno saprebbe aiutarmi? Grazie!
 

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
Il metodo save() fa questo:

PHP:
public function save() {
    $new = is_null($this->id);
    $db = Database::getInstance();
    if($new) {
        $sql = "INSERT INTO 'users' ('username', 'password', 'email', 'first_name', 'last_name') "
        . "VALUES (?, ?, ?, ?, ?)";
        $stmt = $db->prepare($sql);
        $stmt->execute(array($this->getUsername(), $this->password, $this->getEmail(), $this->getFirstName(), $this->getLastName());
        $this->id = $db->lastInsertedId();
    }
    else {
        $sql = "UPDATE 'users' SET 'username' = ?, 'password' = ?, 'email' = ?, 'first_name' = ?, 'last_name' = ? WHERE 'id' = ?";
        $stmt = $db->prepare($sql);
        $stmt->execute(array($this->getUsername(), $this->password, $this->getEmail(), $this->getFirstName(), $this->getLastName(), $this->id));
    }
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [Javascript] [HTML] problema nella stampa degli elementi della pagina Javascript 3
S Problema con 2 script nella stessa pagina Javascript 1
Emix Problema nel concatenare jquery ed ajax nella stessa pagina Javascript 15
G problema caricamento 2 js nella stessa pagina Javascript 0
Dragon Problema di caricamento swf e img nella stessa pagina Flash 8
loois Ho un problema nella creazione di un sistema di commenti in PHP PHP 11
P doppio problema nella memorizzazione dati PHP 11
M Ipn paypal problema nella risposta PHP 1
C Problema apertura slide nella hompage HTML e CSS 0
J Problema con link nella barra di navigazione HTML e CSS 1
P problema nella stampa di table HTML e CSS 1
A problema nella visualizzazione file caricato tramite ftp WordPress 0
L problema nella implementare una funzione con ritorno PHP 2
W Problema nella pubblicazione programmata di un articolo WordPress 1
D Problema nella validazione di un form con JQUERY ed AjAX jQuery 4
D Problema nella chiamata ad una funzione javascript da href Ajax 2
G Problema nella pagine dei risultati ricerca Wordpress WordPress 2
G Problema nella creazione di un'area protetta PHP 10
max_400 Problema apostrofo nella ricezione della variabile per poi scriverla dentro un file PHP 6
giancadeejay Intro flash,problema nella visualizzazione su sito Flash 2
F problema sintassy nella mia query MySQL 6
A Problema nella creazione di un area protetta!!!! Classic ASP 3
F problema nella connessione con mysql presente in Aruba PHP 3
L Problema nella visualizzazione HTML e CSS 0
K problema nella formattazione del valore di una variabile PHP 0
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7

Discussioni simili