» mysql_query(......) "Spalte"/"Variable" lässt sich nicht mit einer Eingabe vergleichen

Top PHP Profi gesucht!Neuen Thread eröffnenNeue Antwort erstellenKennt sich jemand mit Perl aus?
AutorNachricht
Beobachter 
Anmeldedatum: 26.05.2012
Beiträge: 8
19.07.2012, 14:05
zitieren

Hey,
ich will eine ganz normale Abfrage machen, ob der vom Nutzer eingegebene Name/Wert bereits irgendwo in der Datenbank vorhanden ist. So sieht das bei mir aus:

$nogroups = mysql_query( "SELECT * FROM memberinformation WHERE nickname = ".$_POST["username"]  );

if( $nogroups == "" )
{......

Ich mache da gleich die if-Abfrage, weil die "Varible" doch keinen Wert haben dürfte, wenn die Bedingung aus dem query nicht erfüllt wird, oder?

Ich habe auch schon versucht Leerzeichen an die Eingabe dran zu hängen, als die "Spalte"/"Variable" nickname noch vom Typ "CHAR" war. Jetzt ist sie vom Typ "VARCHAR" mit Platz für 20 Zeichen.

Und selbstverständlich bin ich mir sicher, dass der Wert der Eingabe grundsätzlich gleich mit dem Inhalt der "Spalte"/"Variable" sein sollte. Habe auch in meinem Quelltext dafür eine if-Abfrage gemacht, wobei hier der Inhalt der Tabelle in Arrays "aufgeteilt" wird und dann halt verglichen wird. Da wurde angezeigt, dass der Inhalt identisch ist, hier wird es nicht angezeigt.

Würde mich WIRKLICH über eine Lösung freuen. Hätte auch nichts dagegen, wenn mir jemand erklärt, was ich falsch gemacht habe ^^.

Bedanke mich schon ma im Voraus.

Mit freundlichem Gruß

Section


pn
Newbie 
Anmeldedatum: 29.05.2012
Beiträge: 13
21.07.2012, 09:24
zitieren

Hier gibts mehrere Fehler. mysql_query gibt keinen String zurück, sondern eine ressource. Darüber hinaus: niemals GET/POST Vars unescaped in eine sql query übernehmen. Programmierern ist das manchmal egal; User allerdings nicht. Sowas ist wirklich wichtig. Du erwartest eine Zeile oder keine Zeile als Rückgabe; daher würde ich das Ganze mit LIMIT 1 limitieren. Dann erscheint mir auch das query falsch zu sein. Wenn eine Spalte mit einem String verglichen wird, braucht es 'var'. Genug gemeckert, hier die Lösung, wie ich sie machen würde.

$username = $_POST['username'];
$username = mysql_real_escape_string($username);

$query = sprintf("SELECT id from memberinformation
    WHERE nickname='%s' LIMIT 1",
    $username);

$result = mysql_query($query);

// hier kannst du dann überprüfen, ob die rückgabe leer ist oder eine id vorhanden ist
while ($row = mysql_fetch_assoc($result)) {
    echo $row['id'];
}

mysql_free_result($result);


Noch ein paar Konventionen: Tabellen Namen im Plural und nickname mit username angleichen. Du meinst das Gleiche => nenn sie gleich.


pn email
Beobachter 
Anmeldedatum: 26.05.2012
Beiträge: 8
23.07.2012, 12:17
zitieren

Hey,
danke für deine Antwort. Scheint auch zu funktionieren ^^. Cool ^^.
Hätte da einige Fragen zu deiner Antwort.

- "ressource" ? Was bedeutet das?
- "GET/POST Vars unescaped" ? Was bdeutet das?
-
ZitatProgrammierern ist das manchmal egal; User allerdings nicht
Wie meinst das? War doch falsch ^^ und die User werden zumeist kaum was von dem Mitbekommen, was sich im "Hintergrund" abspiellt. Wenn du meinst, dass es irgendwie Sicherheitslücken, mögliche Fehlerquellen oder sonst was enthalten kann, dann sollte das doch auch einem Programmierer nicht egal sein, oder eher gerade ihm.

- "sprintf" ? Wieso verwendest das und nicht "mysql_query(...)"?
- '%s' ? Was bewirkt das?

- 'var' ? Ist das der "Variablentyp"? Wo ist der Unterschied zu einem "string" und was ist es, wenn kein string?
- "$result = mysql_query($query);" ? Ich errinere mich grad nur daran, dass bei queries unter anderem strings als Parameter übergeben wurden, die "Anweisungen" enthielten und das ist hier scheinbar nicht der Fall. Hier wurde doch "nur" eine "Variable" übergeben, oder? Wie funktioniert das?
- "mysql_free_result($result);" Was bewirkt das?

Kannst du mir sagen, wo man all das lernen kann ^^' ? Ich meine im Internet.

Ach und soweit ich weiß steht "information"(im Englischen, was es hier auch ist. Ist an dem Begriff "member", was ja auch Englisch ist, zuerkennen) sowohl für die Mehr-, als auch für die Einzahl.

Und noch mal danke für die Antwort.

Mit freundlichem Gruß
Section


 1x  bearbeitet
pn
Newbie 
Anmeldedatum: 29.05.2012
Beiträge: 13
23.07.2012, 12:34
zitieren

und los gehts.
Zitat- "ressource" ? Was bedeutet das?
Das ist ein spezieller Datentyp, wenn du so willst. Wenn du eine Datenbankverbindung hast oder auch eine Datei öffnest, arbeitest du damit. http://de.php.net/manual/en/language.types.resource.php
Zitat- "GET/POST Vars unescaped" ? Was bdeutet das?
Mit GET und POST kann man vom Browser Daten an das Skript übergeben. Es können enorme Sicherheitslücken entstehen, wenn man diese Daten nicht checked/escaped. http://de.php.net/manual/en/function.mysql-real-escape-string.php
Zitat- "sprintf" ? Wieso verwendest das und nicht "mysql_query(...)"?
- '%s' ? Was bewirkt das?
Hiermit formatierst du einen String und schickst ihn mit %s in dein sql query. http://de.php.net/manual/en/function.sprintf.php
Zitat- 'var' ?
Ich meinte damit nur ''. Die Hochkommata.
Zitat"$result = mysql_query($query);" ?
Wir haben den String in die Variable $query geladen. Es wird also ein String übergeben.
Zitat"mysql_free_result($result);"
Die ressource wird aus dem Speicher gehauen.

Man lernt das auf php.net; hier kann man auch jeden Befehl nachschlagen. Würd mir evtl. ein Buch kaufen und viel programmieren; nur dadurch lernt man und checkt, was sich im Hintergrund so tut.


pn email
Beobachter 
Anmeldedatum: 26.05.2012
Beiträge: 8
23.07.2012, 13:09
zitieren

Aaa okey. Danke für die schnelle Antwort.

pn
Gast 
23.07.2012, 13:09
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "mysql_query(......) "Spalte"/"Variable" lässt sich nicht mit einer Eingabe vergleichen" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
ein "nicht honda fahrer" mit "hondapower" braucht eure hilfe
hallo forum, ich habe hier ein wenig rumgestöbert und brauch enun mal dringend eure hilfe. ich fahre einen alten klassischen mini (cooper), den ich die letzten 1,5 jahre auf honda ed9 d16z5 umgebaut habe. das ganze ist in einem eigenbaurahmen und...
von kelmiinthafirma
4
3.281
16.07.2009, 09:04
kelmiinthafirma
V-one "s Honda Civic Eg4 ("S.78Civic später Start in die "noch gerade so" Saison,Bilder ")
(Nachtrag 24.02.2011,Die Bilder neu reingestellt damit die Historie Nachvollziehbar,sowie anschaulich bleibt) Hier wollte ich mal mein Honda Civic vorstellen :) So sah er aus als ich in bekommen habe: Sieht mal zunächst als Basis nicht sonderlich übel...
von V-one
779
48.526
28.09.2017, 06:17
SandydelSol
"Verwaltung" unter Programme lässt sich nicht löschen
Hi, ich habe neuerdings einen leeren Ordner unter Start -> Programme namens "Verwaltung". Keine Ahnung warum der plötzlich da ist. Der befindet sich ja eigentlich unter "Zubehör". Naja da er leer ist, wollte ich ihn löschen. Allerdings...
von mgutt
7
613
02.02.2010, 17:20
nfs_freak
Beifahrertür lässt sich nicht öffnen, obwohl das "Aufschließen" funktioniert
Mal wieder eine Fragestellung an all die Mechaniker... Seani's Beifahrertür lässt sich aufschließen (innen klappt es auch um) aber die Tür will sich nicht öffnen lassen. (Und nein: wir haben hier in Hamburg noch keinen Frost! - Wenn es soweit ist,...
von Maila25
3
292
13.12.2019, 12:40
Lutti
Ps3 und Fernseher "mögen" sich nicht mehr
Würde mich mal interessieren ob noch jemand diese Problem hat. Meine PS3 Slim 250 gb seit ca 6-8 Monaten in meinem Besitzt und mein LG M237WD Hybrid Monitor scheinen sich plötzlich ned mehr zu mögen o.O. Folgende Geschichte: Hab den einen Abend...
von Kinimaro
8
998
18.10.2010, 09:31
Kinimaro
Frechen 02.07.2010 "Japan wird Weltmeister" - "doch nich =("
so wer kommt diesen freitag...
von Toby1991
39
11.862
05.07.2010, 20:40
stoffi88
"Unfall" brauche Hondateile raum Bodensee, Allgäu. "HILFE"
Olla Leuz Hatte heut nen unfall mit meinem eg5 :cry: :wall: Jetzt is meine Komplett front im eimer......und brauche jetzt Motorhaube, beide Scheinwerfer ,Frontstoßstange , Kühler mit Lüfter , und das Komplette Frontgerüst :( Kennt von euch...
von civic4live
10
2.828
14.07.2006, 16:32
civic4live
Project "road trip nach Polen" "IST-Bilder jetzt"
So morgen junx, da mein Honda, ein sehr schweren Hagelschaden erleiden musste, bin ich jetzt dabei einen Trip nach Polen zu planen, um meinen Honda Komplett neu zu lackieren. Was ich vorab noch unbedingt brauche, ist eine neue Motorhaube für denn...
von tr0Un-1337
9
1.829
06.07.2008, 20:25
tr0Un-1337
Civic MB2 2131/313 "1999" Scheibenbremse/Beläge hinten "Größe"???
Hallo Leutz, ich habe da mal ein Problem. Ich wollte bei einem Bekannten an seinem Honda Civic HSN:2131 / TSN:313; Baujahr 09.1999; 66KW 5-Türer (Fastback) die hintere Bremse Wechseln (beide Scheiben und Beläge) Nun habe ich im Internet (ebay u.s.w.)...
von Sisko865
6
510
17.08.2014, 18:27
Blues
Unterschiede zwischen einer "Standard" Domstrebe und einer 3-Punkt?
Moin! :D Würde mal gerne wissen ob es einen spürbaren Unterschied gibt bzw. es sich bemerkbar macht im Fahrverhalten wenn man anstatt der Standard Domstrebe eine 3-Punkt Strebe verwendet?! Ich mein...119€ und 250€ sind für mich schonmal...
von °Phunder Bird°
14
992
21.01.2014, 21:30
Lori-DC2
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |