Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
else error [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
else error


 
aless123
16-03-2008, 16:47 
 
Hi

ich bekomme bei meinem script den error:


Parse error: syntax error, unexpected T_ELSE in /opt/lampp/htdocs/tescht.php on line 56

ich hab viel versucht, find dn fehler aber nicht

<?php

if ($_SESSION['login_status'] == 1) {

$server = $_GET["server"];
$char = $_GET["char"];

if (($server == "") AND ($char == "")) {

$login = $_SESSION['login'];

$db = mysql_connect("localhost","root","omg147rofl123") or mysql_die("Unable to connect");
mysql_select_db("browsergame",$db);

$result1 = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'");
list($account_id) = mysql_fetch_row($result1);

mysql_close($db);

echo " <table border=\"0\" width=\"400\">";
echo " <tr>";
echo " <td width=\"400\">";
echo " <table border=\"0\">";
echo " <tr>";
echo " <td width=\"313\"><b>Name:</b></td>";
echo " <td width=\"313\"><b>Base Lvl:</b></td>";
echo " <td width=\"313\"><b>Job Lvl:</b></td>";
echo " </tr>";

$db = mysql_connect("localhost","root","omg147rofl123") or mysql_die("Unable to connect");
mysql_select_db("browsergame",$db);

$result2 = mysql_query("SELECT `name` FROM `char` WHERE `account_id`='$account_id'");
$result8 = mysql_query("SELECT `job_level` FROM `char` WHERE `account_id`='$account_id'");
$result9 = mysql_query("SELECT `base_level` FROM `char` WHERE `account_id`='$account_id'");
//for ($i=1; $i<12; $i++) {
for ($i=0; $i<12; $i++) {


echo " <tr>";
echo " <td width=\"313\"> ";

if (list($char_name) = mysql_fetch_row($result2))
echo $char_name;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_blvl) = mysql_fetch_row($result9))
echo $char_blvl;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_jlvl) = mysql_fetch_row($result8))
echo $char_jlvl;
echo " </td>";
else{
if ($i == 0) {
echo "<font color=\"#C80000\"><b>";
echo "Du hast keine Characktere auf tROpico<br>";
echo "</font></b>";
} else
echo "&nbsp;";
};

echo " </td>";
echo " </tr>";

}


mysql_close($db);

echo " </table>";
echo " </td>";
echo " </tr>";
echo "</table>";

} else if (($server != "") AND ($char != "")) {

$login = $_SESSION['login'];

$db = mysql_connect("localhost","root","omg147rofl123") or mysql_die("Unable to connect");
mysql_select_db("browsergame",$db);

$result1 = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'");
list($account_id) = mysql_fetch_row($result1);

mysql_close($db);

if ($server == "tROpico") {
$db = mysql_connect("localhost","root","omg147rofl123") or mysql_die("Unable to connect");
mysql_select_db("browsergame",$db);
}

if ($server == "Chaos") {
$db = mysql_connect("localhost","root","omg147rofl123") or mysql_die("Unable to connect");
mysql_select_db("browsergame",$db);
}

mysql_query("UPDATE `char` SET `last_map`='prontera', `last_x`='156', `last_y`='189', `save_map`='prontera', `save_x`='156', `save_y`='189' WHERE `name`='$char' AND `account_id`='$account_id'");
mysql_close($db);

echo "Dein Charackter ".$char." auf ".$server." wurde erfolgreich nach Prontera versetzt.<br><br>";

};

};

?>

 
Manko10
16-03-2008, 16:49 
 
Hi,

wie fändest du die Idee, eine schließende geschweifte Klammer vor das else zu setzen? ;)

 
asp2php
16-03-2008, 16:51 
 
Meine Güte ... zähle doch die { und }, wenn du selbst dabei nicht in der Lage bist, dann lass es mit dem Programmieren sein :motz:

z.B. for (...) { aber kein }

und Regel lesen :teach:

 
Manko10
16-03-2008, 16:53 
 
Ja und bei genauerer Betrachtung des ganzen sehe ich auch, dass du manchmal beim if Klammern setzt, aber beim else nicht. An sich erlaubt, wenn nur eine Zeile folgt, aber das führt zu eben solchen Problemen.
Wenn du richtig einrücken würdest, sähest du auch sofort, wo etwas fehlt.

 
aless123
16-03-2008, 17:02 
 
ich habe gerade gesehen, dass ich 8 schliesende und 8 offene habe, auf die idee vor das else ne } zu setzen kam ich auch schon nur nützt das nichts, falls ihr denkt ich hab 9 offene so stimmt dasnciht, da ich eine mit // auskommentiert habe
MfG Aless

 
Manko10
16-03-2008, 17:04 
 
Ich könnte mich jetzt hinsetzen, den Code vernünftig formatieren und die Klammern setzen. Ich kann dir aber auch sagen, dass du es selbst tun kannst.
Fang oben an und rücke jeden Block mit 4 Leerzeichen ein (zuerst alle führenden Leerzeichen entfernen). Dabei achtest du darauf, dass auch alle Blöcke in Klammern gefasst sind.
Als Tipp: die meisten Editoren bieten die Funktion, Klammerpaare hervorzuheben. Mache Gebrauch davon!

 
asp2php
16-03-2008, 17:05 
 
wir sagen nichts, bis du unsere Regel gelesen und entsprechend geändert hast :motz:
http://www.php-resource.de/forum/showthread.php?s=&threadid=50454

 
aless123
16-03-2008, 17:12 
 
also:

mein script sieht wie folgt aus:

<?php
error_reporting(E_ALL);
ini_set("display_errors", ON);
if ($_SESSION['login_status'] == 1) {

$server = $_GET["server"];
$char = $_GET["char"];

if (($server == "") AND ($char == "")) {

$login = $_SESSION['login'];

$db = mysql_connect("localhost","root","dddrofl123") or mysql_die("Unable to connect");
mysql_select_db("scityro-server",$db);

$result1 = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'");
list($account_id) = mysql_fetch_row($result1);

mysql_close($db);

echo " <table border=\"0\" width=\"400\">";
echo " <tr>";
echo " <td width=\"400\">";
echo " <table border=\"0\">";
echo " <tr>";
echo " <td width=\"313\"><b>Name:</b></td>";
echo " <td width=\"313\"><b>Base Lvl:</b></td>";
echo " <td width=\"313\"><b>Job Lvl:</b></td>";
echo " </tr>";

$db = mysql_connect("localhost","root","dddrofl123") or mysql_die("Unable to connect");
mysql_select_db("scityro-server",$db);

$result2 = mysql_query("SELECT `name` FROM `char` WHERE `account_id`='$account_id'");
$result8 = mysql_query("SELECT `job_level` FROM `char` WHERE `account_id`='$account_id'");
$result9 = mysql_query("SELECT `base_level` FROM `char` WHERE `account_id`='$account_id'");

for ($i=0; $i<12; $i++) {


echo " <tr>";
echo " <td width=\"313\"> ";

if (list($char_name) = mysql_fetch_row($result2))
echo $char_name;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_blvl) = mysql_fetch_row($result9))
echo $char_blvl;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_jlvl) = mysql_fetch_row($result8))
echo $char_jlvl;
echo " </td>";
else{
if ($i == 0) {
echo "<font color=\"#C80000\"><b>";
echo "Du hast keine Characktere auf tROpico<br>";
echo "</font></b>";
} else
echo "&nbsp;";
};

echo " </td>";
echo " </tr>";

}


mysql_close($db);

echo " </table>";
echo " </td>";
echo " </tr>";
echo "</table>";

} else if (($server != "") AND ($char != "")) {

$login = $_SESSION['login'];

$db = mysql_connect("localhost","root","dddrofl123") or mysql_die("Unable to connect");
mysql_select_db("scityro-server",$db);

$result1 = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'");
list($account_id) = mysql_fetch_row($result1);

mysql_close($db);

if ($server == "tROpico") {
$db = mysql_connect("localhost","root","dddrofl123") or mysql_die("Unable to connect");
mysql_select_db("scityro-server",$db);
}

if ($server == "Chaos") {
$db = mysql_connect("localhost","root","dddrofl123") or mysql_die("Unable to connect");
mysql_select_db("scityro-server",$db);
}

mysql_query("UPDATE `char` SET `last_map`='prontera', `last_x`='156', `last_y`='189', `save_map`='prontera', `save_x`='156', `save_y`='189' WHERE `name`='$char' AND `account_id`='$account_id'");
mysql_close($db);

echo "Dein Charackter ".$char." auf ".$server." wurde erfolgreich nach Prontera versetzt.<br><br>";


};

};

?>

ich bekomme diese fehler hier:

Parse error: syntax error, unexpected T_ELSE in /opt/lampp/htdocs/tescht.php on line 57

ich habe die { und } gezählt sind jeweils 8 also das passt auch, ich weiß wirklich nicht wo der fehler liegt, ich hoffe ihr könnt mir helfen und hoffe das mit meinem post alles in ordnung ist


MfG Aless

 
Manko10
16-03-2008, 17:14 
 
Das ist schön, dass du jetzt 8 Paare hast, aber wenn die falsch verschachtelt sind, dann hilft das niemandem.
Bitte beherzige meine Ratschläge und den von asp2php.

 
Griecherus
16-03-2008, 17:14 
 
for ($i=0; $i<12; $i++) {


echo " <tr>";
echo " <td width=\"313\"> ";

if (list($char_name) = mysql_fetch_row($result2))
echo $char_name;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_blvl) = mysql_fetch_row($result9))
echo $char_blvl;
echo " </td>";

echo " <td width=\"313\">";
if (list($char_jlvl) = mysql_fetch_row($result8))
echo $char_jlvl;
echo " </td>";
else{

 
asp2php
16-03-2008, 17:15 
 
da du absichtlich unsere Regel ignorierst. wandert nun den Thread in den Müll. Du darfst neue erstellen nach dem du unsere Regel Achtung schenkst.

Und wenn nicht ... bannen kostet mich nur einen Maus-Klick :teach:


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:23 Uhr.