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

6 réponses

  1. 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
  2. Snip714 Messages postés 249 Statut Membre 65
     
    Merci, c'est déjà mieux ;)
    0
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Snip714 Messages postés 249 Statut Membre 65
     
    Merci beaucoup à vous deux !
    0
  7. 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