PHP: syntax error, unexpected T_STRING
J'obtiens une erreur de syntaxe pour ce code PHP
syntax error, unexpected T_STRING
Il dit de la ligne 2, qui est la ligne include:
<?php
include 'config.inc.php';
//initialization
$photo_upload_fields = '';
$counter = 1;
//If we want more fields, then use, preupload.php?number_of_fields=20
$number_of_fields = (isset($_GET['number_of_fields'])) ?
(int)($_GET['number_of_fields']) : 5;
//Firstly Lets build the Category List
$result = mysql_query('SELECT category_id,category_name FROM gallery_category');
while($row = mysql_fetch_array($result)) {
$photo_category_list .= <<<__HTML_END
<option value="$row[0]">$row[1]</option>\n
__HTML_END;
}
mysql_free_result( $result );
//Lets build the Image Uploading fields
while($counter <= $number_of_fields) {
$photo_upload_fields .= <<<__HTML_END
<tr><td>
Photo {$counter}:
<input name="photo_filename[]"
type="file" />
</td></tr>
<tr><td>
Caption:
<textarea name="photo_caption[]" cols="30"
rows="1"></textarea>
</td></tr>
__HTML_END;
$counter++;
}
//Final Output
echo <<<__HTML_END
<html>
<head>
<title>Lets upload Photos</title>
</head>
<body>
<form enctype="multipart/form-data"
action="upload.php" method="post"
name="upload_form">
<table width="90%" border="0"
align="center" style="width: 90%;">
<tr><td>
Select Category
<select name="category">
$photo_category_list
</select>
</td></tr>
<! - Insert the image fields here -->
$photo_upload_fields
<tr><td>
<input type="submit" name="submit"
value="Add Photos" />
</td></tr>
</table>
</form>
</body>
</html>
__HTML_END;
?>
Inclure mon fichier ressemble à ceci:
<?php
$mysql_link = mysql_connect("localhost","user","password");
mysql_select_db("db_name") or die("Could not select database");
$images_dir = "photos";
?>
Solution:
J'avais invisible de l'unicode des caractères cachés dans le code qui a causé l'analyseur PHP, pour se plaindre de ce qui précède erreur de syntaxe.
- "plus ou moins"? L'erreur semble être lié au fichier inclus, de sorte qu'il serait mieux d'en savoir plus que moins.
- Supprimer (en commentaire) le comprennent-ligne pour voir si cette ligne trigs l'erreur ou non.
- Vous pourriez avoir un personnage invisible (un espace spécial ou similaire) quelque part par là. Vous pouvez essayer de supprimer la ligne incriminée et de la réécrire.
- Vérifier si u avez oublié de mettre " quelque part dans votre fichier de config
- Essayez (include 'config.inc.php');
- qui ne fonctionnera pas
- par "plus ou moins" je veux dire, j'ai seulement remplacé mon réel de l'utilisateur, mot de passe et le nom du serveur. Theres rien d'autre de différent à propos de ce fichier.
- Oups Faute De Frappe. Essayez include ('config.inc.php');
- Quand j'en commentaire la ligne 2, l'erreur passe à la ligne suivante. Donc, j'ai commencé à supprimer les espaces vides, et l'erreur continue à se déplacer vers le bas de la page. Je pense que @Juhana est correct-- j'ai des caractères invisibles et ont juste besoin de ré-écrire l'ensemble de la chose. MERCI!!!!
- J'ai trouvé que lors de la copie de quelques sources sur internet pour les éditeurs de texte, les caractères "à la recherche comme des" espaces sont en fait 0xA0 plutôt que 0x20, qui cause cette erreur!
Vous devez vous connecter pour publier un commentaire.
Vous disposez de plusieurs espaces au début et à la fin de votre syntaxe HEREDOC variables; cela conduit à des problèmes. Enlever les espaces après
et après
et votre code devrait fonctionner.
Voir aussi ce fil où j'ai trouvé la réponse: http://board.phpbuilder.com/board/showthread.php?t=10333424
Supprimer les premières lignes et les réécrire. Parfois, si vous copiez et collez code, il peut insérer unicode des caractères invisibles, qui ne sont pas analysé correctement par PHP. De sorte qu'il génère cette erreur. Il m'est arrivé plusieurs fois.
juste vous assurer que vous avez fermé toutes vous " et " dans le fichier que vous y compris. généralement, cette erreur est indiqué à la première ligne du fichier.
Utiliser l'inclue comme:
include("config.inc.php");
pour le droit de la syntaxe.