Problème script PHP /!\

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 ?
Configuration: Mac OS X
Firefox 2.0.0.11

6 réponses

  1. 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."')";
    
    
    1. 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.
      1. 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;
        }
        
        1. 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']){