Parse error: syntax error, unexpected T_CASE in /usr/export/www//_____/admin

Schuss ins Blaue - du hast den switch schon geschlossen, feuerst aber weiter mit case um dich.

Edit: Mein Editor zeigt mir sogar genau die Stelle an, an der das Switch geschlossen wird. Etwas nachforschen und du hättest das Selbst herausgefunden.
Zeile 482.
 
hmm wie gesagt bin nicht so der , der php kann... kanst du mir sagen noch besser zeigen wo was hin muss... also hier das richtige reinposten... wäre echt lieb..
 
Hi.

Ich hab deinen Code mal ordentlich formatieren lassen (warum verwendest du keinen vernünftigen Editor der soetwas automatisch macht?):
PHP:
<?php

rights = getRights();

if(!in_array("Admin", $rights)) {
    no_rights();
    
}
//line 3
else {
    
    switch(@$_GET['action']) {
        
        case "add":
            break;
        
        case "edit":
            break;
        
        case "del":
            break;

        default:
            echo "<p>\n";
        
            echo " Bitte benutzen sie nur einen Link aus dem Adminmenu.\n";
        
            echo " <a href=\"index3.php?section=admin&amp;
            ".SID."\">\n";
        
            echo " Zurück zum Adminbereich\n";
        
            echo " </a>\n";
        
            echo "</p>\n";
            
            break;
    }
    
    case "add":
    if(isset($_POST['submit'])) {
        //line 20
        if(!preg_match('/^\w+$/', trim($_POST['name']))) {
            
            echo "<p>\n";
            
            echo " Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
            
            echo "</p>\n";
            
            echo "<p>\n";
            
            echo " <a href=\"index3.php?section=admin&amp;
            site=user&amp;
            action=add&amp;
            ".SID."\">\n";
            
            echo " Zurück zum Formular\n";
            
            echo " </a>\n";
            
            echo "</p>\n";
            
        }

Da sieht man jetzt sofort wo das Problem ist. Zu welchem switch gehört das case in Zeile 39?

Außerdem ist es nur sinnvoll den default: Fall in einer switch Anweisung als letzte Alternative aufzulisten.

Gruß
 
Zuletzt bearbeitet:
hmm danke wo tuhe ich den abschnitt denn rein oder besser gesagt mit welchen abscnitt ersetze ich ihn kanst mich gerne anrufen wenn du magst...051562619833
welchen editor (in deutsch) kanst du mir denn empfehlen?
 
Das ist doch alles nicht so schwer.

Formatieren kannst du deine Dateien z.B. hier: http://www.phpformatter.com/

Ein guter Editor ist z.B. Eclipse mit dem PDT Plugin oder Aptana.

Dann solltest du vermutlich den Code erweitern und hattest als Vorlage sowas:
PHP:
switch (@$_GET['action'])
{
      case "add":
          break;
          
      case "edit":
          break;
          
      case "del":
          break;
          
      default:
          echo "<p>\n";
          
          echo " Bitte benutzen sie nur einen Link aus dem Adminmenu.\n";
          echo " <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
          echo " Zurück zum Adminbereich\n";
          echo " </a>\n";
          echo "</p>\n";
          
          break;
}
Jetzt mußt du doch nur die leeren case Anweisungen durch deine Implementierung ersetzen und nicht deinen Code hinten dran hängen.

Ach, ehe ich dir das jetzt erkläre...
PHP:
<?php
  $rights = getRights();
  if (!in_array("Admin", $rights)) {
      no_rights();
  }
  //line 3
  else {
      switch (@$_GET['action']) {
          case "add":
              if (isset($_POST['submit'])) {
                  //line 20
                  if (!preg_match('/^\w+$/', trim($_POST['name']))) {
                      echo "<p>\n";
                      echo "    Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
                      echo "</p>\n";
                      echo "<p>\n";
                      echo "    <a href=\"index3.php?section=admin&amp;site=user&amp;action=add&amp;" . SID . "\">\n";
                      echo "        Zurück zum Formular\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  } elseif (trim($_POST['email']) == "") {
                      echo "<p>\n";
                      echo "    Bitte geben sie eine Emailadresse an.\n";
                      echo "</p>\n";
                      echo "<p>\n";
                      echo "    <a href=\"index3.php?section=admin&amp;site=user&amp;action=add&amp;" . SID . "\">\n";
                      echo "        Zurück zum Formular\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  } else {
                      // zufallspassword erstellen
                      $password = substr(md5(microtime()), 0, 8);
                      $sql = "INSERT INTO
          users(Name, Email, Password)
          VALUES
          ('" . trim($_POST['name']) . "',
          '" . addslashes(trim($_POST['email'])) . "',
          MD5('" . $password . "'));";
                      $result = mysql_query($sql) or die(mysql_error());
                      if (isset($_POST['send'])) {
                          // Login-Daten per Email schicken
                          $mailbody = "Zugangsdaten zur Homepage:\n";
                          $mailbody .= "Name: " . trim($_POST['name']) . "\n";
                          $mailbody .= "Password: " . $password . "\n";
                          $mailbody .= "Bitte loggen sie sich ein und ändern sie das Password.\n";
                          if (mail(trim($_POST['email']), "Zugangsdaten", $mailbody)) {
                              echo "<p>\n";
                              echo "    Account wurde hinzugefügt und die Zugangsdaten wurden zum\n";
                              echo "    Benutzer geschickt.\n";
                              echo "</p>\n";
                              echo "<p>\n";
                              echo "    <a href=\"index.ph3p?section=admin&amp;" . SID . "\">\n";
                              echo "        Zurück zum Adminbereich\n";
                              echo "    </a>\n";
                              echo "</p>\n";
                          } else {
                              echo "<p>\n";
                              echo "    Account wurde hinzugefügt, doch es konnte keine Email\n";
                              echo "    verschickt werden.\n";
                              echo "</p>\n";
                              echo "<p>\n";
                              echo "    Logindaten <br />\n";
                              echo "    Name: " . trim($_POST['name']) . "<br />\n";
                              echo "    Password: " . $password . "<br />\n";
                              echo "</p>\n";
                              echo "<p>\n";
                              echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                              echo "        Zurück zum Adminbereich\n";
                              echo "    </a>\n";
                              echo "</p>\n";
                          }
                      } else {
                          echo "<p>\n";
                          echo "    Account wurde hinzugefügt.\n";
                          echo "</p>\n";
                          echo "<p>\n";
                          echo "    Logindaten <br />\n";
                          echo "    Name: " . trim($_POST['name']) . "<br />\n";
                          echo "    Password: " . $password . "<br />\n";
                          echo "</p>\n";
                          echo "<p>\n";
                          echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                          echo "        Zurück zum Adminbereich\n";
                          echo "    </a>\n";
                          echo "</p>\n";
                      }
                  }
              } else {
                  echo "<form " . "action=\"index3.php?section=admin&amp;site=user&amp;action=add\" " . "method=\"post\" " . "class=\"formular\">\n";
                  echo "    <p>\n";
                  echo "        Neuen Benutzer hinzufügen\n";
                  echo "    </p>\n";
                  echo "    <ol>\n";
                  echo "        <li>\n";
                  echo "            <label for=\"name\">Name</label>\n";
                  echo "            <input type=\"text\" name=\"name\" id=\"name\" />\n";
                  echo "        </li>\n";
                  echo "        <li>\n";
                  echo "            <label for=\"email\">Emailadresse</label>\n";
                  echo "            <input type=\"text\" name=\"email\" id=\"email\" />\n";
                  echo "        </li>\n";
                  echo "        <li>\n";
                  echo "            <label for=\"send\">\n";
                  echo "                Zugangsdaten per Email zuschicken lassen\n";
                  echo "            </label>\n";
                  echo "            <input type=\"checkbox\" name=\"send\" id=\"send\" />\n";
                  echo "        </li>\n";
                  echo "        <li>\n";
                  echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer hinzufügen\" />\n";
                  echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                  echo "            <input type=\"hidden\" name=\"" . session_name() . "\" " . "value=\"" . session_id() . "\" />\n";
                  echo "        </li>\n";
                  echo "    <ol>\n";
                  echo "</form>\n";
                  echo "<p>\n";
                  echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                  echo "        Zurück zum Adminbereich\n";
                  echo "    </a>\n";
                  echo "</p>\n";
              }
              break;
          case 'del':
              if (isset($_POST['submit'])) {
                  if (!$_POST['uid']) {
                      // gucken ob == 0 ist
                      echo "<p class=\"error\">\n";
                      echo "    Bitte wählen sie einen Benutzer aus<br />\n";
                      echo "    <a href=\"index3.php?section=admin&amp;site=user&amp;action=del\">\n";
                      echo "        Zurück zum Formular\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  } else {
                      $sql = "DELETE FROM
          user_rights
          WHERE
          UserID = '" . $_POST['uid'] . "';";
                      mysql_query($sql) or die(mysql_error());
                      $sql = "DELETE FROM
          users
          WHERE
          ID = '" . $_POST['uid'] . "';";
                      mysql_query($sql) or die(mysql_error());
                      echo "<p>\n";
                      echo "    Der User wurde gelöscht.\n";
                      echo "</p>\n";
                      echo "<p>\n";
                      echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                      echo "        Zurück zum Adminbereich\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  }
              } else {
                  echo "<form " . "action=\"index3.php?section=admin&amp;site=user&amp;action=del\" " . "method=\"post\" " . "class=\"formular\">\n";
                  echo "    <p>\n";
                  echo "        Benutzer löschen\n";
                  echo "    </p>\n";
                  echo "    <ol>\n";
                  echo "        <li>\n";
                  echo "            <label for=\"name\">Benutzer</label>\n";
                  $sql = "SELECT
          Name, ID
          FROM
          users
          ORDER BY
          Name ASC;";
                  $result = mysql_query($sql) or die(mysql_error());
                  echo "                <select id=\"name\" name=\"uid\">\n";
                  echo "                    <option value=\"0\" selected=\"selected\">Bitte einen User wählen</option>\n";
                  while ($row = mysql_fetch_assoc($result)) {
                      echo "<option value=\"" . $row['ID'] . "\">" . $row['Name'] . "</option>\n";
                  }
                  echo "                </select>\n";
                  echo "        </li>\n";
                  echo "        <li>\n";
                  echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer löschen\" />\n";
                  echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                  echo "            <input type=\"hidden\" name=\"" . session_name() . "\" " . "value=\"" . session_id() . "\" />\n";
                  echo "        </li>\n";
                  echo "    <ol>\n";
                  echo "</form>\n";
                  echo "<p>\n";
                  echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                  echo "        Zurück zum Adminbereich\n";
                  echo "    </a>\n";
                  echo "</p>\n";
              }
              break;
          case 'edit':
              if (isset($_POST['submit']) and "Benutzer auswählen" == $_POST['submit']) {
                  if (!$_POST['uid']) {
                      echo "<p class=\"error\">\n";
                      echo "    Bitte wählen sie einen Benutzer aus<br />\n";
                      echo "    <a href=\"index3.php?section=admin&amp;site=user&amp;action=del\">\n";
                      echo "        Zurück zum Formular\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  }
                  // Die UserID in der Session speichern.
                  else {
                      $_SESSION['uid'] = $_POST['uid'];
                      // Die Rechte vom User holen
                      $rights = getRights($_SESSION['uid']);
                      $sql = "SELECT
           Name
           FROM
           users
           WHERE
           ID = '" . $_SESSION['uid'] . "';";
                      $result = mysql_query($sql) or die(mysql_error());
                      $Name = mysql_result($result, 0);
                      echo "<form " . "action=\"index3.php?section=admin&amp;site=user&amp;action=edit\" " . "method=\"post\" " . "class=\"formular\">\n";
                      echo "    <p>\n";
                      echo "        Benutzer " . $Name . " bearbeiten\n";
                      echo "    </p>\n";
                      echo "    <ol>\n";
                      echo "        <li>\n";
                      echo "            Rechte:\n";
                      $allRights = array();
                      $allRights[] = "Admin";
                      // .. und weitere
                      $allRights[] = "News";
                      sort($allRights);
                      echo "            <ul>\n";
                      foreach ($allRights as $value) {
                          echo "<li>\n";
                          echo "    <input id=\"" . $value . "\" type=\"checkbox\" name=\"rights[]\"";
                          if (in_array($value, $rights)) {
                              echo " checked=\"checked\"";
                          }
                          echo " value=\"" . $value . "\" />\n";
                          echo "    <label for=\"" . $value . "\">" . $value . "</label><br />\n";
                      }
                      echo "            </ul>\n";
                      echo "        </li>\n";
                      echo "        <li>\n";
                      echo "            <input type=\"submit\" name=\"submit\" value=\"Rechte speichern\" />\n";
                      echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                      echo "            <input type=\"hidden\" name=\"" . session_name() . "\" " . "value=\"" . session_id() . "\" />\n";
                      echo "    </ol>\n";
                      echo "</form>\n";
                      echo "<p>\n";
                      echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                      echo "        Zurück zum Adminbereich\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  }
              } elseif (isset($_POST['submit']) and "Rechte speichern" == $_POST['submit']) {
                  if (!isset($_POST['rights'])) {
                      echo "<p class=\"error\">\n";
                      echo "    Sie müssen mindestens ein Recht angeben.\n";
                      echo "</p>\n";
                  } else {
                      $sql = "DELETE FROM
            user_rights
            WHERE
            UserID = '" . $_SESSION['uid'] . "';";
                      // alle Vorhandenen Rechte löschen
                      mysql_query($sql) or die(mysql_error());
                      // und nun die angewählten hinzufügen
                      foreach ($_POST['rights'] as $right) {
                          $sql = "INSERT INTO
            user_rights(userID, Recht)
            VALUES
            ('" . $_SESSION['uid'] . "',
            '" . $right . "');";
                          mysql_query($sql) or die(mysql_error());
                      }
                      echo "<p>\n";
                      echo "    Die Rechte wurden gespeichert.\n";
                      echo "</p>\n";
                      echo "<p>\n";
                      echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
                      echo "        Zurück zum Adminbereich\n";
                      echo "    </a>\n";
                      echo "</p>\n";
                  }
              } else {
                  echo "<form " . "action=\"index3.php?section=admin&amp;site=user&amp;action=edit\" " . "method=\"post\" " . "class=\"formular\">\n";
                  echo "    <p>\n";
                  echo "        Benutzer bearbeiten\n";
                  echo "    </p>\n";
                  echo "    <ol>\n";
                  echo "        <li>\n";
                  echo "            <label for=\"name\">Benutzer</label>\n";
                  $sql = "SELECT
            Name, ID
            FROM
            users
            ORDER BY
            Name ASC;";
                  $result = mysql_query($sql) or die(mysql_error());
                  echo "                <select id=\"name\" name=\"uid\">\n";
                  echo "                    <option value=\"0\" selected=\"selected\">Bitte einen User wählen</option>\n";
                  while ($row = mysql_fetch_assoc($result)) {
                      echo "<option value=\"" . $row['ID'] . "\">" . $row['Name'] . "</option>\n";
                  }
                  echo "                </select>\n";
                  echo "        </li>\n";
                  echo "        <li>\n";
                  echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer auswählen\" />\n";
                  echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                  echo "            <input type=\"hidden\" name=\"" . session_name() . "\" " . "value=\"" . session_id() . "\" />\n";
                  echo "        </li>\n";
                  echo "    <ol>\n";
                  echo "</form>\n";
                  echo "<p>\n";
                  echo "    <a href=\"index.php3?section=admin&amp;" . SID . "\">\n";
                  echo "        Zurück zum Adminbereich\n";
                  echo "    </a>\n";
                  echo "</p>\n";
              }
              break;
              
          default:
              echo "<p>\n";
              echo "    Bitte benutzen sie nur einen Link aus dem Adminmenu.\n";
              echo "    <a href=\"index3.php?section=admin&amp;" . SID . "\">\n";
              echo "        Zurück zum Adminbereich\n";
              echo "    </a>\n";
              echo "</p>\n";
              break;
      }
  }
?>
Gruß

PS: Deine Telefon-Nr. und Email-Adresse öffentlich hier reinzustellen finde ich auch mutig. Viel Spaß mit dem (Telefon-)Spam. ;-]
 
Zuletzt bearbeitet:
Zurück