Hei, alhaalla on minun rekisteröitymiskoodini ja koska kaikki tiedot (username,pass) pitäisi saada sinne tietokantani users osioon, niin miten muokkaan tuon rekisteröitymiskoodini niin että kaikki tiedot menisivät database.phpn kautta sinne tietokannan users kohtaan. Toivottavasti tajusitte.
Rekisteröitymislomakkeeni koodi:
<?php $error_message = ""; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $action = isset($_POST['action']) ? $_POST['action'] : ''; $database = './database.php'; $success_page = 'complete.php'; if (!file_exists($database)) { echo 'User database not found!'; exit; } if ($action == 'signup') { $newusername = $_POST['username']; $newemail = $_POST['email']; $newpassword = $_POST['password']; $confirmpassword = $_POST['confirmpassword']; $newfullname = $_POST['fullname']; if ($newpassword != $confirmpassword) { $error_message = 'Password and Confirm Password are not the same!'; } else if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newusername)) { $error_message = 'Username is not valid, please check and try again!'; } else if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newpassword)) { $error_message = 'Password is not valid, please check and try again!'; } else if (!ereg("^[A-Za-z0-9_!@$.' &]{1,50}$", $newfullname)) { $error_message = 'Fullname is not valid, please check and try again!'; } else if (!ereg("^.+@.+\..+$", $newemail)) { $error_message = 'Email is not a valid email address. Please check and try again.'; } $items = file($database); foreach($items as $line) { list($username, $password, $email, $fullname) = explode('|', trim($line)); if ($newusername == $username) { $error_message = 'Username already used. Please select another username.'; break; } } if (empty($error_message)) { $file = fopen($database, 'a'); fwrite($file, $newusername); fwrite($file, '|'); fwrite($file, md5($newpassword)); fwrite($file, '|'); fwrite($file, $newemail); fwrite($file, '|'); fwrite($file, $newfullname); fwrite($file, '|1'); fwrite($file, "\r\n"); fclose($file); $mailto = $newemail; $subject = 'Your new account'; $message = 'A new account has been created!'; $message .= "\r\nUsername: "; $message .= $newusername; $message .= "\r\nPassword: "; $message .= $newpassword; $message .= "\r\n"; $header = "From: noreply@sivuni.net"."\r\n"; $header .= "Reply-To: noreply@sivuni.net"."\r\n"; $header .= "MIME-Version: 1.0"."\r\n"; $header .= "Content-Type: text/plain; charset=utf-8"."\r\n"; $header .= "Content-Transfer-Encoding: 8bit"."\r\n"; $header .= "X-Mailer: PHP v".phpversion(); mail($mailto, $subject, $message, $header); header('Location: '.$success_page); exit; } } } ?>
Database.phpn koodi:
<?php $db_user = "16*7_user"; $db_passwd = "*******"; $db_server = "localhost"; $db_db = "16*7_db"; $tbl_users = "users"; //käyttäjät-taulun nimi. ?>
Ethän tuossa edes avaa kantaasi yhteyttä. Lue tämä ja/tai tämä, ja yritä edes itse – täältä saat apua, jos yksittäisiä ongelmia ilmenee.
Hä?
Sinähän tallentelet noita syötettyi tietoi tuohon database.php tiedostoon... tarkoituksella?
Et ole sisällyttänyt sen muuttujia tuohon tiedostoon, joka käsittelee postauksia...
Huih. Mitä teet tietokannalla, kun kirjoitat niitä fwritellä? Äly hoi!
Ensin laitat mysql_connect() ja mysql_select_db() funktiot kuntoon, sitten kirjotiat mysql_query() funktiolla. Putkaan tulikin juuri hieno opas, lue kokonaan ajatuksella.
Macro kirjoitti:
Huih. Mitä teet tietokannalla, kun kirjoitat niitä fwritellä? Äly hoi!
Hmm.. eli siis enkö tarvitse mitään tietokantoja tähän koodiin? vai siis pitäisikö tämän systeemin toimia heti kun nuo mysql_connect funktiot on kunnossa?
Tuo systeemi toimii jo; se kirjoittaa tekstitiedostoon käyttäjätiedot. Olet kuitenkin yrittänyt tehdä jotakin sellaista, josta huomaa heti, ettei sinulla ole käsitystä siitä mikä tietokanta on.
Eli pitäisikö minun vain lisätä nuo MYSQL funktiot alkuun niin systeemi toimisi?
Ei. Tietokantaan ajetaan kyselyitä SQL-lausekkeilla. Eli joudut ottamaan yhteyden tietokannanhallintajärjestelmään (mysql_connect), valitsemaan käytettävän tietokannan (mysql_select_db), ajamaan haluttuja kyselyitä kantaan (mysql_query) ja sulkemaan yhteyden tietokannanhallintajärjestelmään (mysql_close) (oletin tässä, että käytettävä tietokannanhallintajärjestelmä on MySQL). Tätä ennen joudut luonnollisesti suunnittelemaan tietokannan rakenteen ja tekemään siihen liittyvät toimet.
Edellä mainittujen toimien tekemien vaatii perustietojen tietämisen tietokannoista ja totta kai myös käytettävästä ohjelmointikielestä (tässä: PHP). Kannattaa siis suunnata katse oppaita kohti, kuten tässä on jo useampaan kertaan todettu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.