WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   sql abfrage prüfen (login fenster) (http://www.wcm.at/forum/showthread.php?t=151795)

fenster 30.11.2004 12:59

sql abfrage prüfen (login fenster)
 
hallo

habe da folgendes problem

habe mir da ein login fenster gemacht mit einer
server seitigen session

in meiner datenbank sind user daten mit
benutzter name umd passwort gespeichert

jetzt funz das wenn ich mich zb:
mit user sepp und passwort 123456 einlogge

wenn ich aber einen user eingebe im login fenster
der nicht in der datnebank steht und natürlich auch kein pw


kommt eine fehlermeldung die nicht kommen soll
connection zu datenbank fehlt usw....




wie kann ich jetzt mit php abfragen bzw. prüfen
ob der user und das pw das in das formular
eingetragen wurde überhaubt in der datenbank steht ?

gruß
fenster

T.dot 30.11.2004 13:18

mach doch einfach ne abfrage

select count(*) from User where password=123 and user=456

davon kriegst entweder 1 oder 0 zrück (außer du hast mehrer user mit gleichem pwd/user ;) ), je nachdem ob vorhanden oder nicht.

mfg Thomas

fenster 30.11.2004 14:51

die abfrage habe ich schon
 
hallo

die abfarge habe ich schon

Code:

<?php
session_start(); // Start der Sitzung
// Session Variable müssen "global" sein
global $strName, $Password ;
// Variable "registrieren" siehe weiter unten



// Prüfung, wenn Benutzer keine Berechtigung hat
echo "Ihre Session: $strName<hr>";

if(!isset($strName) || !isset($Password))
  {
 
      //global $POST;

    if(isset($_POST["form_username"]))
      {
        $zw_username    =  $_POST["form_username"];
        $zw_passwort    =  $_POST["form_password"];
                               
        // Verbimdung zu datnbank herstellen
                               
                                  include ("../connect_database.inc.php");
                               
                                // * Abfrage der Datenbank
       
              $sql_Abfrage = "SELECT passwort FROM kunde WHERE
                                                kundennr = $zw_username";
       
              // * Auslesen der Zeilen die in der Datenbank sind *******
       
              $Resultat = mysql_query($sql_Abfrage)
                or die("
Query fehlerhaft SQL meldet: ".mysql_error());
                               
                                 
              // * Meldung für Admin *******               
              // echo "SQL meldet: ".mysql_error();
       
           
                       
                       
                          $v = mysql_result($Resultat,0,passwort);
                               
                               
                                if($zw_passwort != $v)
          {
            echo "

Keine Berechtigung / Prüfen Sie, bitte, Ihre Eingaben

                  <a href = 'login.php'>Neuer Login-Versuch</a>";
            exit;
          }
     
          else
          {
            session_register("strName");
            $strName    =  $zw_username;
            session_register("Password"); .................






aber wie frage ich jetzt mit einer if
anweisung ab


gruß
fenster

T.dot 30.11.2004 15:06

Nein, die Abfrage hast du nicht, aber macht nix.

wenn du deine sachen so lassen willst:

$result = mysql_query("SELECT passwort FROM kunde WHERE kundennr = $zw_username);
$row = mysql_fetch_row($result);

und dann schaust halt ob im array was drin is:
if (count($row) > 1)
...

und du solltest nicht so:
if(!isset($strName) || !isset($Password))

auf Session Variablen zugreifen!

sondern:
vars registrieren: session_register("vari")
überprüfen ob registriert: session_is_registered("vari")
zugreifen: $_SESSION['vari'] = ...

mfg T.

fenster 30.11.2004 16:36

also irgentwie funzt das immer noch nicht
 
hallo

also irgentwie funz das immer noch nicht
ein zweites mal abfragen muss ich ja nicht


Code:

$v = mysql_result($Resultat,0,passwort);
                               
                                if (count($v) > 1){
            echo "true";
          }
            else {
            echo "false";
                                    exit;
          }


T.dot 30.11.2004 16:52

Re: also irgentwie funzt das immer noch nicht
 
Zitat:

Original geschrieben von fenster
also irgentwie funz das immer noch nicht

ich rate ja gerne, aber manchmal komm ich einfach ned drauf: was genau funktioniert nicht, oder gar nix, ab wo nicht, in welcher zeile ist der fehler, welcher fehler, Was für eine Ausgabe kommt beim testen deines codes?

Zuhause hätt ich ziemlich genau dein script rumliegen, dauert aber noch bis ich dort mal vorbeikomm.

mfg Thomas

fenster 30.11.2004 17:03

datenbank
 
hallo

ich habe in meiner datenbank den user 2 mit dem pw 123456
angelegt
wenn ich user 2 und pw 123456 im login fenster
eingebe funktioniert das einloggen

wenn ich aber jetzt einen user zb.: user 3 den
es in der dantbank nicht gibt

im login script eintrage
dann möchte ich eine fehlermeldung haben
dass der user nicht vorhanden ist oder sonstiges ...

ich brache hier also eine prüfung ob es den user 3
überhaubt gibt

und das ist mein prob.


wenn ich user 3 ohne pw in das login fenster eingebe
kommt die fehlermeldung

Warning: Unable to jump to row 0 on MySQL result index 2 in c:\programme\easyphp\www\testprojektkunden\login\l ogin.php on line 42
false



gruß
fenster

_m3 30.11.2004 18:34

Tja, so ein RTFM hilft doch wahre Wunder.
Zitat:

Fehler, die vom MySQL Server kommen, führen nicht mehr zu einer Ausgabe von Warnungen. Stattdessen sollten Sie die Funktion mysql_errno() verwenden, um die Fehlernummer zu erhalten.
http://www.php.net/manual/de/function.mysql-errno.php

T.dot 30.11.2004 18:34

lesen hilft: http://www.selfphp.info/funktionsref...onen/index.php

Forumssuche hilft

und Google hilft!

das reicht bei mir zum überprüfen:
PHP-Code:

      $user "123";
      
$pwd "4567";

    
$result mysql_db_query("dbtest","SELECT * FROM User WHERE Nummer='$user' AND Passwort='$pwd'");
    
    
$row mysql_fetch_row ($result);
    
    if(
is_array($row))
    {
        echo 
"eingeloggt";
    }
?> 


fenster 30.11.2004 19:06

funzt schon
 
hallo


danke für die tipps
funzt schon


gruß
fenster


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag