Elikkä allaoleva koodi ei muuta kummankaan taulukon aktivoimisstatusta trueksi vaikka pitäisi. Ei tule mitään phpongelmaa ja sivulla lukee vain "Aktivointi onnistui. Nyt voit kirjautua sisään."
<?php if (isset($_GET["code"])) { //muodostetaan yhteys tietokantapalvelimeen $yhteys = mysql_connect("localhost", "kayttajatunnus", "salasana") or die("Yhdistäminen ei onnistunut!"); mysql_select_db("byqnskxk_tietokantani", $yhteys) or die("Tietokantaa ei löytynyt!"); $kysely = "SELECT * FROM aktivointi"; $haku = mysql_query($kysely, $yhteys) or die("Virhe kyselyssä!"); $kysely2 = "SELECT * FROM jasenet"; $haku2 = mysql_query($kysely2, $yhteys) or die("Virhe kyselyssä!"); for ($i = 0; $i < mysql_num_rows($haku); $i++) { //haetaan nimi, hinta ja määrä muuttujiin $aktivcode = mysql_result($haku, $i, "koodi"); $aktived = mysql_result($haku, $i, "aktivoitu"); for ($u = 0; $u < mysql_num_rows($haku2); $u++) { $nimi = mysql_result($haku2, $u, "nimi"); $sahkoposti = mysql_result($haku2, $u, "sahkoposti"); $asukkaita = mysql_result($haku2, $u, "asukkaita"); $kylat = mysql_result($haku2, $u, "kylat"); $salasana = mysql_result($haku2, $u, "salasana"); } if ($aktivcode == $_GET["code"] && $aktived == "false") { $kysely3 = "UPDATE `byqnskxk_tietokantani`.`jasenet` SET `sahkoposti` = '" . $sahkoposti . "' WHERE CONVERT( `jasenet`.`nimi` USING utf8 ) = '" . $nimi . "' AND CONVERT( `jasenet`.`salasana` USING utf8 ) = '" . $salasana . "' AND CONVERT( `jasenet`.`asukkaita` USING utf8 ) = '" . $asukkaita . "' AND CONVERT( `jasenet`.`kylat` USING utf8 ) = '" . $kylat . "' AND CONVERT( `jasenet`.`sahkoposti` USING utf8 ) = '" . $sahkoposti . "' AND CONVERT( `jasenet`.`aktivointi` USING utf8 ) = 'true';"; $haku3 = mysql_query($kysely3, $yhteys) or die("Virhe kyselyssä!"); echo "Aktivointi onnistui. Nyt voit kirjautua sisään."; } } //suljetaan yhteys mysql_close($yhteys); } ?>
Niin missä kohtaa tuossa pitäisi aktivointi tapahtua? Eihän update-kyselyssä päivitetä kuin sähköposti.
P.S. Melko sekavaa luettavaa ilman sisennyksiä.
Suoraan jostain phpmyadminista kopioitu. Sisennyksiä jaksa.. Mutta tutkippa tarkemmin; tuo kysely3 ei minun scriptien mukaan pääty tuohon.
E: Otan myös ideoita vastaan miten voisi helpommin/toimivasti saada sen muuttamaan aktivointistatusta
$kysely3 = "UPDATE `byqnskxk_tietokantani`.`jasenet` SET `sahkoposti` = '" . $sahkoposti . "' WHERE CONVERT( `jasenet`.`nimi` USING utf8 ) = '" . $nimi . "' AND CONVERT( `jasenet`.`salasana` USING utf8 ) = '" . $salasana . "' AND CONVERT( `jasenet`.`asukkaita` USING utf8 ) = '" . $asukkaita . "' AND CONVERT( `jasenet`.`kylat` USING utf8 ) = '" . $kylat . "' AND CONVERT( `jasenet`.`sahkoposti` USING utf8 ) = '" . $sahkoposti . "' AND CONVERT( `jasenet`.`aktivointi` USING utf8 ) = 'true';";
Ei tuo mitään muuta muuta kuin sähköpostia.
Aktivointi seuraavantapaisella kyselyllä:
$kysely = "UPDATE jasenet SET aktivointi = 'true' WHERE nimi = $nimi AND salasana = $salasana";
Ja vastaavasti myös aktivointi-tauluun.
Kiitti yritän tuota.
Aihe on jo aika vanha, joten et voi enää vastata siihen.