Fehlersuche (eine geschwungende Klammer zu wenig)

mille

Erfahrenes Mitglied
Fehlermeldung:

Parse error: parse error, unexpected $ in /home/www/htdocs/da-mille.de/boersenspiel/shout.php on line 64

Das bedeutet ja, das eine Fallunterscheidung nicht richtig beendet wurde! bzw die geschwungene Klammer fehlt!

Ich finde aber nach mehrmaligem durchgucken immer noch kein Fehler!

PHP:
<html>
<head>
<title>shoutb0x by millZ</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.content {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px}
.error {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-color: red}
.klein {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #AEAEAE}
-->
</style>
</head>


<?php 
	include("_config.php");
	$count = "0";
	if($page == "send"){ 
		if($shoutname && $shouttext && $shoutname != "Name" && $shouttext != "Nachricht"){
			$shoutname = htmlentities($shoutname);
			$shouttext = htmlentities($shouttext);
		 	$insert = "INSERT INTO boersenspiel_shoutbox (name,text) VALUES ('$shoutname','$shouttext')";
			if(mysql_query($insert)){ } else { $error = "Fehler beim Speichern...";} 
		} else 	{ $error = "Bitte die beiden Felder ordnungsgem&auml;&szlig; ausf&uuml;llen";}
	}
$select = "SELECT * FROM boersenspiel_shoutbox LIMIT 30";
$select = mysql_query($select);

?>



<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellspacing="0" cellpadding="0">

<?php 
WHILE ( $result = mysql_fetch_array($select))
{ 
$count++;
?>

  <tr <?php if($count =="2") { $count="0"; echo "bgcolor=\"#FFFFFF\"; } else { echo \"bgcolor="#0099FF\"";} ?>> 

   	<td width="100%" class="content">
	<b title="<?=$result[datumzeit]?>"> <?=$result[name]?> schrieb:</b>
	<?=$result[text]?>
	</td>
  </tr>

<?php } mysql_close(); ?>

  <tr bgcolor="#FFFFFF">
    <td width="9%" class="content">
	<?php if($error){ echo"<p class=\"error\">$error </p>"; } ?>
      <form name="form1" method="post" action="<?=$PHP_SELF?>?page=send">
        <input type="text" name="shoutname" size="80" value="Name">
        <br>
        <input type="text" name="shouttext" size="80" value="Nachricht">
        <br>
        <input type="submit" name="Abschicken" value="send">
      </form>
      <div align="right"><br>
        <span class="klein">&copy; by<a href="http://www.da-mille.de/v2" target="_blank" class="klein"> 
        www.da-mille.de</a> (S.Selka) </span></div>
    </td>
  </tr>
</table>
<p class="content">&nbsp;</p>
</body>
</html>

Es handelt sich hierbei um eine shoutbox für ein Schul"projekt"

Wäre für ein Tipp dankbar!
 
ich glaube ich habe den Fehler gefunden:
Die rote Klammer wurde nicht geschlossen...

<?php
include("_config.php");
$count = "0";
if($page == "send"){
if($shoutname && $shouttext && $shoutname != "Name" && $shouttext != "Nachricht"){
$shoutname = htmlentities($shoutname);
$shouttext = htmlentities($shouttext);
$insert = "INSERT INTO boersenspiel_shoutbox (name,text) VALUES ('$shoutname','$shouttext')";
if(mysql_query($insert)){ } else { $error = "Fehler beim Speichern...";}
} else { $error = "Bitte die beiden Felder ordnungsgem&auml;&szlig; ausf&uuml;llen";}
}
$select = "SELECT * FROM boersenspiel_shoutbox LIMIT 30";
$select = mysql_query($select);

?>

Slater
 
Hmm... Das sind eigentlich unnötige Fragen...
Ein PHPler muss auch debuggen können... Es gehört einfach dazu...
 
Das ist richtig, aber ich sehe dort absolut kein Fehler... ich hab das schon x-mal durchgeguggt, und vielleicht sieht ein anderer dann eher ein Fehler als ich!

Deshalb probier ich es einfach mal... aber die Idee von Slater haut nicht hin, diese Klammer wird geschlossen...

vielleicht noch wer anders eine Vorschlag wie ich den Fehler ausgemerzt bekomme?

~millE
 
hm! Andere Leute finden Fehler schneller als der Autor, deswegen finde ich so eine Frage gar nicht schlimm ;)

if($page == "send"){
if($shoutname && $shouttext && $shoutname != "Name" && $shouttext != "Nachricht"){
$shoutname = htmlentities($shoutname);
$shouttext = htmlentities($shouttext);
$insert = "INSERT INTO boersenspiel_shoutbox (name,text) VALUES ('$shoutname','$shouttext')";
//Hier würde ich mal eine geschweifte schließende Klammer hinmachen !
if(mysql_query($insert)){ } else { $error = "Fehler beim Speichern...";}
} else { $error = "Bitte die beiden Felder ordnungsgem&auml;&szlig; ausf&uuml;llen";}
}


Probier es einfach mal so aus ^^
 
<tr <?php if($count =="2") { $count="0"; echo "bgcolor=\"#FFFFFF\"; } else { echo \"bgcolor="#0099FF\"";} ?>>

ist falsch!

<tr <?php if($count =="2") { $count="0"; echo "bgcolor=\"#FFFFFF\""; } else { echo "bgcolor=\"#0099FF\"";} ?>>

ist richtig!

Du hast den String nicht geschloßen, es fehlt ein Anführungszeichen.

Edit: Ist aber wohl nicht der gesuchte Fehler
 
Zuletzt bearbeitet:
nun ich vermute mal das is ein config fehler...

das <?= is eigendlich nur für ASP erlaubt.. es muss <%= heißen.. außerdem musst du ASP Tags in der PHP.ini aktivieren,....

oder besser,,, überhaupt das script so umschreiben das du diese unnötigen ?> und <?php weg bringst.. schreib den text in eine variable und nutz str_replace...
Code:
$mytext =<<<SXEOF

egal was du nun hier schreibst, es wir als normaler text in die variablegeschrieben... auch wenn du hier anfängst mit " " '' oder gar $ <?php oder ?> rumzubasteln.. es wird alles ignoriert...
SXEOF; // <-- das ende des strings, muss als erstes und alleine in einer zeile stehen....und den selben namen haben wie der den du beim <<< operator angegeben hast... (nein das is kein shift sondern ein relativ wenig bekannter textzuweisungsoperator).....


nun also gehste nur noch her und setzt an bestimmten stellen so {name} und so weiter tags.. die du dann einfach mit str_replace ersetzen kannst...

damit wird das ganze um einiges weniger fehleranfällig, du bekommst ne menge unnötiger sachen raus, und der fehler wird damit hoffendlich auch gleichzeitig behoben..
 
Hallo,

nun ich vermute mal das is ein config fehler...

das <?= is eigendlich nur für ASP erlaubt.. es muss <%= heißen.. außerdem musst du ASP Tags in der PHP.ini aktivieren,....
deine Vermutung ist falsch
PHP:
<?=  
echo

Das ist beides das selbe nur das das ober eine Kurzform ist.

<% ASP %>

Das sind ASP Tags

Warum soll ein PHPler in der PHP.INI das ändern ?
Ausser einer der immer ASP Codet und mal PHP wegen der Gewohnheit.

Nur dann ist sein Script nicht flexibel genung denn auf einem anderem Webspace
wäre da denn ein Problem wenn der Provider das in der PHP.ini nicht so hat.

euer SaTaN
 
Ich muss Scope recht geben, im letzten Trockendurchlauf (im Kopf) bi ich auf den Fehler beim echo gestoßen... nur daran lag es (mal wieder)

Es sind halt immer nur die Kommas, slash's und Semikolons die alles versaun hehe*

~millZ
 
Zurück