[PHP5] PHP-Einstellungen falsch? jedenfalls: Probleme mit Variablen oder Session?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] PHP-Einstellungen falsch? jedenfalls: Probleme mit Variablen oder Session?

    Hallo Leute,

    ich habe folgendes Problem:

    Für unseren Spamfilter gibt es ein kleines Webinterface, mit dem man seinen Spam untersuchen kann - auf PHP-Basis.

    Eigentlich sollte das funktionieren, tut es aber nicht

    Fehler werden keine ausgegeben, aber ich kann mich auch nicht einloggen,
    wenn ich das entsprechende Formular die Logindaten eingebe und submit drücke,
    bekomme ich nur wieder die gleiche Seite und das Formular ist wieder leer...

    Ich vermute, das ganze ist entweder eine Einstellungssache von PHP,
    oder aber eine Variable wird nicht richtig weitergegeben...
    Vielleicht klappts auch mit der Session nicht...
    ich habe keine Ahnung

    Das ganze läuft auf nem aktuellen XAMPP, d.h. die neue XAMPP 1.5.3a Version ist erschienen mit ...

    * Apache 2.2.2
    * MySQL 5.0.21
    * PHP 5.1.4
    * phpMyAdmin 2.8.1
    * XAMPP Control Panel Version 2.3
    * FileZilla FTP Server 0.9.16c

    register_globals ist off
    session auto_start ist disabled

    Wer sich das ganze Paket anschauen möchte: http://www.logsat.com/SpamFilter/pub...eb-9-21-05.zip
    Die beiden Dateien die vermutlich den ganzen Ärger machen sind:

    authenticate.php:
    PHP-Code:
        session_start();
        require_once 'db_connect.php';

        if (! isset($_SESSION['EmailTo'])) {
            $EmailTo = $_POST['EmailAddress'];

            if (strlen($EmailTo) < 3 ) {
    ?>
    <html>
    <head>
        <title>Spam Filter - Login</title>
    </head>
    <body>
        <form method="post" name="Login">
        <table align="center" border="1" cellpadding="1" cellspacing="1">
            <tr><td align="center" colspan="2"><h2>Please Login</h2></td></tr>
            <tr>
                <td align="right">Email Address:</td>
                <td><input type="text" size="15" name="EmailAddress"></td>
            </tr>
            <tr>
                <td align="right">Password:</td>
                <td><input type="password" size="15" name="Password"></td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <input type="submit" value="Login">&nbsp;&nbsp;
                    <input type="reset" value="Clear">
                </td>
    <!--        <tr><td align="center" colspan="2"><a href="Register.php">Register</a></td></tr> -->
            </tr>
        </table>
        </form>
    </body>
    </html>
    <?php
                
    exit();
            } else {
                
    // Generate query.
                
    $SQL 'SELECT Password ';
                
    $SQL .= 'FROM tblLogins ';
                
    $SQL .= 'WHERE EMail = "' $EmailTo '"';
                
    $query $db->query($SQL);
                if (
    DB::iserror($query)) die($query->getMessage());
                
    $row $query->fetchRow();
                if (
    DB::iserror($row)) die($row->getMessage());
                
    $failure false;
                if ((
    $query->numRows() < 1) || (strlen($row[0]) < 1) || ($row[0] != $_POST['Password'])) $failure true;

                
    // If password fails to match.
                
    if ($failure) {
    ?>
    <html>
    <head>
        <title>Spam Filter - Failed Login</title>
    </head>
    <body>
        <h2 align="center">The password you entered was incorrect!</h2>
        <p align="center"><a href="ListSpam.php">Try Again</a></p>
    </body>
    </html>
    <?php
                    
    exit();
                } else {
                    
    $_SESSION['EmailTo'] = $EmailTo;
                }
            }
        }
    und listspam.php
    PHP-Code:
    <?php
        
    require_once 'authenticate.php';
        
    $Quit $_GET['Quit'];
        if (
    $Quit 1) {
          
    $_SESSION['EmailTo'] = '';
        }
        
    $EmailTo $_SESSION['EmailTo'];

        
    // Theoretically, this should never happen.
        
    if (strlen($EmailTo) < 1) {
            unset(
    $_SESSION['EmailTo']);
            
    header("Location: ListSpam.php");
            exit();
        }
    ?>
    <html>
    <head>
        <title>Spam Filter - Suspected Spam List</title>
    </head>
    <body>
    <?php
        
    // Determine if a sort order was chosen.
        
    $order_by $_GET['SortBy'];

        switch(
    $order_by) {
            case 
    'Subject':
                
    $order_by 'Subject, MsgDate, EmailFrom';
                break;
            case 
    'EmailFrom':
                
    $order_by 'EmailFrom, MsgDate, Subject';
                break;
            default:
                
    $order_by 'MsgDate, EmailFrom, Subject';
        }

        
    // Generate query.
        
    $SQL 'SELECT QuarID, EmailFrom, Subject, MsgDate, MsgID, RejectDesc ';
        
    $SQL .= 'FROM tblQuarantine, tblRejectCodes ';
        
    $SQL .= 'WHERE (EmailTo = "' $EmailTo '") ';
        
    $SQL .= 'AND (Deliver = 0) ';
        
    $SQL .= 'AND (Expire = 0) ';
        
    $SQL .= 'AND (tblQuarantine.RejectID = tblRejectCodes.RejectID) ';
        
    $SQL .= 'ORDER BY ' $order_by;
        
    $query $db->query($SQL);
        if (
    DB::iserror($query)) die($query->getMessage());
    ?>
        <h2 align="center">Spam List for <?php echo htmlspecialchars($EmailTo); ?></h2>
        <form action="ResolveSpam.php" method="post">
        <table border="1" cellpadding="2" cellspacing="0" width="100%">
        <thead align="center" valign="bottom">
            <tr>
                <th scope="col" bgcolor="silver">&nbsp;</th>
                <th scope="col" bgcolor="silver"><a href="ListSpam.php?SortBy=EmailFrom">From</a></th>
                <th scope="col" bgcolor="silver"><a href="ListSpam.php?SortBy=Subject">Subject</a></th>
                <th scope="col" bgcolor="silver"><a href="ListSpam.php?SortBy=MsgDate">Date</a></th>
                <th scope="col" bgcolor="silver">Rejection</th>
            </tr>
        </thead>
        <tbody>
    <?php
        
    if ($query->numRows() < 1) {
    ?>
            <tr><td align="center" colspan="5"><h2>No potential spam found!</h2></td></tr>
        </tbody>
        </table>
    <?php
        
    } else {

            while (
    $row $query->fetchRow()) {
                if (
    DB::iserror($row)) die($row->getMessage());
                
    $QuarID $row[0];
                
    $MsgID $row[4];
    ?>
            <tr>
                <td align="center"><input type="checkbox" name="<?php echo 'chk_' $QuarID?>"></td>
                <td>
                    &nbsp;<a href="ResolveSpam.php?QuarID=<?php echo $QuarID?>&MsgID=<?php echo $MsgID?>">view</a>&nbsp;&nbsp;
                    <?php echo htmlspecialchars($row[1]) ?>
                </td>
                <td><?php echo htmlspecialchars($row[2]) ?></td>
                <td><?php echo $row[3]?></td>
                <td><?php echo $row[5]?></td>
            </tr>
    <?php
            
    }
    ?>
        </tbody>
        </table>
        <input type="submit" name="cmdDelete" value="Delete">&nbsp;<input type="submit" name="cmdSend" value="Send">
        </form>
    <?php
        
    }
    ?>
        <p>Change your <a href="PasswordChange.php">password</a><br>
           Login with a <a href="ListSpam.php?Quit=1">different email</a>.</p>
    </body>
    </html>
    Hat jemand ne Idee, warum's net klappt?

    Gruß, Sebastian

  • #2
    wie soll das formular auch funktionieren wenn du keine aktion definiert hast??
    Die Milch bleibt ranzig!

    Kommentar


    • #3
      Ohne Action gehen die Daten an PHP_SELF, ohne Method per GET. Man kann also <form>...</form> schreiben - Verständnis für solche Faulheiten habe ich persönlich aber nicht.

      Kommentar


      • #4
        oh achso..
        ich hab das PHP_SELF immer noch hingeschrieben,
        naja wieder was gelernt.
        in den docus liest man auch vom PFLICHTattribut "action"
        Die Milch bleibt ranzig!

        Kommentar


        • #5
          Ich bin doch nur ein Praktikant

          Habe das ganze aufs Auge gedrückt bekommen und sollte denn Server samt MySQL aufsetzen, den Spamfilter installieren und dann das vom Hersteller zu beziehende Webinterface implementieren...
          mit dem Kommentar: "Eigentlich sollte das alles ganz einfach sein..."

          Bis zu diesem Punkt war's das auch...

          Gruß, Sebastian

          Kommentar


          • #6
            mich würde noch interessieren, warum Du nicht beim Hersteller logsat anfragen
            kannst. Immerhin kostet die SW, das was Du unser Spamfilter genannt hast, USD 600 pro Jahr.
            Es ehrt selbstverständlich php-resource.de sehr und freut dieses Forum, dass du dieses Forum schneller gefunden hast als jenes. Vielleicht hast
            du dort schon angefragt, oder es gibt noch andere Gründe...
            Zuletzt geändert von mäander_; 14.07.2006, 18:05.

            Kommentar


            • #7
              Original geschrieben von RanzigeMilch
              wie soll das formular auch funktionieren wenn du keine aktion definiert hast??
              Die Frage ist vollkommen umgedreht zu stellen. Es sollte heissen,
              wie soll das formular auch funktionieren wenn der Verkäufer, die 'LogSat Software LLC' keine aktion definiert hast??
              Es handelt sich beim geposteten Code um Teile des webinterface der 'LogSat Software LLC' , wie man äusserst leicht feststellen kann. Die fehlende action in authenticate.php ist dort fehlend, wörtlich.

              Kommentar


              • #8
                Welcher Browser?

                Wenn IE, welche Datenschutzeinstellung zur Cookie Behandlung? Wenn es auf hoch steht kann es sein das wegen fehledner Datenschutzrichtlinie (p3p) kein Cookie angenommen wird.

                Mal auf Mittel oder niedrig stellen und testen.

                Kommentar


                • #9
                  Es liegt nicht an dem browser habs mit ie firefox und opera schon probiert hab sogar per php skript auf xampp 1.5.3 anzeigen lassen und die wechselt sich bei jedem aktuelisieren.und wenn ich die Sessionid per PHPSESSID übergebe hab ich zwar die gleiche sessionid kann aber die daten trotzdem net anzeigen lassen und mit der probe mit isset kommt immer false raus


                  EDIT: Hab das gleiche problem session kaputt

                  Kommentar

                  Lädt...
                  X