Problème script PHP /!\

Snip714 Messages postés 249 Statut Membre -  
 Alain42 -
Bonjour, voici mon script :
<?
if ($combat = "$_POST['Attaque']"){
$comatk = "4";
$comdef = "1";
$comvit = "1";
$comtch = "1";
}
elseif ($combat = "$_POST['Défense']"){
$comatk = "1";
$comdef = "4";
$comvit = "1";
$comtch = "1";
}
elseif ($combat = "$_POST['Vitesse']"){
$comatk = "1";
$comdef = "1";
$comvit = "4";
$comtch = "1";
}
else {
$comatk = "1";
$comdef = "1";
$comvit = "1";
$comtch = "4";
}
?>


( C'est pour un jeu en ligne )

Et ca me met :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/140/sdc/f/4/0v5/traitement.php on line 2


Quel est le problème, svp ?
A voir également:

6 réponses

gluo Messages postés 273 Statut Membre 105
 
Salut.
Ne met pas :
if ($combat = "$_POST['Attaque']"){

Préfère :
if ($combat = $_POST['Attaque']){


De plus pour faire un test on utilise le double égal (là tu assigne une variable)
donc :
if ($combat == $_POST['Attaque']){
0
Snip714 Messages postés 249 Statut Membre 65
 
Merci, c'est déjà mieux ;)
0
Alain42
 
Bonjour,

si je peux me permettre, déja à première vue des erreurs:

<?
if ($combat = "$_POST['Attaque']"){


mets <?php au lieu de <?

et ta condition if sera toujours vraie, pour comparer si égal dans un if il faut mettre ==

et ne mets pas les " car dans ce cas, tu compares avec la chaine "$_POST['Attaque']" et pas avec la variable $_POST['Attaque']

=>

<?php
if ($combat == $_POST['Attaque']){



ensuite d'où vient $combat ?

une autre solution mieux avec less witch case

$combat=$_POST['action'];// si c'est le nom du champ qui t'envoi le type de combat
switch($combat){
	case "Attaque":
		$comatk = "4";
		$comdef = "1";
		$comvit = "1";
		$comtch = "1";
	break;
	case"Défense":
		$comatk = "1";
		$comdef = "4";
		$comvit = "1";
		$comtch = "1";
	break;
	case "Vitesse":
		$comatk = "1";
		$comdef = "1";
		$comvit = "4";
		$comtch = "1";
	break;
	default:
		$comatk = "1";
		$comdef = "1";
		$comvit = "1";
		$comtch = "4";
	break;
}
0
gluo Messages postés 273 Statut Membre 105
 
Il a raison, les <?php et ?> sont préférables car certains serveurs ne reconaissent pas les balises rapide <? et ?> donc n'éxécutent pas le php et tout le monde voit ton code !

c'est vrai que $combat est pas définit mais ce fichier peut être un include.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Snip714 Messages postés 249 Statut Membre 65
 
Merci beaucoup à vous deux !
0
Alain42
 
Bonjour,

essayes plutôt comme ça avec des " au debut et fin au lieu des ' (perso je préfère)


$sql = "INSERT INTO Users 
VALUES('".mysql_escape_string($_POST['pseudo'])."','".mysql_escape_string($_POST['pass'])."','".mysql_escape_string($_POST['email'])."','".mysql_escape_string($_POST['nom'])."','".mysql_escape_string($_POST['desc'])."','".mysql_escape_string($_POST['magie'])."','".mysql_escape_string($_POST['co
mbat'])."','50','100','".$comatk."','".$comdef."','".$comvit."','".$comtch."')";

0