Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
6712
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xervek Xervek ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    61
    Guten Tag alle zusammen,

    es gibt im Internet ein wunderbares Programm um eMails webbasierend abzurufen. Generell ist es ein extrem gutes Programm, jedoch gibt es im Login bereich ein paar Probleme, eigentlich keine richtigen Probleme da es generell anständig funktioniert. Das Programm findet ihr *hier*

    Da ich mit PHP und generell Webdesign und sowas jetzt nicht allzuviel am Hut habe sondern eher mit Programmieren hätte ich damit schon eine Lösung jedoch nicht mit PHP.

    Nach erfolgreichem Einrichten, alles funktioniert nun soweit, konnte ich mich mit meinem Benutzernamen und Passwort erfolgreich einloggen. Wenn ich nun aber versuche mich mit meiner email Adresse anzumelden, bekomme ich eine Fehlermeldung. (zumindest bei ALL-Inkl, denn da habe ich meinen Webspace).

    Logische schlussfolgerung, ich muss irgendwo in dem Programm eine IF Schleife einbauen nach dem Motto

    Wenn eingabefeld = meine@mail.de Dann
    eingabefeld = v264320423
    Ende

    Ich bräuchte dann allerdings eine If schleife in der ich unbegrenzte usernames eingeben kann und diese dann umwandeln kann.

    Eigentlich sollte es ein extrem einfacher Eingriff sein, jedoch habe ich wirklich null Plan von PHP, weiß nicht wo ich diesen Teil zu suchen habe und wo ich was ändern muss, damit es funktioniert. Es wäre also nett, wenn mir hier einer helfen könnte. Ich kann mir vorstellen, dass es etwas Arbeit ist erst das Programm anzuschauen aber wie gesagt, wäre wirklich nett wenn mir dabei jemand helfen könnte

    Liebe Grüße
     

  2. #2
    Registriert seit
    Mar 2004
    Beiträge
    490
    Komisch das hier noch keiner geantwortet hat, aber nunja, wollen wir mal:

    Also erstmal Vorweg: Ich kenne das Script nicht und ich hab auch kein Space bei All-Inkl
    Daher meine Frage: logged man sich nicht per Emailadresse da ein sondern mit dieser v....irgendwas nummer als Username?

    Wenn dem so wäre, dann müsstest du den Namen der Variable aus dem Login Formular finden, welches wahrscheinlcih per POST an ein PHP Script übermittelt wird.
    Bsp: $_POST['feld_username'];

    In der Datei, welches dieses $_POST verarbeitet müsste dann sowas rein wie

    IF($_POST['feld_username'] == 'mail@domain.de')
    $_POST['fled_username'] = 'v123456789';
    ELSEIF($_POST['feld_username'] == 'zweitemail@domain.com')
    $_POST['feld_username'] = 'v98765431';
    usw

    Natürlich müsstest du bei dieser simplen Methode jede neue "umzuwandelnde" Mailadresse als IF Abfrage in den Quellcode schreiben.....wem es gefällt.
    Ok, ich würds nicht so machen, weil mir das zu doof wäre...

    Aber mal ne andere Frage: Warum gibst dunicht direkt diese v...nummer in das Eingabefeld ein? Wenn da nen PrüfLogarithmus drin ist, der nachschaut ob Eingabefeld = ^name@domain.de dann nimmste das raus...
    Gibt soviele Möglichkeiten, aber das hier alles zu erklären dauert lang, da du ja selber sagst, das du nicht die Vorkenntnisse für PHP Scripting besitzt.

    Ansonsten: Selber mal was versuchen
    Gruss
     

  3. #3
    Xervek Xervek ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    61
    Hallo,

    vielen Dank für die schnelle Antwort.

    Anscheinend greift dieses Programm nur als "imap" auf die eMails zu. Bei All-Inkl ist es so, dass du generell eine Benutzernummer bekommst, beispiel "v123456". Legst du nun beispielweise eine eMail Adresse an, sieht diese etwa so aus "v1234561" (die 1 am Ende steht für eMail benutzer Nummer 1 angelegt).
    Wenn ich nun also versuche mich in dem Programm mit meiner eMail und dem dazugehörigen Passwort anzumelden bekomme ich eine Fehlermeldung das ich nicht authorisiert bin... meine Anfrage an den Support brachte eine mehr oder weniger typische Antwort: "Wenn Sie über die entsprechenden Kenntnisse verfügen, können Sie das Programm so 'abändern', dass Sie sich direkt mit der eMail anmelden können."

    Nun das Problem ist, dass ich mir diese Nummer'n nicht merken kann. Und da ich mehrere Mails habe, müsste ich mir ziemlich viele Nummern merken und die müsste ich dann noch einem Passwort zuordnen und da finde ich es wiederum etwas einfach das ich einfach dazu in der Lage bin die nötige eMail eintragen zu können, Passwort hinter her und schwupp alles wunderbar. Da ich aber weder vom All-Inkl Support noch andere Möglichkeiten gefunden habe irgendwie an Hilfe zu kommen wie ich das am Besten machen kann, wollte ich hier einfach nachfragen.

    Dürfte ich dich dann auch fragen wie du es machen würdest? Alles was ich gern hätte wäre, dass ich beim
    "Username" meine Mail eingeben kann und beim
    "Password" halt mein Passwort (aber das geht ja sowieso)
    Nur wie halt oben gesagt nimmer er es nur an, wenn ich die Nummer/n eingebe. Deshalb habe ich auf Anhieb an eine IF Schleife gedacht die einfach umwandelt wenn eine bestimmte Nummer eingeben wird. Aber wenn du meintest es gibt andere, kompfortablere Möglichkeiten wäre es nett, wenn du mir die sagen könntest.

    Aber zu deiner IF Schleife noch eine Frage...

    IF($_POST['feld_username'] == 'mail@domain.de')
    $_POST['fled_username'] = 'v123456789';
    ELSEIF($_POST['feld_username'] == 'zweitemail@domain.de')
    $_POST['feld_username'] = 'v98765431';
    ELSEIF($_POST['feld_username'] == 'drittemail@domain.de
    $_POST['feld_username'] = 'v632347432';
    bla

    wie wird dass denn dann beispielweise in diesem Teil beendet? Also die ganzen IF abfragen, wie die beendet werden meine ich.

    Ansonsten aber vielen Dank für die schnelle Hilfe!

    Liebe Grüße
     

  4. #4
    Registriert seit
    Mar 2004
    Beiträge
    490
    Hi,

    hab mir das Script mal auf die schnelle angeschaut.
    Den ganzen Krempel müsstest du in die index.php packen....

    Irgendwo in der Datei ist ne Passage:

    PHP-Code:
    // try to log in
    if ($_action=='login' && $_task=='mail')
      {
      
    $host $_POST['_host'] ? $_POST['_host'] : $CONFIG['default_host'];
      
      
    // check if client supports cookies
      
    if (empty($_COOKIE))
        {
        
    show_message("cookiesdisabled"'warning');
        }
      else if (isset(
    $_POST['_user']) && isset($_POST['_pass']) && rcmail_login($_POST['_user'], $_POST['_pass'], $host))
        {
        
    // send redirect
        
    header("Location: $COMM_PATH");
        exit;
        }
      else
        {
        
    show_message("loginfailed"'warning');
        
    $_SESSION['user_id'] = '';
        }
      } 
    Hier wird geprüft, ob dein Login stimmt und du dann eingelogged oder nicht.

    Wenn du das wie folgt änderst:


    PHP-Code:
    // try to log in
    if ($_action=='login' && $_task=='mail')
      {
      
    $host $_POST['_host'] ? $_POST['_host'] : $CONFIG['default_host'];
    // BEISPIELE
    IF($_POST['_user'] == 'mail@domain.de')
    {
    $_POST['_user'] = 'v1234567891';
    }
    ELSEIF(
    $_POST['_user'] == 'mail2@domain.de')
    {
    $_POST['_user'] = 'v1234566782';
    }
    // usw
    // ENDE BEISPIELE  

      // check if client supports cookies
      
    if (empty($_COOKIE))
        {
        
    show_message("cookiesdisabled"'warning');
        }
      else if (isset(
    $_POST['_user']) && isset($_POST['_pass']) && rcmail_login($_POST['_user'], $_POST['_pass'], $host))
        {
        
    // send redirect
        
    header("Location: $COMM_PATH");
        exit;
        }
      else
        {
        
    show_message("loginfailed"'warning');
        
    $_SESSION['user_id'] = '';
        }
      } 
    Ich kann dir aber nicht versprechen, ob das funktioniert. Der macht nämlich noch beim Login ne SQL Abfrage "query if user already registered". Da ich das Script nicht installiert und getestet habe und ich nciht weiss, ob das funktioniert kann ich nicht auf richtigkeit setzen.
    Da müsstest du dann selber fummeln und das Script verstehen.

    Nochmal zu deiner Frage, wann die Ifs zu ende sind.
    Ich habe eine gekürzte schreibweise genutzt:
    IF(a == b)
    c = 5;
    elseif(a == 5)
    c = 2;

    PHP versteht das, weil der immer eine Zeile (also bis zum nächsten Semikolon) der If Abfrage zuweisst.

    IF(a == b)
    c = 2;
    c=5;

    hier wäre, wenn a == b , c =5; er macht zwar zuerst c = 2, aber dann noch c=5.
    Hoffe das war jetzt nicht zu schnell...
    Korrekt lautet es natürlich

    IF($a == $b)
    {
    $c = 5;
    }
    ELSEIF($c == $b)
    {
    $a = 1;
    }
    usw

    Wenn die IF Abfragen nicht stimmen (also $a nie == $b ist) dann beachtet er sie auch nicht weiter.

    Ok, habe jetzt viel geschrieben und wenig erklärt. Hoffe zu kommst damit klar, hab immo nicht so viel Zeit

    Gruss
     

  5. #5
    Xervek Xervek ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    61
    Hallo,

    vielen Dank für die Antwort. Es funktioniert! Jetzt habe ich nur noch ein kleines Problem, ein "Schönheitsproblem". Wenn ich also meine Mail benutze, so wie ich sie im index.php eingetragen habe, funktioniert alles bestens, achte ich nun allerdings nicht auf die groß und kleinschreibung... Zack da meckert er dann wieder. Letztlich soweit kein Problem, jedoch würde ich gern noch mal kurz fragen ob es eine Möglichkeit gibt, dass PHP groß und kleinschreibung ignoriert. Also, dass es keinen Unterschied macht ob ich "hans@wurst.com" oder "Hans@wurst.com" schreibe.

    Vielen, vielen Dank nochmal, hast mir echt schon extrem geholfen
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    490
    Dann änderst du die IF Abfragen um in:

    PHP-Code:
    IF(strtowlower($_POST['_user']) == .... 
    Infos zu strtolower()
    strtolower -- Make a string lowercase
    Gruss
     

  7. #7
    Xervek Xervek ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    61
    Hallo,

    liege ich recht in der Annahme, dass es etwa so aussehen müsste:

    PHP-Code:
    IF(strtowlower($_POST['_user']) == 'mail1@beispiel.de')
    {
    $_POST['_user'] = 'v1234561';
    }
    ELSEIF(
    strtowlower($_POST['_user']) == 'mail2@beispiel.de')
    {
    $_POST['_user'] = 'v1234562';

    Wenn ja dann scheint ihm das wiederum nicht zu gefallen. Jetzt geht es gar nicht mehr, er läd nach Eingabe der Daten irgendetwas und zeigt mir direkt dannach eine weiße Seite an. Mache ich es wieder weg und gebe die Mail dann wie angegeben an funktioniert es wieder. Es funktioniert damit aber gar nicht, weder wenn ich die Mail "mit großbuchstaben" noch mit "kleinbuchstaben" eintippe.
     

  8. #8
    Xervek Xervek ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    61
    Hallo,

    hat keiner sonst eine Idee wie ich dieses Problem umgehen kann?

    Liebe Grüße
     

  9. #9
    ice_thunder ice_thunder ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    15
    Hi,
    Du hast da einen Schreibfehler drin es muss heißen

    strtolower nicht strtowlower

    viele Grüße
    Sebastian
     

  10. #10
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.770
    Blog-Einträge
    5
    Ähem… das geht doch auch wesentlich einfacher und vor allem ohne am Quellcode rumzufummeln.

    Erstelle einfach eine Datei im Installationsverzeichnis von roundcube, die in deinem Fall folgenden Inhalt hat:
    Code :
    1
    2
    3
    
    mail@domain.de v123456789
    zweitemail@domain.de v98765431
    drittemail@domain.de v632347432

    In der ./config/main.inc.php muss dann $rcmail_config['virtuser_file'] nur noch auf den Namen der angelegten Datei geändert werden.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  11. #11
    MichaelHolzi MichaelHolzi ist offline Grünschnabel
    Registriert seit
    Oct 2006
    Beiträge
    2
    Hallo Matthias!

    Deine Tipp ist klasse, nur leider funktioniert er bei mir nicht. Kannst Du mir bitte weiterhelfen?!

    Ich habe folgendes gemacht:
    Eine Textdatei angelegt mit Deinem Muster
    mail@domain.de v123456789 (natürlich mit meinen Daten

    Diese habe ich auf meinen Server in das gleiche Verzeichnis wie die main.inc.php gelegt. Die main.inc.php habe ich wie folgt bearbeitet:

    // Path to a virtuser table file to resolve user names and e-mail addresses
    $rcmail_config['virtuser_file'] = 'virtuelleuser.txt';

    Aber leider klappt es nicht. Was habe ich falsch gemacht?
    Vielen Dank und viele Grüße,
    Michael
     

  12. #12
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.770
    Blog-Einträge
    5
    Hallo,

    wie schon erwähnt muss die virtuser-Datei in das Installationsverzeichnis von roundcube, nicht in das Konfigurationsverzeichnis. Alternativ kannst du aber natürlich auch mit einer relativen Pfadangabe arbeiten, die dann vom Installationsverzeichnis von roundcube ausgeht. Eine absolute Pfadangabe wäre selbstverständlich auch möglich.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  13. #13
    MichaelHolzi MichaelHolzi ist offline Grünschnabel
    Registriert seit
    Oct 2006
    Beiträge
    2
    Hallo Matthias!

    1.000 Dank, es hat geklappt.

    Bitte entschuldige, das die Datei ins Installationsverzeichnis muss, hab ich leider nicht richtig gelesen.

    Also vielen Dank nochmal und viele Grüße,
    Michael
     

  14. #14
    Avatar von damonn
    damonn damonn ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    10
    hatte selbst das Problem, und hab eine elegante Lösung im Netz gefunden:

    klick
     

  15. #15
    max2011 max2011 ist offline Grünschnabel
    Registriert seit
    Jul 2007
    Beiträge
    1
    hallo,
    das problem hatte ich auch. du mußt im adminbereich unter alias dein namen eintragen, dann kannste dich auch mit der e-mailadresse einloggen:
    beispiel:
    deine e-mail lautet: hans@muster.de
    dann mußt du unter alias hans eingeben, zumindestens bei all inkl.

    das war ja noch einfach. ich bekomme es einfach nicht hin, wenn ich eine mail verfasse dann die angelegten e-mailadressen aus dem adressbuch als empfänger einzugeben.
    Kannst du mir da weiterhelfen ?
     

Ähnliche Themen

  1. Bräuchte Hilfe..!
    Von headghot im Forum Werkstatt
    Antworten: 5
    Letzter Beitrag: 15.04.08, 21:01
  2. Bräuchte mal hilfe
    Von Bountyhunter im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 14.08.06, 13:57
  3. Antworten: 5
    Letzter Beitrag: 19.11.02, 17:22
  4. Bräuchte Hilfe!
    Von Pummel im Forum Photoshop
    Antworten: 12
    Letzter Beitrag: 14.10.02, 11:59
  5. Hilfe mit Webmail Script ?
    Von F|ghtEr im Forum PHP
    Antworten: 0
    Letzter Beitrag: 02.04.02, 15:57