Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 21:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Regi [PHP] prob

Discussion on Regi [PHP] prob within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Newbielein's Avatar
 
elite*gold: 200
Join Date: Jan 2012
Posts: 544
Received Thanks: 47
Regi [PHP] prob

Also, mein Problem ist, dass ich nicht weiß, wie ich abfragen kann ob eine ID bereits vorhanden ist...

Das jetzige Script lässt es zu, dass beliebig oft die gleiche ID eingetragen wird...

Script:


Kann mir wer helfen? Möglichst "einfach" bitte, so das auch ich das versteh ^_^

Danke
Newbielein is offline  
Old 07/25/2012, 18:54   #2
 
. χaωe's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 287
Received Thanks: 111
Geht es um das user_id Feld ? Weil dann solltest du lieber bei der SQL-Tabelle das Feld auf 'Auto_Increment' stellen. Damit erhöt sich die ID bei jedem Eintrag um 1. Bei jeder Regestrierung einfach 0 reinzuschreiben ist doch sinnlos ?
Dennoch, um den Check zu machen ob der Benutzername schon vergeben ist einfach ne SQL-Abfrage starten und schauen ob er Werte zurück gibt.
Bsp:
PHP Code:
$userExists mysql_query("SELECT * FROM Users WHERE username = '".$username."'"); 
Dann schauen ob er ein Ergebniss zurück gibt
. χaωe is offline  
Thanks
1 User
Old 07/25/2012, 19:10   #3
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Quote:
$username = mysql_escape_string($_POST['username']);
$password = mysql_escape_string(sha1($_POST['password']));
trim deine Post eingabe, ansonsten kann man den code mit einem leerzeichen killen


Quote:
$username = mysql_escape_string(trim($_POST['username']));
$password = mysql_escape_string(sha1(trim($_POST['password'])));
kissein is offline  
Thanks
1 User
Old 07/25/2012, 19:16   #4
 
. χaωe's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 287
Received Thanks: 111
Quote:
Originally Posted by kissein View Post
trim deine Post eingabe, ansonsten kann man den code mit einem leerzeichen killen
Wenn du mit der Sicherheit dieses Codes anfangen willst...
Er sollte einen HTML-Sonderzeichen Parser auf die empfangenen Variablen anwenden, ansonsten kann man dort sehr gut für Injections ansetzen.
(Zumindest) Das Passwort sollte schon vor dem Senden per JavaScript durch einen einfachen Algorhytmus (Blowfish o.Ä.) verschlüsselt werden, ansonsten kann man die Daten sehr leicht angeln. Das sollte man nebenbei vor allem bei LogIn-Skripts beachten...
Man sollte natürlich auch beachten das der Zeichensatz mit der Kollation der Tabelle übereinstimmt..
Aber ich denke das sind alles Dinge die man für den Anfang nicht braucht und sich früher oder später sowieso erarbeiten muss.
. χaωe is offline  
Thanks
1 User
Old 07/25/2012, 19:22   #5
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Quote:
Originally Posted by . χaωe View Post
Wenn du mit der Sicherheit dieses Codes anfangen willst...
Er sollte einen HTML-Sonderzeichen Parser auf die empfangenen Variablen anwenden, ansonsten kann man dort sehr gut für Injections ansetzen.
(Zumindest) Das Passwort sollte schon vor dem Senden per JavaScript durch einen einfachen Algorhytmus (Blowfish o.Ä.) verschlüsselt werden, ansonsten kann man die Daten sehr leicht angeln. Das sollte man nebenbei vor allem bei LogIn-Skripts beachten...
Man sollte natürlich auch beachten das der Zeichensatz mit der Kollation der Tabelle übereinstimmt..
Aber ich denke das sind alles Dinge die man für den Anfang nicht braucht und sich früher oder später sowieso erarbeiten muss.
Schalte js aus und du sie werfen trotzdem unverschluesselt uebertragen
NotEnoughForYou is offline  
Thanks
2 Users
Old 07/25/2012, 19:27   #6
 
. χaωe's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 287
Received Thanks: 111
Quote:
Originally Posted by NotEnoughForYou View Post
Schalte js aus und du sie werfen trotzdem unverschluesselt uebertragen
Sicher aber 97% der User im Internet haben ihr JS permanent aktiviert. Man kann nicht alles absichern, aber soweit wie man es kann sollte man es auch tuhen.
. χaωe is offline  
Thanks
1 User
Old 07/25/2012, 19:37   #7
 
Newbielein's Avatar
 
elite*gold: 200
Join Date: Jan 2012
Posts: 544
Received Thanks: 47
ach ich hab mich schlecht ausgedrückt, mit id, meinte ich eig. Usernamen, (die id erhöht sich komischerweise bei jeder regi, trotz des scripts)
Newbielein is offline  
Old 07/25/2012, 19:40   #8
 
. χaωe's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 287
Received Thanks: 111
Damit ist deine Frage jetzt geklärt ?
Ja ich denke mal das du bei der Tabelle das Feld auf Auto_Increment gestellt hast. Dann ist es egal ob das Skript etwas reinschreiben will, die Priorität von MySQL ist in dem Fall höher.
. χaωe is offline  
Thanks
1 User
Old 07/25/2012, 19:42   #9
 
Newbielein's Avatar
 
elite*gold: 200
Join Date: Jan 2012
Posts: 544
Received Thanks: 47
nein ist sie nicht :S

Ich hatte mich nicht richtig ausgedrückt.

Ich möchte verhindern, das sich zwei User mit gleichem Namen registrieren
Newbielein is offline  
Old 07/25/2012, 19:59   #10
 
. χaωe's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 287
Received Thanks: 111
Das habe ich doch in meinem ersten Post erwähnt, sogar mit teilcode. Einfach gucken ob er ein Ergebniss liefert, wenn ja nicht eintragen und Fehlermeldung ausgeben, wenn kein Ergebniss vorliegt eintragen...
. χaωe is offline  
Thanks
1 User
Old 07/25/2012, 20:06   #11
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Quote:
Ich möchte verhindern, das sich zwei User mit gleichem Namen registrieren
Auf die Datenbanktabelle mit den usernamen dann den Index setzen um die suche zu beschleunigen/ db entlasten.

@. χaωe
das läuft bei mir automatisch mit ein um das Debugen möglichst gering zuhalten. Leerzeichen übersieht man leicht :/

PHP Code:
<?php
include ('mysql.php');

if (isset (
$_POST['submit'])) {
    
$username mysql_escape_string(trim($_POST['username']));
    
$password mysql_escape_string(sha1(trim($_POST['password'])));
    
    if (!empty (
$username) && !empty ($password)) {
        
$sql "SELECT username FROM Users WHERE username='".$username."'";
        
$nums mysql_num_rows(mysql_query($sql));
        if(!
$nums){
            
$sql "INSERT INTO Users (user_id,username,user_password,user_regdate) VALUES ('0','".$username."','".$password."','".time()."')";
            
$res mysql_query($sql);
            if(
$res)
                echo 
'You are now registered!';
        }
        else
            echo 
"username vorhanden";

    }else {
        echo 
'You must enter a username and a password!';}
}else {
    echo 
'<form action="register.php" method="post">
    Username: <input type="text" name="username" /><br />
    Password: <input type="password" name="password" /><br />
    <input type="submit" name="submit" value="Register" />
    </form>'
;

}
?>
kissein is offline  
Thanks
1 User
Old 07/25/2012, 20:30   #12
 
Newbielein's Avatar
 
elite*gold: 200
Join Date: Jan 2012
Posts: 544
Received Thanks: 47
danke, funktioniert steige zwar noch nicht ganz dahinter, aber das kann ich mir daraus wohl alles erschließen

würd noch öfter thx drücken wenn ich könnt
Newbielein is offline  
Old 07/25/2012, 20:57   #13
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Das SQL Statement solltest du aber trotzdem anpassen, wie . χaωe bereits erklärt hat, macht es keinen sinn user_id jedesmal auf 0 zusetzen / autoincrement ist.


Quote:
$sql = "SELECT username FROM Users WHERE username='".$username."'";
Abfrage für den username
Quote:
$nums = mysql_num_rows( //liefert anzahl oder false
mysql_query( //liefert eine mysql resource oder false
$sql //Sql statment
));
die anweisung im quellcode einfach von rechts nach links lesen oder auf mehrere variable aufteilen, aber da es nur eine abfrage für die problemlösung reicht macht das vorhalten der rückgabewerte von mysql_query keinen sinn.
Quote:
if(!$nums){
in diesem fall wollen wir in $nums ein false haben -> username noch nicht vorhanden und mit negation wirds halt true
kissein is offline  
Thanks
1 User
Old 07/25/2012, 22:15   #14
 
elite*gold: 0
Join Date: Jun 2012
Posts: 187
Received Thanks: 58
Quote:
Sicher aber 97% der User im Internet haben ihr JS permanent aktiviert. Man kann nicht alles absichern, aber soweit wie man es kann sollte man es auch tuhen.
versuchs einfach mal mit ssl, wozu gibts den mist denn wohl sonst.....
tnd0 is offline  
Thanks
1 User
Old 07/26/2012, 08:00   #15
 
Newbielein's Avatar
 
elite*gold: 200
Join Date: Jan 2012
Posts: 544
Received Thanks: 47
danke, jetzt hab ichs verstanden
Newbielein is offline  
Reply


Similar Threads Similar Threads
Regi Prob.
07/29/2011 - Metin2 Private Server - 2 Replies
Hey leute. ich hab ein regi problem. habe eine regipage wie bei einem tut gemacht. ich komme drauf doch andere nicht. bitte un hilfe. (MySql und Apacha an)
Prob mit Regi page!
05/16/2010 - Metin2 Private Server - 16 Replies
Habe alles genau nach tut gemacht, ich selber kann ein acc erstellen aber Leute die in Hamachi sind können keine erstellen! Woran kann das liegen?
Hilfe regi page prob.
03/21/2010 - Metin2 Private Server - 5 Replies
Wie oben beschrieben habe ich probleme mit meiner regi page das Problem ist : ich komme drauf kann auch acc machen die funtzen aber bei den anderen steht fehler beim verbinden usw.. meine regi läuft mit XAMPP , ich habe dennen auch die richtige addresse gegeben also mit dem port :8080/ und ohne die sind nicht gegangen kann mir vilt einer sagen warum ?:confused: Und gibt es vilt noch ein anderes programm womit ich meine regi zum laufen bringen kann damit die anderen sich auch nen acc...
Prob? mit regi^^
02/22/2010 - Metin2 Private Server - 2 Replies
Hallo ich habe ein server gemacht mit sun box virtual wollte wissen wie ich ne regi machen kann die öffnetlich ist danke^^
Vipmt2 Regi Prob
05/26/2009 - Metin2 Private Server - 7 Replies
Hi, wenn ich mich auf VipMt2 Registrieren will kommt immer diese Fehlereldung: 刹女捏,扣洗 Übersetzt: Pinch Bremse und Frauen die Wäsche -.-''



All times are GMT +1. The time now is 21:45.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.