| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: Einfache SQL Abfrage zwingt mich in die Knie *HILFE* im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moin Leute, Ich bin gerade dabei für meine Site n Loginscript zu schreiben Doch scheitere ich bei der SQL ...
![]() |
| | #1 (permalink) |
| Registriert seit: 12.10.05 ![]() Likes: 0 | Einfache SQL Abfrage zwingt mich in die Knie *HILFE* Anzeige Moin Leute, Ich bin gerade dabei für meine Site n Loginscript zu schreiben Doch scheitere ich bei der SQL Abfrage. Code: $result = mysql_query("SELECT * FROM login WHERE username='user'"); Ich kann noch ein klares " SELECT * from login WHERE username!= "" " Da bekomm ich Ergebnisse. Ich kann auch einzelene Rows darstellen. Aber DAS diese klitzekleine Abfrage mag mich nicht. Dazu das ihr auch ned glaubt ich nutz den falschen Namen noch n htmlsnipped den ich hierzu verwende: Code: $user = $_POST["user"]; $passwort = $_POST["pass"] MfG, Tk |
| | |
| | #2 (permalink) |
| Ähm, muss es nicht == heißen? mfg $oul
__________________ Der eigene Wille müsste stets ein wenig mächtiger sein, als es das eigene Selbst ist. Aber Wunschdenken stellt ein Risiko dar und so etwas können wir uns in einem Weltkapitalismus nicht leisten. | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Administrator ![]() Registriert seit: 02.10.01 ![]() ![]() Likes: 30 | Zitat:
das muss $user heißen Deine Abfrage ist allerings nicht sicher, da der gepostete Inhalt ungefiltert im Query Verwendung findet. Sicherer wäre es, wenn zum Beispiel nur mit Hashes gearbeitet werden würde. z.b. WHERE MD5(username)=MD5($user)
__________________ RL sux big time... auch 2012! Deleting pr0n is like killing your best friend [HaBo] bei Facebook - Werde Fan | |
| | |
| | #4 (permalink) |
| Moderator ![]() | $oul: Nein, mySQL vergleicht mit einem einfachen Gleichheitszeichen. Wegen des Problems, welches Mackz anspricht: Stelle vorher sicher, dass kein fremder Code in $user landen kann, zur Not durch escapen von Quotes (falls magic_quotes nicht aktiviert sind). |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 12.10.05 ![]() Likes: 0 | Hi, Ersteinmal danke für eure Antworten nur ist es leider nichts davon. Das es in SQL ned == ist is klar ^^ Das mit dem $ is Jacke wie Hose wie ich in einige Beispielscripten sah und ich habe sowieso beides ausprobiert, hier nur letzten Versuch gepostet. Das Sicherheitsproblem wird noch gelöst. Das Passwort verschlüssel ich natürlich nach MD5 den Usernamen <B>bisher</B> nicht, ist aber ne gute Idee um aufs escapen zu verzichten!! OO ![]() Also kann es sich nun noch jemand erklären ![]() MfG, Teekayo? |
| | |
| | #6 (permalink) |
| Registriert seit: 09.01.05 ![]() Likes: 0 | bitte anstatt: Code: $user = $_POST["user"]; $passwort = $_POST["pass"]; Code: $user = mysql_real_escape_string($_POST["user"]); $passwort = mysql_real_escape_string($_POST["pass"]); Der korrekte Query ist ja oben schon erklärt worden Btw. bitte poste immer Fehlermeldungen dazu falls welche kommen oder was die ausgabe ist. Das hilft bei der Fehlersuche Imrahil |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 12.10.05 ![]() Likes: 0 | ... nur damits man sieht ich hab geantwortet hast unpassend gepostet ^^ mfg, tk |
| | |
| | #8 (permalink) | |
| Administrator ![]() Registriert seit: 02.10.01 ![]() ![]() Likes: 30 | Zitat:
Mit 'user' sucht er nach dem String "user" Mit '$user' sucht er nach dem Inhalt der Variable $user. Hier ein Login-Script Tutorial: http://www.php-resource.de/tutorials/read/38/1/
__________________ RL sux big time... auch 2012! Deleting pr0n is like killing your best friend [HaBo] bei Facebook - Werde Fan | |
| | |
| | #9 (permalink) |
| Registriert seit: 29.01.06 ![]() Likes: 0 | Ich glaube, du musst es so machen, aber ich bin mir nicht sicher, versuchs einfach mal : Code: $result = mysql_query("SELECT * FROM login WHERE username='user'");
$rows = mysql_fetch_array($result, MYSQL_NUM);
if($_POST['user']==rows[1]&&$_POST['pass']=rows[2]){
// Login erfolgreich
}else{
// Falsche daten
} cya xsheep |
| | |
| | #10 (permalink) |
| Registriert seit: 24.10.05 ![]() Likes: 0 | Kann man dann aber nicht nur einen User machen? |
| | |
| | #11 (permalink) |
| es muss auf jedenfall $user sein, alles andere wie schon gesagt ist falsch weiterhin ist dann noch zusagen das ein SELECT * sehr aufwendig ist, du solltest lieber angeben was genau du haben willst. echo mysql_error(); sollte auch nach jedem query drin sein. und auch das escapen wie imrahil es schon vorgeschlagen hat ist wichtig, du kannst aber auch mysql_escape_string statt mysql_real_escape_string verwenden, seine variante passt sich jedoch der verwerdeten verbindung an | |
| | |
| | #12 (permalink) |
| Themenstarter Registriert seit: 12.10.05 ![]() Likes: 0 | Hallo, Ich habs seid Gestern, das Board war nur ledier nicht in der Lage meine Antwort zu posten. Es lag daran das ich nur array[1] und 2 ausgegebe habe aber nach 0 gefragt hatte, kein wunder das dort nichts erscheint Oo Mit dem escapen, das ist lustig, ich hatte nämlich schon selbst einige SQL injections versucht aer bemerkt das Php automatisch "stripslashes" ausführt. Trotzdem danke für eure Hilfe, MfG, TeeKayo? |
| | |
| | #13 (permalink) |
| du meinst wohl addslashes? Du solltest dich aber nicht drauf verlassen das gpc magic quotes an ist, denn genau das ist dafür verantwortlich, soweit ich mich erinnere ist das in einer der neueren php versionen schon nichtmal mehr dabei | |
| | |
| | #14 (permalink) |
| Themenstarter Registriert seit: 12.10.05 ![]() Likes: 0 | Hi, Ja klar mein ich Add ned strip ... ![]() Wieso verlassen, ich "verlasse" mich nciht darauf. hab nur gesehen das es mir nicht möglich war ne Injection zu machen und das ich dann einen neuen user namens" \'Drop ..." in meiner DB hatte Wenn ich fertig bin mit dem gröbsten auf der Page kommen noch einige checks, da könnt ihr euch dann auch gerne wieder beteiligen !MfG, TK |
| | |
| | #15 (permalink) | |
| Registriert seit: 02.05.06 ![]() Likes: 0 | Zitat:
//EDIT Also wenn user eine PHP-Variable ist muss auf jeden Fall ein $ davor. Der übersicht halber würde ich es noch escapen. Zumindest mache ich das immer. Und zur Fehlervorbeugung um Tabellen-/Spaltennamen ` setzen. Sprich: Code: $result = mysql_query("SELECT * FROM `login` WHERE `username`='".$user."'"); | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mysql-Abfrage stellt mich vor ein Problem | 1000sassa | (Web-) Design und webbasierte Sprachen | 2 | 12.02.07 14:03 |
| Apache hasst mich,php hilfe | Headmaster | Code Kitchen | 4 | 01.02.07 13:16 |
| MySQL Abfrage bringt mich zur Verzweiflung | MorbZ!!! | (Web-) Design und webbasierte Sprachen | 7 | 25.07.06 08:24 |
| Skype/Hilfe- Ich höre mich selber! | luky | Die Problemzone | 7 | 17.05.06 09:09 |
| Hilfe [Scotty] hat mich gescannt!! | Easyrider | (In)security allgemein | 16 | 18.10.04 02:53 |