Permalänk
Medlem

[PHP] Problem - blir tokig

Varför fungerar det här:

$resultat = mysql_query("SELECT * FROM anvandare WHERE id = ' " . $_GET['id'] . " ' "); while($r = mysql_fetch_array($resultat)) { $anvandarnamn = $r['username']; ?> <?=$anvandarnamn?> <? } mysql_close();?>

Men inte det här?

$resultat = mysql_query("SELECT * FROM anvandare WHERE username = ' " . $_GET['user'] . " ' "); while($r = mysql_fetch_array($resultat)) { $anvandarnamn = $r['username']; ?> <?=$anvandarnamn?> <? } mysql_close();?>

Jag håller på att bli tokig, tack på förhand!

Visa signatur

rm -rf *.blog

Permalänk
Glömsk

Angende din andra bit kod, varför plocka ur ett fält ur en databas som matchar något man redan har? Du kan ju lika gärna göra såhär:

<?php =$_GET['user'] ?>

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

just det här $anvandarnamn = $r['username']; var ju bara ett exempel, jag vill hämta ut information om användaren (som finns i databasen) beroende på vilken användare som är inloggad.

Men det som är konstigt(?) är ju att det fungerar bra när jag "väljer" efter id men inte efter användarnamn. I sistnämnda fall blir sidan bara vit. Varför blir det så?

Visa signatur

rm -rf *.blog

Permalänk
Glömsk

Aha.

Kennel skriv i sin guide att man skulle missbruka print_r (tror jag det var). Testa att missbruka print_r, alltså, skriv ut $r och kolla vad den innehåller.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk

1. Jag läste en gång som regel att man aldrig ska använda "SELECT *" bland annat eftersom det blir svårare att hitta fel då. Bara ett tips alltså.
2. Se till att felmeddelanden visas. Det är en inställning i php.ini. Plus att du bör använda: "mysql_query($sql) or die('SELECT Error: '.mysql_error());"
Så får du trevligare felmeddelanden.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Det kan inte vara pga mellanslagen som läggs in framför och bakom $_GET['user']?

testa att ändra:
' " . $_GET['user'] . " '

till:
'" . $_GET['user'] . "'

Visa signatur

Oh. Uhm, look... if we built this large wooden badger...

Permalänk
Medlem

Du bör också se till så att användaren inte skriver in egna SQL-satser. Iofs kanske du kör med magic_quotes. Gör du inte det så tycker jag du bör köra

$_GET['id'] = addslashes($_GET['id']); $_GET['user'] = addslashes($_GET['user']);

innan SQL-satsen körs.

Permalänk
Hedersmedlem

1. Kontrollera returvärdet från mysql_query().
2. Lite inte på att värdet i $_GET['id'] verkligen är ett ID.
3. Använd den långa PHP-taggen <?php, inte <?.

Permalänk
Citat:

Ursprungligen inskrivet av Don_Tomaso
Du bör också se till så att användaren inte skriver in egna SQL-satser. Iofs kanske du kör med magic_quotes. Gör du inte det så tycker jag du bör köra

$_GET['id'] = addslashes($_GET['id']); $_GET['user'] = addslashes($_GET['user']);

innan SQL-satsen körs.

Varför inte mysql_real_escape_string()?

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Sebastianj
Varför inte mysql_real_escape_string()?

Mer att skriva?

Permalänk
Medlem

Sebastianj: Helt korrekt. mysql_real_escape_string() är att föredra framför addslashes() och är så kallat best practice.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av toffe_
Det kan inte vara pga mellanslagen som läggs in framför och bakom $_GET['user']?

testa att ändra:
' " . $_GET['user'] . " '

till:
'" . $_GET['user'] . "'

Det löste problemet, tack !

-------------------------------

Don_tomaso: vad gör addslashes ?

Visa signatur

rm -rf *.blog

Permalänk
Citat:

Ursprungligen inskrivet av Dj Squeeze
Don_tomaso: vad gör addslashes ?

Läs Kennels guide: http://www.punbb.org/articles/php.html

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Sebastianj
Läs Kennels guide: http://www.punbb.org/articles/php.html

Tack tack

Visa signatur

rm -rf *.blog