php + mysql vraagje

Pagina: 1
Acties:
  • 55 views sinds 30-01-2008

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 11-05 10:40

Trax_Digitizer

are we there yet?

Topicstarter
als ik bijv dit statement heb:
$sql2 = "SELECT email FROM test WHERE email='$email'";
$result2 = mysql_query("$sql2",$db);
dan controleer ik in principe of het emailadres uit een input veldje al bestaat in mijn database. Dus met het volgende kan ik dat afvangen:
if($result2)
{
echo "Dit emailadres bestaat al.";
}
Dit werkt wel maar niet naar behoren, als ik nu bijv een emailadres neem waarvan ik zeker weet dat ie er niet in zit, dan krijg ik ook de melding: "Dit emailadres bestaat al."
Misschien kan dit allemaal eenvoudiger en ben ik te moeilijk aan het denken...

Verwijderd

if ( ! empty( $result2 ))

does the trick..

  • jvreuls
  • Registratie: Januari 2002
  • Laatst online: 31-07 13:13
Je moet met mysql_num_rows() controleren of er resultrijen uit die query rollen. Zo ja, bestaat het emailadres al.

Nu controleer je alleen of de query geen fouten oplevert.

Circuits Online


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

nee, does het niet :)... Je zult altijd een resultset hebben (dus altijd true) maar je moet gewoon ff kijken hoeveel je terugkrijgt.

Hiervoor kun je bijvoorbeeld mysql_now_rows gebruiken..

Daarnaast is dit neit de meest veilige manier. Ik neem aan dat je hieronder gaat inserten? Als dat het geval is zis het nog steeds mogelijk om 2 dezelfde emailadressen in je DB te krijgen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ff wat tips:

Hoewel mysq_query() een string als argument meeneemt, hoef je geen ""om $sql2 neer te plempen, omdat het zelf al een string is.

Run je SQL commando op de prompt. Wat is het antwoord dan?

Echo var's voordat ze in je query gaan, of echo de hele query voor debug doeleinden

Echo $result2 eens voordat ie in de if gaat.

[edit] Nog wat meer :)

Test $email voordat ie in de query gaat. Stel ik voer "; DROP DATABASE *blaat*" in voor e-mail adres, dan wordt dit mooi uitgevoerd.

Bedenk andere namen dan $sql2. Geef hier een nuttige naam aan (bijv emailControleQuery)

Verwijderd

o mijn fout sorry. Je moet dan eerst mysql_fetch_array er tussen planten, dat gaat wel werken :).
PHP:
1
<?$sql2 = "SELECT email FROM test WHERE email='$email'";$result2 = mysql_query("$sql2",$db);$var = mysql_fetch_array( $result2 )if( $var[email] != "" ){echo "Dit emailadres bestaat al.";}?>

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[topic=428014]
ff searchen zo gepiept ;)

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.