Parse error: syntax error, unexpected T_VARIABLE, s'attendant à T_FUNCTION
Quelqu'un pourrait-il me dire ce que je fais mal?
Je veux afficher les utilisateurs en ligne sur certaines chambres.
le code ci-dessous est la fonction qui appelle mon online.php c'est sous mes chat.php
lorsque je charge la page cette fonction aussi des charges.
function whos_online() {
if ( window.XMLHttpRequest ) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "online.php?room=<?php $_SESSION['room']?>", false);
xmlhttp.send();
document.getElementById("whos_online").innerHTML = xmlhttp.responseText;
}
ONLINE.PHP
c'est le contenu de mon online.php
<link rel="stylesheet" type="text/css" href="style.css" />
<?php
session_start();
include 'db.inc.php';
class WhosOnline{
$rn = $_GET['room'];
protected $get_status_query = "SELECT * FROM `online_users` WHERE `room` = '{$rn}'";
public function DisplayUsers(){
$get_current_status = mysql_query( $this->get_status_query );
if( mysql_num_rows( $get_current_status ) != 0 ) {
while( $row_status = mysql_fetch_array( $get_current_status ) ) {
if( $_SESSION['username'] == true ) {
echo "<div class='online_margin'>
<b>".base64_decode($row_status['username'])."</b>
</div>
<hr style='border: 0; border-top: solid 1px #D8D8D8;margin: 5px 10px 5px 10px;' />";
}
}
}
}
}
$Online = new WhosOnline;
$Online->DisplayUsers();
?>
Toute aide?
Vous avez fait un type quelque part, regardez-vous dans le quartier de l'erreur et de voir si il y a une erreur de syntaxe.
qu'entendez-vous par type?. l'erreur des points de $rn = $_GET['salle']; et je ne sais pas pourquoi.
Ce n'est pas la façon dont vous devriez le faire. Jamais.
Doit avoir été faute de frappe. Et vous ne pouvez pas avoir de code à l'intérieur d'une classe, seulement à l'intérieur d'une méthode d'une classe.
qu'entendez-vous par type?. l'erreur des points de $rn = $_GET['salle']; et je ne sais pas pourquoi.
Ce n'est pas la façon dont vous devriez le faire. Jamais.
Doit avoir été faute de frappe. Et vous ne pouvez pas avoir de code à l'intérieur d'une classe, seulement à l'intérieur d'une méthode d'une classe.
OriginalL'auteur user1232117 | 2012-05-01
Vous devez vous connecter pour publier un commentaire.
Ok, même ce qui donne une erreur:
Cela donne aussi une erreur:
L'erreur est parce que vous essayez de définir une variable en fonction d'une autre variable dans la définition de classe. Vous pourriez le faire dans le constructeur. Ou vous pouvez définir les membres de la classe basées sur des CONSTANTES (comme vous le faisiez avec la chaîne de requête). Mais pourquoi ne pas réécrire votre WhosOnline méthode comme ceci:
Cela va également supprimer toutes les erreurs potentielles que vous pourriez avoir avec
$this->
références manquantes.sur mon post original, il rappelle à online.php numéro de la ligne 10
Ah, désolé, j'ai copié qu'à partir de ci-dessus. Mais une autre erreur. Comme on dit au-dessus, c'est pour le lecteur à mettre en œuvre 😉 Plutôt utiliser mysql_safe_string(..). La modification a été effectuée.
alors que dois-je faire maintenant, après la suite de votre code?
est mysql_safe_string de travail pour vous?
OriginalL'auteur craigmj
C'est une mauvaise habitude que vous avez besoin pour briser MAINTENANT.
Mise en œuvre de
sanitize()
est laissé au lecteur.Vous ne pourriez pas prendre le temps de répondre à sa question dans ce post? Grand point à propos de vulnérabilité d'injection, mais ce n'est pas une réponse...
Vous avez raison. Ce n'est pas une réponse. C'est un la solution.
Je suis d'accord que c'est évidemment quelque chose qui doit être appris, mais la réponse est bien si simple qu'il semble tout simplement ridicule de ne pas l'inclure. En tout cas @user1232117, la réponse à votre question ci-dessous, mais vous devez vous certainement suivez ces conseils ainsi.
Votre approche n'est pas beaucoup mieux. Ne pas construire des requêtes de cette façon. Utiliser les requêtes préparées.
OriginalL'auteur Ignacio Vazquez-Abrams
vous ne pouviez pas initialisé la variable directement dans la classe , essayez cette
3
ou"I am a string"
Je veux dire les variables post et de l'initialisation de la requête
Eh bien, c'est correct.
Peut-être ajouter de l'initialisation dans le constructeur.
J'ai aussi essayé cela, il ne résout pas le problème
OriginalL'auteur Moyed Ansari