8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je dois développer un petit jeu avec du HTML5 et du PHP. J'ai pas utilisé PHP depuis quelques années et je n'ai pas non plus l'habitude de communiquer entre un client et un serveur.

J'aurais donc quelques questions.

Déjà on se connecte avec un petit formulaire pour renseigner un nom. Quand on clic sur le bouton submit, j'appel un fichier PHP qui génère une compagnie et lance une nouvelle page HTML.

Déjà, j'aimerais savoir si la démarche est correcte, ou pas.

De plus, est-ce que le code ci-dessous est correct, ou pas. Car actuellement j'ai une page blanche mais si j'enlève la ligne avec le SESSION, ça passe.

<?php
	
	session_start();
	
	class Company {
		
		private $money = 20000;
		private $name;
		
		function __construct($companyName) {
			$this->name = $companyName;
		}
		
		function increaseMoney($money) {
			$this->money += $money;
		}
		
		function decreaseMoney($money) {
			$this->money -= $money;
		}
		
	}
	
	$myNewCompany = new Company('toto');
	//$myNewCompany = new Company($_POST["companyName2"]);
	//echo $myNewCompany->name;
	$_SESSION['nameCompany'] = $myNewCompany->name;
	
	header('Location: ../game.php');
	
?>


J'ai besoin de récupérer les informations de la compagnie par la suite. C'est pour cette raison que j'ai besoin d'une SESSION. Mais je suis peut-être sur la mauvaise voix.

Merci pour votre aide, j'en ai besoin.
La première chose à faire est d'afficher les erreurs quand tu développes.

A mettre en haut de ton script :


error_reporting(E_ALL | E_STRICT);
jb_gfx a écrit :
La première chose à faire est d'afficher les erreurs quand tu développes.

A mettre en haut de ton script :


error_reporting(E_ALL | E_STRICT);


En haut du script PHP ? Parce que j'ai toujours une page blanche et je ne vois rien nul part.

EDIT : je parle bien du script PHP dans le fichier (ci-dessus) pas le code dans la page HTML.
Modifié par MagicCarpet (10 Feb 2013 - 14:13)
Si l'affichage des erreurs est désactivé tu dois préalablement l'activer.

Ça donne ça :


ini_set('display_errors', true);
error_reporting(E_ALL | E_STRICT);


Tu places au début de ton script et comme ça tu verras les messages d'erreur et tu pourra comprendre pourquoi cette ligne pose problème :


$_SESSION['nameCompany'] = $myNewCompany->name;


PS : Évidement je parle de ton script PHP, je ne vois pas pourquoi tu viens me parler de page HTML. Smiley biggol
Hello,

C'est normal que ça ne fonctionne pas, tu essaie d'appeler une propriété privée en dehors de ta class Smiley cligne

Si tu as suivi le conseil de jb_gfx en affichant les erreurs tu devrais avoir cette ligne
Fatal error: Cannot access private property Company::$name


Remplace private $name par public $name ou bien tu peux ajouter un accesseur dans ta class


public function getName()
{
    return $this->name;
}


Tu pourras accéder à la valeur de ta propriété Smiley biggrin

si tu remplaces private par public pour ta propriété
$_SESSION['nameCompany'] = $myNewCompany->name;


ou avec l'accesseur
$_SESSION['nameCompany'] = $myNewCompany->getName();