Mein Loginsystem - (Communitysystem)

Jaja, ich bin also pingelig? Pass ja auf, dass du mir nicht vor die Flinte läufst, ActionScripter :biggrin:

Klar, benötigt Enum() etwas mehr Platz als ein tinyint(*) jedoch ist bei dem Enum sichergestellt, dass fort wirklich nur werte drinne stehen, die es auch gibt, wenn auf einmal nen flascher query ne 2 in das tinyint schreibt, merkt man den fehler nicht sofort und wird irgendwann später merken, dass irgendwo im system ein fehler ist, viel spaß^^
Enum wird einfach die Arbeit verweigern.
 
Kleine Frage mal nebenbei..
Also müsste ich echt alles neu schreiben? Denn ich denke ich könnte das auch optimieren (mit euren Angaben). :roll:
 
Enum wird einfach die Arbeit verweigern.

aha, also benutzt du mysql um deine programmiertechnischen unzulänglichkeiten abzufangen *ggg* ... auch ein weg ...

Kleine Frage mal nebenbei..
Also müsste ich echt alles neu schreiben? Denn ich denke ich könnte das auch optimieren (mit euren Angaben). :roll:

also mit neuschreiben hast du tatsächlich weitaus weniger arbeit, wenn du alle tips von thehacker berücksichtigen willst. und das sind eigentlich nur die grundsätzlichen regeln, die jeder einhalten sollte - auf die speziellen dinge gehen wir dann beim zweiten versuch ein ;)

und mal so gesagt: solange du noch am anfang stehst und lernst, tust du gut daran, nicht deinen code zu verschlimmbessern oder immer häufiger zu kopieren, sondern ihn immer wieder neu zu schreiben. so bekommst du zum einen routine und zum anderen kannst du immer wieder andere wege versuchen und deine "linie" finden. wir sehen hier im forum und von den kunden häufig scripts, die einem den kalten schauer über den rücken laufen lassen, weil die leute es nicht gelernt haben, ihren eigenen kram zu analysieren und danach zu fragen. von daher grosses lob an dich, dass du dich traust (und bei der jury ist das echter mut) und wir setzen tatsächlich hoffnung da hinein, dass du einer der wenigen werden kannst, die es richtig machen :evil:
 
Zuletzt bearbeitet von einem Moderator:
also mit neuschreiben hast du tatsächlich weitaus weniger arbeit, wenn du alle tips von thehacker berücksichtigen willst. und das sind eigentlich nur die grundsätzlichen regeln, die jeder einhalten sollte - auf die speziellen dinge gehen wir dann beim zweiten versuch ein ;)

und mal so gesagt: solange du noch am anfang stehst und lernst, tust du gut daran, nicht deinen code zu verschlimmbessern oder immer häufiger zu kopieren, sondern ihn immer wieder neu zu schreiben. so bekommst du zum einen routine und zum anderen kannst du immer wieder andere wege versuchen und deine "linie" finden. wir sehen hier im forum und von den kunden häufig scripts, die einem den kalten schauer über den rücken laufen lassen, weil die leute es nicht gelernt haben, ihren eigenen kram zu analysieren und danach zu fragen. von daher grosses lob an dich, dass du dich traust (und bei der jury ist das echter mut) und wir setzen tatsächlich hoffnung da hinein, dass du einer der wenigen werden kannst, die es richtig machen :evil:
Ja danke, hatte ich mir auch so gedacht. Hatte von einem Klammer hier den Hinweis bekommen, das ich es so machen soll: "Scripte deine Sachen (denke dabei bloß nicht daran Geld *HUST Lose* zu verdienen) geh dann ins Programmierforum und lass dort deine Fehler heraus holen, Hinweise empfangen und lernen"..
Das hatte ich auch jetzt vor..
Also ich werde es dann wahrscheinlich am Montag neu anfangen.. (WE ist verplant und ich kann mir ja Zeit lassen) :p
 
Also müsste ich echt alles neu schreiben? Denn ich denke ich könnte das auch optimieren (mit euren Angaben). :roll:
Ne, an dem Versuch kannstde nix mehr optimieren, der hat dir deine Fehler gezeigt und jetzt isser reif für die Tonne. Überleg mal: Bis du schon alleine alles einrückst, hast dus fünfmal neu geschrieben und baust nebenbei deinen Programmierstil aus. Im Moment sieht man von einem "Stil" nämlich noch nichts :ugly:
aha, also benutzt du mysql um deine programmiertechnischen unzulänglichkeiten abzufangen *ggg* ... auch ein weg ...
Ne, ich lasse mir die Arbeit abnehmen ;) MySQL wird ja nicht umsonst weiterentwickelt.
von daher grosses lob an dich, dass du dich traust (und bei der jury ist das echter mut) und wir setzen tatsächlich hoffnung da hinein, dass du einer der wenigen werden kannst, die es richtig machen :evil:
*nochmal quoten muss* :yes:
 
Bis du schon alleine alles einrückst, hast dus fünfmal neu geschrieben ...

es gibt ne menge programme, die dir diese arbeit abnehmen. ich empfehle ultraedit (my favourite!!) oder auch zend studio und eclipse (letzteres kostenlos, soweit ich weiss). versuchs aber bitte nicht mit speziellen php-editoren, die dir zu viel arbeit abnehmen und dir schon fertige scripts einfügen, damit hast du nichts gekonnt.
 
es gibt ne menge programme, die dir diese arbeit abnehmen. ich empfehle ultraedit (my favourite!!) oder auch zend studio und eclipse (letzteres kostenlos, soweit ich weiss). versuchs aber bitte nicht mit speziellen php-editoren, die dir zu viel arbeit abnehmen und dir schon fertige scripts einfügen, damit hast du nichts gekonnt.

Ich habe Zend..
 
Ich verstehe es nicht: https://www.klamm.de/forum/showthread.php?p=523839#post523839
Habe das in eine PHP datei getan und includet befor ich alles so in etwa aufrufe:
PHP:
if(isset($_SESSION['nickname']) AND isset($_SESSION['pw'])){
	$query =  db_query("SELECT passwort FROM Login WHERE nickname = %s", '$_SESSION[nickname]' );
	$sql = mysql_query($query);
	$ds = mysql_fetch_object($sql);
	if($ds->passwort == $_SESSION['pw']){
		$fehler = "Bereits drinnen!!!";
	}
}
raus kommt:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Scriptes\xammplite\htdocs\login2\login.php on line 11
Sie werden weitergeleitet...
HILFE!
 
Code:
[COLOR=#000000][COLOR=#007700]if(isset([/COLOR][COLOR=#0000bb]$_SESSION[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nickname'[/COLOR][COLOR=#007700]]) AND isset([/COLOR][COLOR=#0000bb]$_SESSION[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'pw'[/COLOR][COLOR=#007700]])){ 
    [/COLOR][COLOR=#0000bb]$query [/COLOR][COLOR=#007700]=  [/COLOR][COLOR=#0000bb]db_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"SELECT passwort FROM Login WHERE nickname = %s"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000][B][COLOR=Magenta]'$_SESSION[COLOR=DarkOrange][nickname][/COLOR]'[/COLOR][/B] [/COLOR][COLOR=#007700]); 
[/COLOR][B][COLOR=DarkRed]$sql [/COLOR][COLOR=DarkRed]= [/COLOR][COLOR=DarkRed]mysql_query[/COLOR][COLOR=DarkRed]([/COLOR][COLOR=DarkRed]$query[/COLOR][/B][COLOR=#007700][B][COLOR=DarkRed]); [/COLOR][/B]
    [/COLOR][COLOR=#0000bb]$ds [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]mysql_fetch_object[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$sql[/COLOR][COLOR=#007700]); 
    if([/COLOR][COLOR=#0000bb]$ds[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]passwort [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]$_SESSION[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'pw'[/COLOR][COLOR=#007700]]){ 
        [/COLOR][COLOR=#0000bb]$fehler [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"Bereits drinnen!!!"[/COLOR][COLOR=#007700]; 
    } 
}[/COLOR][/COLOR]
  • '$_SESSION[nickname]'
    Logischer Fehler: Du willst sicher die Variable, also lass die Hochkommata außen weg. Kein User hat diesen Nickname.
  • [nickname]
    Sauberkeit: Nicht-numerische Array-Indizes in Hochkommata. Also da die Dinger setzen !
  • $sql = mysql_query($query);
    Logischer Fehler: Nicht nochmal mysql_query() aufrufen, das macht db_query() schon. Diese Funktion ersetzt also mysql_query().
 
Argh.. Beides von euch geht nicht.
Kennt jemand eine andere KLASS mit mehr Beschreibung drin?
Oder soll ichs manuell escapen? 8)
 
Argh.. Beides von euch geht nicht.
Kennt jemand eine andere KLASS mit mehr Beschreibung drin?
Oder soll ichs manuell escapen? 8)

ne klasse kannst du benutzen, wenn du weisst, wie es geht. am anfang solltest du deine queries von hand abarbeiten um zu lernen.

versuch mal folgendes:

PHP:
$query = sprintf("SELECT passwort FROM Login WHERE nickname = '%s'", $_SESSION[nickname]);
$sql = mysql_query($query) or die(mysql_error());

falls ein fehler auftritt, wird er dir ausgegeben...
 
ne klasse kannst du benutzen, wenn du weisst, wie es geht. am anfang solltest du deine queries von hand abarbeiten um zu [...]

Also nun gehts.. Soll ich alle MySql abfragen über die Klasse laufen lassen? Auch die mit $_SESSION[nickname] in der Suche?

[nickname]
Sauberkeit: Nicht-numerische Array-Indizes in Hochkommata. Also da die Dinger setzen !

Wenn ich das so mache:
PHP:
	$query = "SELECT passwort FROM Login WHERE nickname = $_SESSION['nickname']";

kommt das als Fehler..

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Scriptes\xammplite\htdocs\login2\include\access.php on line 4
 
Argh.. Beides von euch geht nicht.
Schade, dass du dir meinen Post nicht wirklich durchgelesen hast :-?
Ich hab nämlich nichts verändert, sondern nur die Fehler markiert :roll:

Zu den Hochkommata:
PHP:
$query = "SELECT passwort FROM Login WHERE nickname = ".$_SESSION['nickname'];
So funktioniert es.

Aber das brauchst du nicht, weil db_query() alle zu escapenden Variablen als Parameter erwartet, also:
PHP:
$query = db_query("SELECT `passwort` FROM `Login` WHERE `nickname` = '%s'", $_SESSION['nickname']);
@ActionScripter:
sprintf() nochmal vor db_query() benutzen, is doppelt gemoppelt. db_query() macht das, also lass sie das doch auch selber tun ;)
 
Also nun gehts.. Soll ich alle MySql abfragen über die Klasse laufen lassen? Auch die mit $_SESSION[nickname] in der Suche?
wo wie? über welche klasse denn?

PHP:
entweder:
$query = "SELECT passwort FROM Login WHERE nickname = '{$_SESSION['nickname']}'";

oder:
$query = "SELECT passwort FROM Login WHERE nickname = '".$_SESSION['nickname']."'";
 
@ActionScripter:
sprintf() nochmal vor db_query() benutzen, is doppelt gemoppelt. db_query() macht das, also lass sie das doch auch selber tun ;)

bin heut noch nicht richtig wach und hab die augen noch halb zu :)

verrat mir mal, was db_query() sein soll. laut manual ist das eine funktion des debuggers ... oder aber er verwendet eine klasse, von der man hier nichts sieht ... sowas benutz ich gar nicht, von daher ist mir das nicht aufgefallen...