[PHP] Fehlersuche -_-

Dieses Thema im Forum "Webentwicklung" wurde erstellt von °EraZoR°, 1. November 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. November 2008
    Fehlersuche -_-

    Hey,
    ich hab hier ein PHP-Projekt...
    PHP:
    <?
    include(
    "config.php" );

    session_start ();

    $msg  = Array();
    $error  = Array();

    function 
    changePass (){
        if (empty(
    $_POST )) return  false ;
        global 
    $config $msg $error ;
        if (empty(
    $_POST [ 'login' ]))  $error [] =  'Fehler, Du hast vergessen deinen Accountnamen einzugeben!' ;
        if (empty(
    $_POST [ 'passwordold' ]))  $error [] =  'Fehler, Du hast vergessen dein altes Passwort einzugeben!' ;
        if (empty(
    $_POST [ 'passwordnew' ]))  $error [] =  'Fehler, Du hast vergessen dein neues Passwort einzugeben!' ;
        if (
    $_POST [ 'passwordnew' ] !==  $_POST [ 'passwordnew2' ])  $error [] =  'Die neuen Passwörter stimmen nicht überein!' ;
        if (!empty(
    $error )) return  false ;
        
    $db  = @ mysql_connect ( $config [ 'mysql_host' ],  $config [ 'mysql_user' ],  $config [ 'mysql_pass' ]);
        if (!
    $db ) return  $error [] =  'Database: ' . mysql_error ();
        if (!@
    mysql_select_db ( $config [ 'mysql_dbname' ],  $db )) return  $error [] =  'Database: ' . mysql_error ();

        
        
    $sql  "SELECT * FROM accounts WHERE login = '" . $_POST [ 'login' ]. "'" ;
        
    $res  mysql_query ( "SELECT * FROM accounts WHERE login = '" . $_POST [ 'login' ]. "'" );
        
    $row  mysql_fetch_assoc ( $res );
      


    if(
    mysql_num_rows ( $res )== 1 ){
    if(
    $row [ 'password' ] =  $_POST [ 'passwordold' ]) {
    mysql_query ( $query );
    }
    }

    }

    return 
    true ;
    {
    changePass ();
    }

    mysql_close ( $db );
    ?>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Accounterstellung</title>
        <meta http-equiv="Pragma" content="no-cache"/>
        <meta http-equiv="Cache-Control" content="no-cache"/>
        <style type="text/css" media="screen">@import url(server_stats.css);</style>
        <!--[if lt IE 7.]>
        <script defer type="text/javascript" src="pngfix.js"></script>
        <![endif]-->
    </head>
    <body>

        <center>
        <div class="logo"></div>
        <div style="width:300px">
            <form action=" <?  echo  $_SERVER [ 'PHP_SELF' ];  ?> " method="POST">
            <table width="100%" border="0" cellspacing="1" cellpadding="3">
                <tr class="head"><th colspan="2">Accounterstellung</th></tr>
                <tr>
                    <th>Accountname: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
                </tr>
                <tr>
                    <th>Altes Passwort: </th><td align="center"><input class="button" type="password" name="passwordold" size="30" maxlength="16"/></td>
                </tr>
                <tr>
                    <th>Neues Passwort: </th><td align="center"><input class="button" type="password" name="passwordnew" size="30" maxlength="16"/></td>
                </tr>
                <tr>
                <th>Neues Passwort wiederholung: </th><td align="center"><input class="button" type="password" name="passwordnew2" size="30" maxlength="16"/></td>
             </tr>
                    
    <th>Account Feature:</th><td align="center">
    <select name="tbc" type="select">
    <option value="0">Normal</option>
    <option selected value="8">Burning Crusade</option>
    </select></td>
                    
            </table>
            <input type="button" class="button" value="Back" onClick="history.go(-1)" />
            <input type="submit" value="Create" class="button"/>
            </form>

           
          <?  if (!empty( $error )){
                echo 
    '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">' ;
                foreach(
    $error  as  $text )
                    echo 
    $text . '</br>' ;
                echo 
    '</td></tr></table>' ;
            };
            if (!empty(
    $msg )){
                echo 
    '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">' ;
                foreach(
    $msg  as  $text )
                    echo 
    $text . '</br>' ;
                echo 
    '</td></tr></table>' ;
                exit();
            };
            
    ?>
     

        </div>
        </center>

    </table>
    <div align="center">
    <p id="done" style="width: 220px; font-weight: bold; color: #29b503; font-family: tahoma, arial, sans; font-size: 13px;">
    <font color= #468ba5 >Realmlist:</font><br /><font color="white">Deine Realmlist<br /><br />
    <font color= #468ba5 >Patch:</font><br /><font color="white">Deine Patchversion vom Server<br /><br />

    <font color="white">[</font><a href="Forum URL angeben"> <font color="#468ba5">Zum Forum</font> </a><font color="white">]</font><font color="white">[</font><a href="D:\Programme\World of Warcraft\Core\stats.xmlD:\Programme\World of Warcraft\Core"> <font color="#468ba5">Server Status</font> </a><font color="white">]</font><br />



                                                             <font color="white">[</font><a href="Forum URL angeben"> <font color="#468ba5">Passwort ändern</font>
    </body>
    </html>
    Das Problem ist bloß wenn ich das anschauen will, bleibt der Browser weiß --_--
    Ich weiß nicht warum..

    Hoffe einer von euch findet den Fehler..

    MfG
     
  2. 1. November 2008
    AW: Fehlersuche -_-

    Nur mal so:
    PHP:
         if ( $_POST [ 'passwordnew' ] !==  $_POST [ 'passwordnew2' ])  $error [] =  'Die neuen Passwörter stimmen nicht überein!'
    !== ist ein Typenvergleich. Wenn du Strings vergleichen willst nimm !=
    und: error_reporting(E_ALL|E_STRICT);
     
  3. 1. November 2008
    AW: Fehlersuche -_-

    Hi,

    schonmal versucht, zu schauen, an was es liegt?
    Das ist eigentlich das einfachste:

    Teste Dein Script erstmal komplett ohne die PHP-Sachen.
    Sollte es funktionieren, füge nach und nach wieder den Code hinzu und schau, wann es Fehler (bzw weißen Screen) gibt.
    Ansonsten kannst Du auch mal in der Fehlerkonsole, Firebug oder ähnlichem nachschauen, was die zeigen.

    btw: Bekommst Du ne völlig leere Seite oder steht im Quellcode etwas? ( Firefox -> rechtklick "Quelltext anzeigen")
     
  4. 1. November 2008
    AW: Fehlersuche -_-

    Danke an beide..
    Also es kommt ne komplett leere seite und quellcode auch leer..
    ich guck gleich mal durch und setz das PHP teil Ende um
     
  5. 1. November 2008
    AW: Fehlersuche -_-

    PHP:

    return  true ;
    {
    changePass ();
    }

    was solln das überhaupt. Oo
    Warum machste da { } ? ^^

    Das return ist btw außerhalb der Funktion wenn ich das richtig überflogen habe, damit wird dann der Aufruf der PHP Datei "beendet". Die { } kannste dir sparen wenn du nur ne Funktion aufrufen willst.
    Pack das return true mit in die Funktion.
     
  6. 1. November 2008
    AW: Fehlersuche -_-

    Also diese geschweiften Klammern nach dem return sind auf jeden Fall Fehl am Platz.

    Zu Sn0wm4n's Methode ist zu sagen, dass es auch hilft, das Script mit die-Befehlen zu überprüfen. D.h. du fügst alle paar Lines ein die("test"); ein, und wenn dieser Befehl noch ausgeführt wird, kannst du dir sicher sein, dass das Script bis dahin funktioniert.

    Zu aller letzt: dein Script lässt in der aktuellen Version SQL-Injections zu, mysql_real_escape_string ist dein Freund
     
  7. 1. November 2008
    AW: Fehlersuche -_-

    So gefunden.. danke an alle =)
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.