+ Antworten
Ergebnis 1 bis 11 von 11

Thema: ... ein paar grundlegende Fragen

  1. #1
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719

    ... ein paar grundlegende Fragen

    Hallo, ich habe ein paar Fragen.

    a) Wie kann ein Anwender in einem Formularfeld seinen Text selbst formatieren? Es geht nicht nur um Schriftgrößte, Farbe, usw., störend ist schon das der Zeilenumbruch nicht unterstützt wird.

    b)Gibt es einen php Befehl der bestimmt, welche Seite aufgerufen werden soll? Ich habe mir das so vorgestellt: wenn sich User A anmeldet, dann springe auf die Seite a.php, wenn sich User B anmeldet, dann springe auf die Seite b.php, usw.
    Ist dem User die URL bekannt, dann soll er die Seite nicht direkt über die Adresszeile aufrufen können (sondern immer nur über das Loginfenster). Dabei wären wir schon bei der nächsten Frage:

    c)Reicht der isset Befehl aus, damit der User die Seite nicht direkt über die Adresszeile aufrufen kann? Oder gibt es eine Sicherheitslücke?

    d)Mich würde zudem interessieren, wie man eine Benutzerabfrage (Login) mit mysql üblicherweise aufbaut. Ich möchte es so realisieren: ich erstelle in mysql eine Tabelle mit Benutzername, Passwort und Emailadresse. Wenn der User seine Anmeldedaten eingibt und das Formular abschickt, dann soll zunächst der Benutzername (BN) mit der Datenbank verglichen werden. BN nicht vorhanden --> Fehlermeldung: "Benutzername existiert nicht". BN vorhanden --> überprüfen ob Passwort zum Benutzernamen passt ... Wie das Script letztendlich aussehen muss ist mir schon klar, ich möchte nur wissen ob diese Art der Abfrage die Beste ist (einfachste, sicherste, usw)

    Danke und Gruss
    Dieter

  2. #2
    TP-Member fraggle macht alles soweit korrekt Avatar von fraggle
    Registriert seit
    Jan 2003
    Ort
    Piesbach
    Beiträge
    71
    schnell was zu a)
    der zeilenumbruch wird durch die funktion nl2br($str) eingesetzt!
    zu d) ja, das ist eine Möglichkeit, die auch find ich für den User sehr gut ist, da er dann direkt weiß, wo er sich vertippt hat!

    bei b) und c) kann ich dir nicht wirklich folgen...
    ~

  3. #3
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    zu b) nochmal:
    meldet sich der User A an, dann springe auf die Seite test1.php. Wenn sich User B anmeldet, dann springe auf diese test2.php, meldet sich User C an, dan springe auf die Seite test3.php., usw. Gibt es sowas wie einen "goto"-Befehl???

    zu c) der User X soll z.B. die Berechtigung haben auf die Seite http://www.juhuu.de/userx.php zugreifen zu können. Zunächst geht er auf die Seite www.juhuu.de und meldet sich dort an. Ist der Login in Ordnung, dann springt das System auf http://www.juhuu.de/userx.php. Gibt er jedoch in der Adresszeile direkt den url http://www.juhuu.de/userx.php ein (ohne sich davor anzumelden), dann soll die Meldung kommen "keine Berechtigung, bitte erst anmelden"

    @fraggle: kannst du mir die Funktion "funktion nl2br($str)" genauer erklären? Muss ich die Fuktion direkt im Formularfeld einbauen, wenn ja wie?
    Den Text, den der User eingibt, wird auf mysql gespeichert. Bleibt auch dort der Zeilenumbruch vorhanden??

  4. #4
    TP-Member fraggle macht alles soweit korrekt Avatar von fraggle
    Registriert seit
    Jan 2003
    Ort
    Piesbach
    Beiträge
    71
    ach so... dann lassen sich fall b) und c) mit cookies realisieren! für c) abfragen, ob das cookie existiert, wenn nicht, auf die andere seite weiterleiten oder den fehlertext ausgeben! bei b) in dem cookie des jeweiligen users speichern, welche seite er zusehen bekommen soll!

    die funktion nl2br() fügt dort, wo der user im textfeld einen Zeilenumbruch gemacht hat ein <br> ein! den text kannst vor dem speichern in die db bearbeiten lassen oder nachher, das speilt keine rolle!
    ~

  5. #5
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    mir ist immer noch nicht ganz geholfen.
    nochmal zu punkt b:
    ein formular beginnt üblicherweise mit dem befehl:
    <form action="test1.php" method="post">
    in diesem fall wird nach abschicken des formulars immer die seite test1.php geladen. es soll aber nicht immer automatisch die seite test1.php geladen werden, sondern je nachdem welcher benutzer sich im formular anmeldet. wenn sich nämlich statt benutzer A (test1.php) benutzer B anmeldet, dann soll nicht test1.php, sondern test2.php geladen werden.
    wie kann ich sowas realisieren?
    ich hoffe das es diesmal verständlich ist
    gruss
    dieter

  6. #6
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Du kannst das Formular auch "sich selbst" aufrufen lassen und die Daten entsprechend verarbeiten.

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

    Wenn Du das Abschicken Button z.B. "go" nennst, kannst Du das dann mit

    if(isset($_POST['go']))
    { ...

    abfangen.

    Es gibt auch Deinen sogenannten "goto" Befehl, in PHP heisst das header();

    Sieht z.B. so aus:

    header("Location: http://www.meineseite.de/kundea.php");
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  7. #7
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Mit anderen Worten: Du schickst dasn formular an eine Zwischenseite, die je nach User weiterleitet:

    PHP-Code:
    switch($user){
       case 
    "karl"header("Location: /karl.php"); break;
       case 
    "heinz"header("Location: /heinz.php"); break;
       case 
    "atze"header("Location: /atze.php"); break;
       
    // etc.
       
    default:  header("Location: /login.php"); 

    Die Variable $user ermittelst Du dabei exemplarisch per DB-Abfrage (alternativ liesse sich die Weiterleitungs-Adresse auch direkt aus der DB holen und das switch() sparen, es zig Möglichkeiten ). Auf den einzelnen Seiten selber könntest Du beispielsweise per Session-Variable prüfen, ob der User auch tatsächlich zur Seite passt und ihn ggf. zurück zum Login schicken.

  8. #8
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    header("Location: /heinz.php"); break;

    Das ist NICHT konform, es muss eine komplette URL angegeben werden, sprich mit http://www.bla.de/ usw. ...
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  9. #9
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Ja ja ...

  10. #10
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    @Lars: Diese Art der Lösung habe ich gesucht, THANX

    Auch den Tip von Adagio finde ich wichtig. Für jeden ist nämlich nicht alles selbstverständlich....
    Gruss
    Dieter

  11. #11
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Hier noch eine genaue Übersicht über die Möglichkeiten, die header() bietet: http://www.php.net/manual/de/function.header.php

    Wohlgemerkt muss diese Funktion vor allen anderen Headern geschickt werden, innerhalb einer Seite, die beispielsweise schon ein <html> enthält, gibt es eine Fehlermeldung (das ist ein klassischer Fehler ). Am besten lagerst Du das ganze auf eine Zwischenseite ohne anderweitige Ausgaben aus.

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51