PHP Login script!!! HELP!!!

02/10/2011 09:57 deathline4ever#1
hallo,

Also ich habe mal ein PHP Login Script gecoddet und nun also wenn ich mich einlogge auf der login seite komme ich immer weiter auf die seite wo das passwort überprüft wird nur das dumme das passwort wird nicht überprüft.Würde hilfe brauchen Scripts folgen.

PHP Code:
<?php

$username 
$_POST['username'];
$password $_POST['password'];

if (
$username&&password)
{

$connect mysql_connect("localhost","root","") or die ("Verbindung fehlgeschlagen!");
mysql_select_db("db1270432-phplogin") or die ("Datenbank wurde nicht gefunden!");


$query mysql_query("SELECT * From users WHERE username='$username'");

$numrow mysql_num_rows($query);


if (
$numrows!=0)
{


while (
$row mysql_fetch_assoc($query))
{
$dbusername =$row['username']
$dbpassword $row['password']



//check to see if the match!
if ($username==$dbusername&&$password==&dbpassword)
{

}
else
echo 
"Falsches Passwort!";



}
else
die (
"Diser User existstiert nicht!");





{



}
else
die(
"Bitte gebe sie ihren Username und Passwort ein.");



?>

Und jetzt bitte hilft mir was stimmt hier nicht.

mfg.deathline4ever
02/10/2011 10:19 -AmA-#2
1. benutz session variablen um zu sehen ob jemand eingelogt ist oder nicht.
2. schütz dein skript gegen sql injections
3. auf welcher zeile liegt der fehler?
02/10/2011 10:23 deathline4ever#3
1. Danke gleich mal ausprobieren
2. Erklär mal bitte genauer wie ich das mache
3. Ich habe vorher mit dem Editor gearbeitet jetzt wie ich das gesehen habe lad ich mir den php editor runter weils dir anzeigt wo der fehler ist.

mfg.deathline4ever und danke für die schnelle antwort
02/10/2011 10:33 Strean#4
versuch mal anstatt :

$row = mysql_fetch_assoc($query)

das :

$row = mysql_fetch_object($query);

wenns nicht klappt stelle ich dir gerne mein script zur verfügung und so wie es aussieht hast du ahnung von php also solltest du mit meinem script keine schwierigkeiten haben..

PHP Code:
<?php

  $host 
"";
  
$user "";
  
$pw "";
  
$db "";
  
  
$connect mysql_connect($host,$user,$pw)
    or die (
mysql_error());
    
  
mysql_select_db($db,$connect)
    or die (
mysql_error());

?>

<html>
  <head>
    <title>Login Seite</title>
  </head>
  <body>
    <center>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        Username:<br /><input name="username" type="text" size="30" maxlength="15" /><br />
        Password:<br /><input name="password" type="password" size="30" maxlength="15" /><p />
        <input type="submit" name="gesendet" value="Senden !"/>
      </form>
    <?php
    
if(!empty($_POST))
    { 
      if(
$_POST['password'] == "")
      {
        echo 
"<p />Bitte ein password eingeben<br />"?>
        <p style="font-size:40px; font-weight:bold; text-decoration:blink; color:red; margin-top:100px;">NO HAXXORS</p>
        <?php exit;
      }
      
$username $_POST['username'];
      
$pw $_POST['password'];
      
       
$results mysql_query("SELECT * FROM account WHERE username LIKE '$username'"$connect);
       
$row mysql_fetch_object($results);

       if(
$row->password == md5($pw)) // md5 hash password
       
{
         echo 
"<p />Login erfolgreich.<br />";
         if(
$row->perms == 1)
         {
           echo 
"<p />Willkommen auf der mitglieder Seite : ".$row->username;
           echo 
'<p style="font-size:40px; font-weight:bold; text-decoration:blink; color:green; margin-top:100px;">Congratulations !</p>';
         }
       }
       else
       {
        echo 
"<p />Bitte überprüfe deine Eingaben.";
        echo 
'<p style="font-size:40px; font-weight:bold; text-decoration:blink; color:red; margin-top:100px;">NO HAXXORS</p>';
       }
    }    
    
     
?>
     
    <!-- <p style="font-size:40px; font-weight:bold; text-decoration:blink; color:red; margin-top:100px;">NO HAXXORS</p> -->
    
    </center>
  </body>
</html>
02/10/2011 11:23 deathline4ever#5
Echt gut Danke dein Script hat funktioniert konnte meinen noch nicht die fehler beheben noch immer auf der suche nach einem guten php editor.

Kannste mir bitte einen guten nennen sollte kostenlos sein und in Deutsch oder english

danke

mfg.deathline


Ach und vergessen PHP ist nicht alzu schwer ich codde alles selber und wenn ich nicht weiterfinde guck ich mal auf youtube nach lösungen und dann frag ich in foren wie hier nach.
02/10/2011 13:12 Strean#6
ich empfehle dir Notepad ++ :

unterstützt syntax highlighting gut, gruppiert deine codeabschnitte ordentlich, ist deutsch, du kannst das design wechseln und es hat direkte ftp anbindung die du richtig konfiguriert und dann jedes mal wenn du dein script speicherst lädt es sich automatisch auf dein webserver hoch

Hoffe auch das dir mein script gefällt ;)
02/10/2011 13:33 deathline4ever#7
Also danke der Login Script funktioniert schon besser nur wenn ich mich einloggen will/ mit datenbank verbinden kommt diese fehlermeldung

Code:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /data/multiserv/users/510792/projects/1270432/www/index.php on line 40
Wäre nett wenn mir das einer helfen würde also habe schon versucht mich da ein bischen rumzuspielen.

ich schätzte mal auf 1 möglichkeit wirds rausgehen die datenbank stimmt nicht aber das dumme ist ich kenn mich mit mysql nicht so gut aus wenn das stimmen könnte das bei der datenbank was falsch ist postet bitte lösungen

danke.deathline4ever
02/10/2011 14:56 Strean#8
hmm gute frage mich interessiert erstmal woher denn das mysql_fetch_assoc()
kommt, weil über mysql fetch object in der schleife von mir ließt er buchstabe für buchstabe den string aus der datenbank =/

schreib mal bitte was du alles an meinem script verändert hast vlt kann ich dir dann mehr helfen ^^
02/10/2011 15:02 deathline4ever#9
Also ja sry object mit assoc ausgebessert normalerweise steht object dort bei warning hab nichts ausgebessert aus hoster datenbank username und passwort und habe alles durchgekuckt ob alles stimmt und es stimmt alles soweit.
Finde echt den grund nicht
02/10/2011 15:18 douside#10
Im Fehler steht das du ein Wert der Boolean ist zurück erhälst, ich gehe davon aus das du ein false erhälst weil dein query nicht ausgeführt werden konnte.
Versuch mal folgendes:
"SELECT * FROM account WHERE username LIKE '$username'"
zu "SELECT * FROM `account` WHERE `username` = '$username'"

Vielleicht solltest du auch mal nachschauen ob die Spalte username überhaupt in deriner Datenbank existiert.
02/10/2011 15:51 deathline4ever#11
Also zu deiner Antwort datenbank ist vorhanden dann hab ich das versucht.
dann hab ich jetzt ne frage bin mir nicht sicher

$host = "localhost"; <--- und localhost das passt
$user = "username von phpmyadmin";
$pw = "passwort von phpmyadmin";
$db = "Datenbankname";


stimmt das so?? oder bin ich falsch


[Only registered and activated users can see links. Click Here To Register...]

Hier auch noch bild von der datenbank
ich hoffe ich helf euch/mir damit weiter.

mfg.deathline4ever
02/11/2011 13:49 Strean#12
also 1. Mach Auto Increment bei der id und int(5) reicht völlig :D
02/11/2011 14:50 deathline4ever#13
So gemacht also ich habs in einer datenbank die hab in dem script angegeben es stimmt auch alles soweit und tables muss ich das auch angeben ich glaub nicht oder?? und soweit stimmt ja alles hmmm ne gute frage was da nicht stimmen kann.
02/19/2011 17:11 Rangada#14
Geh beim Query lieber auf nummersicher und lass das ganze als Normalen String behandeln, bevor du die abfrage durchführst (sollte es auch, wenn du es als Funktionsparameter setzt, aber PHP ist manchmal etwas unlogisch):

PHP Code:
<?php
/*
// Basis Stringzusammenbau ftw !! (Die Punkte nicht vergessen)
// Da du nur einen Benutzernamen erhalten kannst, brauchst du nach dem ersten Match nicht weitersuchen(LIMIT 1)
*/
$sql "SELECT * FROM account WHERE username = '".$username."' LIMIT 1";
$results mysql_query($sql);
// danach mit num_rows  überprüfen, ob der username existiert

?>
Außerdem wie gesagt:

id auf Auto_Increment und username evtl. auf unique
02/19/2011 21:26 black0utCpp#15
md5 ist eine unsichere Verschlüsselung es gibt rießige Datenbanken von md5 gecrackten Worten siehe md5cracker.org