• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bereich der nur zugänglich ist für Benutzer mit einem bestimmten Jahrgang

Marvin231

Neues Mitglied
Hi, ich hab ne Frage ich habe eine Web-App mit einem geschützten Bereich erstellt. Man kann sich dort registrieren und Benutzername, Passwort und Jahrgang werden an die Datenbank gesendet. Nun soll noch ein Bereich erstellt werden in den nur Benutzer nur mit einem bestimmten Jahrgang rein können. Zum Beispiel wenn man in der Registration den Jahrgang 1997 eingegeben hat und der Bereich nur für Personen mit dem Jahrgang 1997 zugänglich ist, dann wird er in diesen Bereich weitergeleitet. Wenn man einen anderen Jahrgang hat, dann darf man nicht in diesen Bereich. Meine Frage ist nun, wie der PHP Skript dazu lautet.
 
hallö,

" Meine Frage ist nun, wie der PHP Skript dazu lautet."

was erwartest da für eine antwort?
das ist eine einfach if abfrage.
wenn dir das app geschrieben hast dürfte das kein Problem sein.

cheffchen
 
Wobei zu erwähnen ist, dass es für Bereiche die dem Jugendschutz unterliegen im Web auch verschiedene Dienste gibt die so eine Prüfung zuverlässiger durch zusätzliche Tests durchführen können als eine if-Bedingung. Falls es dir um solche Inhalte geht, solltest Du dich eher darüber informieren um dich letztlich auch rechtlich abzusichern. Wenn es nur um einen einfachen Schutz für nicht rechtlich relevante Inhalte geht, bau dir eine if-Bedingung aus o.g. Vorlage.
 
Ich hab jetzt das Script so erstellt:
PHP:
 <?phpsession_start(); mysql_connect("localhost", "mbsp_lgr", "lgr#123")    or die("Fehler im System"); mysql_select_db("mbsp_lgr")    or die ("Verbindung zur Datenbank war nicht möglich...");mysql_query("SELECT jahrgang FROM login = '$jahrgang'"); if($jahrgang == "1997") { ?> <!DOCTYPE html><html lang="en">    <head>        <meta charset="utf-8" />        <title></title>    </head>    <body><h3>Hello</h3>     </body></html>         <?php}        ?>
Es funktioniert aber nicht. Kann mir jemand sagen wo der Fehler ist. Es soll einfach nur der Text Hello ausgegeben werden.
 
Zuletzt bearbeitet:
Es funktioniert aber nicht.
Das ist keine genaue Fehlerbeschreibung.
Richtig debuggen

  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
Noch 2 kleine Anregungen für Dich.
  1. Da mysql spätestens in der PHP-Version 6 nicht mehr verfügbar ist nutze stattdessen mysqli oder PDO.
  2. Schreibe SQL-Anweisungen nicht direkt in die Funktion, sondern gehe den Weg, dass Du das Statement zuerst in eine Variable schreibst und dann die Variable dem mysql_query mitgibst. Dann hast Du die Möglichkeit im Fehlerfall Dir mal schnell per echo() den Query-String auszugeben. Das könnte so aussehen:
    PHP:
    $sql = "SELECT `feld1` FROM `tabelle` WHERE `feld2` = ".$feld2.";";
    mysql_query($sql);
    Im Fehlerfall reicht dann ein einfaches
    PHP:
    echo $sql."<br />";
    um Dir das zusammengesetzte SQL-Statement anzeigen zu lassen.
 
Zurück
Oben