Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

benutzer registrieren

Diskussion: benutzer registrieren im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Code: <?php $benutzer[1]["Nickname"] =$nick ; $benutzer[1]["Kennwort"] =$pass ; $benutzer[1]["Nachname"] =$vorname ; $benutzer[1]["Vorname"] = $nachname ; $connectionid = mysql_connect("localhost","***","***"); if ...

Antwort
Alt 14.11.07, 13:23   #1 (permalink)
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard benutzer registrieren

Anzeige

Code:
<?php  

$benutzer[1]["Nickname"] =$nick ; 
$benutzer[1]["Kennwort"] =$pass ; 
$benutzer[1]["Nachname"] =$vorname ; 
$benutzer[1]["Vorname"] = $nachname ;
  
$connectionid  = mysql_connect("localhost","***","***"); 
if (!mysql_select_db ("***", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 


while (list ($key, $value) = each ($benutzer)) 
{   $sql = "INSERT INTO ".
    "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
  "VALUES ('".$value["Nickname"]."', '".
                       md5 ($value["Kennwort"])."', '".
                       $value["Nachname"]."', '".
                       $value["Vorname"]."')"; 
  mysql_query ($sql); 

  if (mysql_affected_rows ($connectionid) > 0) 
  { 
    echo "Benutzer erfolgreich angelegt.<br>\n"; 
  } 
  else 
  { 
   echo "Fehler beim Anlegen der Benutzer.<br>\n"; 
  } 
} 
?>
hallo,
ich habe mal wieder en problem und zwar folgendes,
ich versuche ein script in php zu schreiben mit welchem sich ein benutzer registrieren kann, und nun habe ich folgendes probelm und zwar will ich dass eben ein name nur einmal vorkommen kann....
wie könnte ich das machen??
Virus ist offline   Mit Zitat antworten
Alt 14.11.07, 13:52   #2 (permalink)
IsNull
Guest
 
Likes:
Standard

Du kannst ja abfragen, ob der Name schon in der Tabelle existiert?

Code:
select ID from tblUser where name = 'Fritz'
Wenn hier was zurück kommt, gibs ihn, sonst nicht...
  Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 14.11.07, 14:28   #3 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Du kannst ja abfragen, ob der Name schon in der Tabelle existiert?

Code:
select ID from tblUser where name = 'Fritz'

Wenn hier was zurück kommt, gibs ihn, sonst nicht...
ich brings immer noch net hin...
also bei mir sieht des ganze so aus
$sql = "select ID from benutzerdaten where Nickname = $nick INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
aber es geht net?!?
was mach ich falsch
Virus ist offline   Mit Zitat antworten
Alt 14.11.07, 15:27   #4 (permalink)
 
Registriert seit: 18.10.07
zillibus Leistung: Facit NTK
Likes: 0
Standard

PHP-Code:
<?php

if(mysql_num_rows(mysql_query("select id from benutzerdaten where Nickname = '".$value['nickname']."'"))>0){
echo 
"sry, schon vergeben.";
}
else {
INSERT INTO ".
    "
benutzerdaten (NicknameKennwortNachnameVorname".
  "
VALUES ('".$value["Nickname"]."''".
                       md5 ($value["Kennwort"])."'
'".
                       $value["Nachname"]."'
'".
                       $value["Vorname"]."'
)"; 
  mysql_query ($sql); 
}
?>
is eifnach so dahingeklatscht und kann man glaub noch intelligenter lösen, aber dass ist glaub der ansatz, den IsNull meinte.
zillibus ist offline   Mit Zitat antworten
Alt 14.11.07, 15:41   #5 (permalink)
Revenant
Guest
 
Likes:
Standard

Du kannst auch den Namen in der Tabelle als primary key oder als unique definieren, dann lässt die Datenbank in dieser Spalte keine 2 gleichen Werte zu. In dem Fall musst du dann halt noch den Fehler richtig abfangen...
Aber einfach prüfen ob der Name schon existiert is wohl besser
  Mit Zitat antworten
Alt 14.11.07, 18:01   #6 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

ThX habs hinbekommen danke...
hab allerdings nochmal ne frage,
und zwar will ich in einem chat (php),
es möglich machen dass man user kicken, bannen, muten kann.
Wie könnt man sowas machen
also ich bin soweit:
Die operatoren werden in der mysql datenbank mit einer 1 markiert und dies wird ausgelesen
jedoch habe ich keine ahnung wie ich die session von jmd beenden kann oder ihn eben kicken kann?

gruß virus
PS: nochma danke ohne des habo wär ich vollkommen aufgeschmissen...
Virus ist offline   Mit Zitat antworten
Alt 14.11.07, 18:16   #7 (permalink)
Revenant
Guest
 
Likes:
Standard

also ich hab eigentlich nicht viel Ahnung von PHP, aber falls niemand ne bessere Antwort gibt:

in der Tabelle mit den Zugriffsrechten könnte man auch Spalten für die SessionID und die IP des Benutzers einführen. Bei einem Kick wird dann die Session ID des Users in der Datenbank gelöscht, d.h. sein Aufenthalt im Chatroom ist nicht länger gültig. Man muss dann halt auf "Client(User) Seite" immer schauen, ob der Benutzer überhaupt das Recht für den Chat hat.
Ich vermute mal dass du nen Datenbankbasierenden Chat bastelst (?) und da kann man das dann ja beim Abschicken/ Empfangen der Nachrichten gleich mitprüfen.

keine gültige Session = kick
keine gültige IP = ban
mehrmals gleiche IP von Benutzern (mehrere Nutzer hinter einem Router), kA wie man dann nen Ban realisieren kann. (Edit)Glaube eigentlich gar nicht..


Edit: achja Thread abhaken nicht vergessen gell
  Mit Zitat antworten
Alt 14.11.07, 18:22   #8 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

du machst einfach ein Tabelle in der Datenbank, die nennst du meinetwegen user_banned.

diese Tabelle hat folgende Felder:
ban_id (int, auto_increment)
user_id (int)
banned_since (int) (da speicherst du den Timestamp, wenn der User gebannt wurde)
banned_time (int) (Zeit, wie lange der User gebannt ist, Angabe in Sekunden)

bei jedem erneuern der Seite (um den aktuellen Text anzuzeigen) und bei jedem Senden einer Nachricht wird zuerst diese Tabelle überprüft:

folgendes musst du nun noch in deinem Script einbauen:
  • mit dem Auswählen der Option "banned" für den User, kommt der User in diese Tabelle
  • wenn ein User in der Bann-Liste steht, wird er auf jeden Fall ausgeloggt.)
  • Wenn sich ein User einloggen will, der in der Bann-Liste steht und banned_since+banned_time < mktime(), wird der Eintrag aus der Datenbank gelöscht
  • Wenn sich ein User einloggen will, der in der Bann-Liste steht und banned_since+banned_time > mktime(), kommt eine Fehlermeldung "du bist geblockt!"

Ein Kick ist demzufolge ein Bann mit banned_time=0 - er wird auf jeden Fall ausgeloggt, kann sich aber sofort wieder einloggen.


edit: wenn du natürlich auch User zulassen willst, die nicht direkt registriert sind, sondern einfach so nen Benutzernamen eingeben, dann müsstest du zum Bannen natürlich, wie im Post vor mir beschrieben, mit IP-Sperre arbeiten
beavisbee ist offline   Mit Zitat antworten
Alt 14.11.07, 18:32   #9 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

thx gute idee,
jedoch hab ich schon wieder en problem wenn ich aus der datenbank lesen will ob ein user
operator ist funzt das net...
das is mein code
PHP-Code:
$sql "SELECT operator FROM benutzerdaten";
$result mysql_query($sql); 
if (
$result == 1) {
echo 
"Du bist operator"
} else {
echo 
"Du bist kein operator";

also hier soll es aus der tabelle benutzerdaten den wert operator lesen und mit 1 vergleichen jedoch funzts net wie erwartet
bin am probieren doch kp brings einfach net hin...
gruß virus
Virus ist offline   Mit Zitat antworten
Alt 14.11.07, 18:36   #10 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Standard

$result ist ein MySQL-Resultset. Das musst du aber erst mit mysql_fetch_*() in ein vernünftiges Format bringen, um damit Vergleiche anstellen zu können.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 14.11.07, 18:51   #11 (permalink)
 
Registriert seit: 14.06.07
Bytestream Leistung: Facit NTK
Likes: 0
Standard

Abgesehen davon: Ohne WHERE-Bedingung bringt dir das immer das selbe Ergebnis.
Bytestream ist offline   Mit Zitat antworten
Alt 14.11.07, 19:17   #12 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

ay also die while bedingung hab ich gleich nach em abschicken noch hinzugefügt, ich hab das "MySQL-Resultset" jetzt auch in das richtige format gebracht, jedoch ist das ergebnis immer nur "0"
PHP-Code:
$sql "SELECT operator FROM benutzerdaten WHERE Nickname like $nick";
$result "mysql_query($sql)"
$op mysql_fetch_*($result);
if (
$op == 1) {
echo 
"Du bist operator"
} else {
echo 
"Du bist kein operator";
}
echo 
"$op"
stimmt denn die anweisung $sql?
Virus ist offline   Mit Zitat antworten
Alt 14.11.07, 19:24   #13 (permalink)
 
Registriert seit: 14.06.07
Bytestream Leistung: Facit NTK
Likes: 0
Standard

1. LIKE ist auch ein MySQL-Statement solltest du laut Konvention also auch groß schreiben.
2. Warum steht mysql_query() unter "? Die solltest weglassen.
3. Der * von mysql_fetch_* ist lediglich ein Platzhalter für mysql_fetch_array oder ähnliches.
Bytestream ist offline   Mit Zitat antworten
Alt 14.11.07, 19:32   #14 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

scheint so, als wäre das dein erster Versuch, mit MySQL zu arbeiten?!
bevor du weiterhin wild, planlos drauf los probierst und wegen jeder kleinen Kleinigkeit hier rein postest, lies doch bitte erstmal ein paar Zeilen im PHP-Manual!
http://de.php.net/manual/de/ref.mysql.php

Dann sollten sich so grundlegende Dinge wie Syntax und Rückgabewerte bestimmter Funktionen von ganz allein klären...
beavisbee ist offline   Mit Zitat antworten
Alt 15.11.07, 01:09   #15 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Zitat:
Original von Virus
ay also die while bedingung hab ich gleich nach em abschicken noch hinzugefügt, ich hab das "MySQL-Resultset" jetzt auch in das richtige format gebracht, jedoch ist das ergebnis immer nur "0"
PHP-Code:
$sql "SELECT operator FROM benutzerdaten WHERE Nickname like $nick";
$result "mysql_query($sql)"
$op mysql_fetch_*($result);
if (
$op == 1) {
echo 
"Du bist operator"
} else {
echo 
"Du bist kein operator";
}
echo 
"$op"
stimmt denn die anweisung $sql?
1. LIKE ist an dieser Stelle etwas unangebracht. *grübel (jacky, jackychan, jackycola)*
2. Der Stern bei der mysql_fetch_*() Funktion steht für assoc oder array - mysql_fetch_assoc() o. mysql_fetch_array()
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » benutzer registrieren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Domain von jemanden auf mich registrieren L2G HaBo Lounge 4 11.08.07 19:56
DDR-Domain registrieren? Zwirni Internet Allgemein 4 14.01.06 23:26
Programm zum daten registrieren clown Die Problemzone 2 09.11.04 20:14
Benutzer AmmuNation Windows 8 29.03.04 20:16
Was ist das für eine Geschichte: "aktivieren - aber nicht registrieren"? Sir Eddy Windows 1 12.02.03 17:16


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61