[PHP] MySQL Abfrage Problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von B30w0lf, 19. Februar 2007 .

Schlagworte:
  1. 19. Februar 2007
    MySQL Abfrage Problem

    Hallo an alle Progger hier im Board :tongue:

    Ich habe folgendes Problem. Nach einem erfolgreichem Login soll dem User ($User) die Nachrichten die an ihn gesendet worden angezeigt werden also ein PMS ^^

    Aber bei Abfrage kommt folgender Fehler:

    Code:
    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\pms\login.php on line 17
    Hier nun der Code ich habe keine Ahnung warum der Fehler angezeigt wird. Ich hoffe jemand kann mir helfen...

    PHP:
    <? php

    include  "inc/config.inc.php" ;
    include 
    "inc/paths.inc.php" ;

    echo 
    '<title>' . $Servicename . '</title>' ;
    echo 
    '<body bgcolor="' . $Hintergrundfarbe . '" text="' . $Textfarbe . '">' ;


    $DatabasePointer  mysql_connect ( $SQL_Host $SQL_USER $SQL_PASS );
        
    mysql_select_db ( $SQL_DB $DatabasePointer );
        if(
    mysql_num_rows ( mysql_query ( "SELECT * FROM `pms_user` WHERE Benutzername='" . $_POST [ 'Benutzer' ]. "' AND Passwort='" . md5 ( $_POST [ 'Passwort' ]). "'" $DatabasePointer ))== 1 )
        {
            
    $User = $_POST [ 'Benutzer' ];
            echo 
    '<center>' . "Willkommen  $User  im PMS Server." . '</center>' ;
             echo 
    '<br>' ;
            
    $NewMail = mysql_result ( mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`= $User " ), 0 );
                    echo 
    $NewMail ;
        }
        else
        {
            echo 
    "Der User und/oder das Passwort wurden nicht gefunden!" ;
        }
    ?>
    So long

    B30w0lf
     
  2. 19. Februar 2007
    AW: MySQL Abfrage Problem

    mein tipp: lass dir mal mit mysql_error den fehler ausgeben
    Code:
    SELECT `titel` FROM `pms` WHERE `empfaenger`= '$User'
    da fehlten anführungszeichen um $User
    wobei ich das system eh für doof halte, aber das wirst du dann merken falls die abfrage funktioniert
     
  3. 19. Februar 2007
    AW: MySQL Abfrage Problem

    Noch was anderes nicht direkt auf deine Frage bezogen:
    Code:
    echo [COLOR="Red"]'[/COLOR]<center>[COLOR="Red"]'[/COLOR].[COLOR="Red"]"[/COLOR]Willkommen $User im PMS Server.[COLOR="Red"]"[/COLOR].[COLOR="Red"]'[/COLOR]</center>[COLOR="Red"]'[/COLOR];
    Wieso mischst du die Anführungszeichen? Geht das überhaupt?

    Und: Kontrollier deine $_POST[] Variablen. Willst ja nicht das sich da ne SQL-Injection einschleicht. Schreib dir ein paar Kontrollfunktionen.
     
  4. 20. Februar 2007
    AW: MySQL Abfrage Problem

    Ja man kann die Anfuehrungszeichen durchaus mischen. Und woher willst du wissen, ob er seine $_POST oder $_GET Daten nicht filtert? Nur weil es in dem Snippet nicht drin ist?
     
  5. 21. Februar 2007
    AW: MySQL Abfrage Problem

    PHP:
    <? php

    include  "inc/config.inc.php" ;
    include 
    "inc/paths.inc.php" ;

    echo 
    '<title>' . $Servicename . '</title>' ;
    echo 
    '<body bgcolor="' . $Hintergrundfarbe . '" text="' . $Textfarbe . '">' ;

    $sqlc  = array( "host"  =>  $SQL_Host "user"  =>  $SQL_user "pass"  =>  $SQL_PASS "name"  =>  $SQL_DB );

    function 
    db () 
    {

    global 
    $sqlc ;

    $con  mysql_connect ( $sqlc [ 'host' ],  $sqlc [ 'user' ],  $sqlc [ 'pass' ]);
    $sel  mysql_select_db ( $sqlc [ 'name' ]);

        if(!
    $con ) die( "Falsche Zugangdaten" . mysql_error ());
        if(!
    $sel ) die( "Falscher Datenbankname" . mysql_error ());

    }

    $password  md5 ( $_POST [ 'Passwort' ]);
    $username  mysql_escape_string ( $_POST [ 'Benutzer' ]);
    // $username = strip_tags($_POST['Benutzer']);


    $sql  "SELECT * FROM `pms_user` WHERE Benutzername= ' $username ' AND Passwort=' $password '" ;
    $query  mysql_query ( $sql );

    db ();

    if(!
    $query )  echo  "Der User und/oder das Passwort wurden nicht gefunden!" ;
    else {

        
    $num_rows  mysql_num_rows ( $query );  // für was auch immer...

                
    echo  '<center> Willkommen ' . $username . ' im PMS Server</center>
        <br>'
    ;
                
        
    $query  mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`= $username " );  // ORDER BY id DESC LIMIT 0, 1

            
    if(! $query ) die( mysql_error ());
            else {
                            
                            
    $num_rows  = @ mysql_num_rows ( $query );

                                    if(
    $num_rows  == "" ) die( "Fehler!" );

                
    $result  mysql_fetch_row ( $query );

                    for(
    $i  0 $i  $num_rows $i ++)
                    {
                    echo 
    $result [ $i ];
                    }
            }

    }

    ?> 
    probier mal aus, ahbs ned getestet oder sonst was
     
  6. 21. Februar 2007
    AW: MySQL Abfrage Problem

    Code:
    SELECT `titel` FROM `pms` WHERE `empfaenger`=$User
    Du musst $User in Hochkommate bzw. Anführungszeichen setzen.
     
  7. 22. Februar 2007
    AW: MySQL Abfrage Problem

    so muss das aussehen:

    PHP:
     $NewMail = mysql_result ( mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`=' " . $User . " '),0" ); 
    MfG
    KlausTrofobie
     
  8. 22. Februar 2007
    AW: MySQL Abfrage Problem

    1. Syntaxfehler (siehe Syntaxhighlighting)
    2. Muss das so nicht aussehen. Das $User in Hochkommata zu setzen, wie dutziman bereits sagte, reicht voellig.
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.