+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Login umgehen

  1. #1
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462

    Login umgehen

    Hallo zusammen,

    ich sitze schon so lange vorm Rechner, dass ich den Wald vor lauter Bäumen nicht mehr sehe.

    Ich kämpfe mich immer noch durch mein gekauftes Auktionsskript. Wenn man einen Artikel aufruft, kann man, wie auch bei Ebay, dem Verkäufer eine Frage stellen.

    Programmiert ist es so, dass man sich dafür ersteinmal einloggen muss. Das finde ich allerdings total überflüssig und unangebracht.

    Ich habe schon einiges probiert, aber nichts klappt. Hier erstmal das Skript:
    PHP-Code:
        require( "include/common.php" );
        
        global 
    $db$conf;
        
        
        if( !
    checkUser() ) header"Location: ./login.php" );
        
        if(isset (
    $_SESSION['ucheck']) && $_SESSION['ucheck'] !='')
        {
        
    $resultl mysql_query"SELECT * FROM pt_users WHERE username='$_SESSION[uname]' AND password='$_SESSION[ucheck]'" ) or errormysql_error() );
        
    $user mysql_fetch_array$resultl );
        
    $username=$user['username'];
        
    $userid $user['user_id'];
        }
        
        
        require( 
    "include/langselect.php");
        require( 
    "lang/$lang/l_askseller.php");
        
        
    $required="<font color='red'>*</font>&nbsp;";



        if (
    $username !="")

        {

        
    $time time();
        
        if( isset( 
    $action ) )
        {
            if( 
    $action == "ask" )
            {
                
    $name trim$name );
                
    $email trim$email );
                
    $question trim$question );
                
    /* hab ich schon rausgenommen
                if( $name == "" ) error( "$l_needaskername" );
                */
                
    if( $email == "" error"$l_needaskmail" );
                elseif ( !
    eregi"^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$"$email ) ) error"$l_invalidmail" );
                if( 
    $question == "" error"$l_needmessage" );
                if( 
    strlen$question ) < 10 error"$l_tolesschars" );
                
    $result mysql_query"SELECT email FROM pt_users WHERE email='$email'" ) or errormysql_error() );
                
    $umail=mysql_fetch_array$result );
                
    /* hab ich rausgenommen
                if ($email != "{$umail['email']}") error ( "$l_maildoesntexist" );
                */
                
    function AskSeller($result)
                {
                    global 
    $db$conf$who$name$sectio$an$question;
                    
    $result=preg_replace("/~name~/","$who",$result);
                    
    $result=preg_replace("/~user~/","$name",$result);
                    
    $result=preg_replace("/~adnr~/","$an",$result);
                    
    $result=preg_replace("/~mail~/",$_POST['email'],$result);
                    
    $result=preg_replace("/~question~/","$question",$result);
                    
    $result=preg_replace("/~link~/","$conf[SiteURL]/showad.php?sectio=$sectio&an=$an",$result);
                    
    $result=preg_replace("/~home~/","$conf[SiteURL]",$result);
                    return 
    $result;
                }
                
                
                
    $mailtext AskSeller($mailtemp['TemplateAskSeller']);

                
    $message "$mailtext \n\n";
                
    $message .= "$conf[MailAdvertText]";
                
            
                
    outMails2"{$name} <{$email}>"$to"$mailtemp[SubjectAskSeller]"$message );
                
                
                
    showHeader"$conf[SiteName] :: $l_questsent" );
                include( 
    "navigation.php" );
                include( 
    "./templates/question_sent.tpl.htm" );
                
    showFooter();

            }

        }
        else
        {    
    $senderres mysql_query("SELECT * FROM pt_users WHERE user_id={$user['user_id']}") or errormysql_error() );
            
    $sender mysql_fetch_array($senderres);
            
    $sellerres mysql_query("SELECT * FROM pt_users WHERE username='$who'") or errormysql_error() );
            
    $seller mysql_fetch_array($sellerres);
            
            
    showHeader"$conf[SiteName] :: $l_askseller" );
            include( 
    "navigation.php" );
            
             include( 
    "./templates/askseller.tpl.htm" );
            
    showFooter();
        }


    Auf einer anderen Seite habe ich den ersten Block ab if( !checkUser() ) header( "Location: ./login.php" ); bis vor require( "include/langselect.php"); rausgenommen, und es hat funktioniert. Hier ist die Seite weiß, und es geht gar nichts mehr.

    Kann mir vielleicht mal jemand sagen, was ich falsch mache?

    Ach so, normaler Weise kam dann ein Formular mit Benutzernamen, E-Mail und Text. Benutzer und E-Mail wurden automatisch eingefügt. Das habe ich nun auch schon so umgeschrieben, dass der Fragesteller die E-Mail-Adresse selbst eingeben muss, und der Benutzername entfällt. Das klappt auch. Nur muss man eben noch eingeloggt sein.

    LG Nadine

  2. #2
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020
    du musst weiter unten noch
    Code:
        if ($username !="")
    
        {
    und die entsprechende schliesende klammer rausnehmen. au&#223;erdem vielleicht nochmal alles curchchecken, wo sonst noch die username-variable genutzt wird, die nun logischerweise nicht verf&#252;gbar ist.

  3. #3
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Hatte mir sowas Ähnliches zumindest schon gedacht. Klappt aber leider auch nicht. Ist wahrscheinlich noch irgend eine Kleinigkeit. Am besten ist es wohl, es einfach morgen weiter zu probieren...

    Vielen Dank trotzdem schon mal.

    Und gute Nacht.

  4. #4
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Ich kriegs immer noch nicht hin! Ich habe jetzt den angesprochenen oberen Teil rausgeschmissen

    ab if( !checkUser() ) header( "Location: ./login.php" ); bis vor require( "include/langselect.php");

    und dann noch

    if ($username !="")

    {


    und die entsprechende schließende Klammer.

    Dann erscheint die Fehlermeldung:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    Was muss ich denn noch rausschmeißen?

  5. #5
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    sag doch nochmal wie du es haben willst.

    Du willst ohne username arbeiten ? Der ist aber Vorraussetzung f&#252;r die Funktionsweise obigen Skriptes.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  6. #6
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Richtig. Ich finde es &#252;berfl&#252;ssig, sich einloggen zu m&#252;ssen, wenn man eine Frage an den Verk&#228;ufer hat.

    Das darauffolgende Formular war eben so angedacht, dass sich Benutzername und E-Mail automatisch ausf&#252;llen und der Fragesteller somit nur noch die Frage zu stellen brauchte.

    Das habe ich bereits so umprogrammiert, dass der Fragesteller seine E-Mail selbst eingeben muss, und der Benutzername entf&#228;llt. Klappt auch wunderbar, die E-Mail kommt auch an.

    Das Problem ist nur, dass man aufgrund dieses Skriptes gar nicht in den Genuss kommt, das Formular aufzurufen, ohne sich vorher eingeloggt zu haben. Und genau DAS will ich umgehen! Ein Interessent soll einfach nur auf "Frage an den Verk&#228;ufer" klicken m&#252;ssen, ein folgendes Formular &#246;ffnet sich, und los geht's. Ohne gro&#223;es Schnick-Schnack drum herum.

  7. #7
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020
    Ich nehme an, das diese Zeilen

    Code:
    $senderres = mysql_query("SELECT * FROM pt_users WHERE user_id={$user['user_id']}") or error( mysql_error() );
            $sender = mysql_fetch_array($senderres);
            $sellerres = mysql_query("SELECT * FROM pt_users WHERE username='$who'") or error( mysql_error() );
            $seller = mysql_fetch_array($sellerres);
    jetzt das problem darstellen, vorraussetzung ist allerdings, dass der teil &#252;berhaupt aufgerufen wird, was ich mangels kenntnis der umgebung nicht beurteilen kann.

    genereller ansatz ist, das ganze script nocheinmal von oben bis unten durchzuarbeiten und alle stellen, an denen auf userdaten bezug genommen wird zu modifizieren.

  8. #8
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Okay, und wie erkenne ich, an welcher Stelle als User der Verk&#228;ufer und wann der K&#228;ufer gemeint ist? Prinzipiell landen ja alle in der gleichen Datenbank, bzw. Tabelle. Die Daten des Verk&#228;ufers brauche ich ja noch, nur die des K&#228;ufers nicht. Die sollen entfallen.
    Grüße aus der Löwenstadt, Nadine

  9. #9
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020
    Das musst du aus dem Kontext erkennen. Allerdings sind die Variablennamen doch recht hilfreich: $sender ist der Sendende und $seller der Verk&#228;ufer. Ich habe bei einem schnellen &#252;berfliegen nix gefunden, wo das nicht recht eindeutig gel&#246;st w&#228;re.

  10. #10
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Ja, ich werde mich heute mal fast ausschließlich darum kümmern. Wird schon schief gehen...
    Grüße aus der Löwenstadt, Nadine

+ 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