Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Script de log in/log out si inregistrare user (varianta simpla)
Ultima postare: ian 22 2014 17:47, Inițiat de
RpgBoy
, ian 22 2014 03:15
·
0
#1
Publicat: 22 ianuarie 2014 - 03:15
Salut. Intr-un timp am avut nevoie de acest scrip, deci m-am gandit ca vor avea nevoie si altii.
Nu stiu sa explic, abea am invatat sa-l fac asa.. O sa incerc sa o spun simplu: asa trebuie facut si n-am alta idee, dar merge Necesita cunostinte: HTML, PHP si MySQL. 1) In PhpMyAdmin (eu asta am folosit) avem baza de date a_database, cu tabelul `users` (6 coloane): id ------------------- tip INT - action PRIMARY - A_I (auto_increment) username --------- tip VARCHAR (variable characters) - Lenght (30) (lungimea maxima acceptata) password --------- tip VARCHAR - Lenght (32) (punem 32, deoarece parola o vom salva sub forma md5(), ce are de obicei 32 de caractere) firstname ---------- tip VARCHAR - Lenght (40) lastname ----------- tip VARCHAR - Lenght (40) *Nota: semnul ` este apostrof si " sunt ghilimele. 2) Salvam cu Notepad, Notepad++ sau orice alt editor text urmatoarele pagini: index.php loginform.inc.php core.inc.php connect.inc.php logout.php register.php register_success.php 3) Acum va dau eu codul si va spun in ce fisiere le salvati index.php: <?php require 'core.inc.php'; require 'connect.inc.php'; if (loggedin()) { $firstname = getuserfield('firstname'); $lastname = getuserfield('lastname'); echo 'You\'re logged in, '.$firstname.' '.$lastname.'. <a href="logout.php">Log out</a><br>'; } else { include 'loginform.inc.php'; } ?>loginform.inc.php: <?php if (isset($_POST['username'])&&isset($_POST['password'])) { $username = $_POST['username']; $password = $_POST['password']; $password_hash = md5($password); if (!empty($username)&&!empty($password)) { $query = "SELECT `id` FROM `users` WHERE `username`='".mysql_real_escape_string($username)."' AND `password`='".mysql_real_escape_string($password_hash)."'"; if ($query_run = mysql_query($query)) { $query_num_rows = mysql_num_rows($query_run); if ($query_num_rows==0) { echo 'Invalid username or password.'; } else if ($query_num_rows==1){ $user_id = mysql_result($query_run, 0, `id`); $_SESSION['user_id']=$user_id; header('Location: index.php'); } } } else { echo 'You must enter username and password.'; } } ?> <br> <form action="<?php echo $current_file; ?>" method="POST"> Username: <input type="text" name="username"> Password: <input type="password" name="password"> <input type="submit" value="Log in"> </form> <br> If you don't have an account, <a href="register.php">register now</a>.core.inc.php: <?php if (isset($_POST['username'])&&isset($_POST['password'])) { $username = $_POST['username']; $password = $_POST['password']; $password_hash = md5($password); if (!empty($username)&&!empty($password)) { $query = "SELECT `id` FROM `users` WHERE `username`='".mysql_real_escape_string($username)."' AND `password`='".mysql_real_escape_string($password_hash)."'"; if ($query_run = mysql_query($query)) { $query_num_rows = mysql_num_rows($query_run); if ($query_num_rows==0) { echo 'Invalid username or password.'; } else if ($query_num_rows==1){ $user_id = mysql_result($query_run, 0, `id`); $_SESSION['user_id']=$user_id; header('Location: index.php'); } } } else { echo 'You must enter username and password.'; } } ?> <br> <form action="<?php echo $current_file; ?>" method="POST"> Username: <input type="text" name="username"> Password: <input type="password" name="password"> <input type="submit" value="Log in"> </form> <br> If you don't have an account, <a href="register.php">register now</a>.connect.inc.php: <?php $mysql_host = 'localhost'; $mysql_user = 'root'; $mysql_pass = ''; $mysql_db = 'a_database'; if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass)||!mysql_select_db($mysql_db)) { die(mysql_error()); } ?>logout.php: <?php require 'core.inc.php'; session_destroy(); header('Location: '.$http_referer); ?>register.php: <?php require 'core.inc.php'; require 'connect.inc.php'; if (!loggedin()) { if (isset($_POST['username'])&& isset($_POST['password'])&& isset($_POST['password_again'])&& isset($_POST['firstname'])&& isset($_POST['lastname'])) { $username = $_POST['username']; $password = $_POST['password']; $password_again = $_POST['password_again']; $password_hash = md5($password); $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; if (!empty($username)&& !empty($password)&& !empty($password_again)&& !empty($firstname)&& !empty($lastname)) { if ($password!=$password_again) { echo 'Passwords don\'t match.'; } else { $query = "SELECT `username` FROM `users` WHERE `username`='$username'"; $query_run = mysql_query($query); if (mysql_num_rows($query_run)==1) { echo 'The username '.$username.' already exists.'; } else { $query = "INSERT INTO `users` VALUES ('','".mysql_real_escape_string($username)."','".mysql_real_escape_string($password_hash)."','".mysql_real_escape_string($firstname)."','".mysql_real_escape_string($lastname)."')"; if ($query_run = mysql_query($query)) { header('Location: register_success.php'); } else { echo 'Sorry, we couldn\'t register you at this time. Please try again later.'; } } } } else { echo 'All fields are required.'; } } ?> <form action="register.php" method="POST"> Username:<br> <input type="text" name="username" value="<?php echo $username; ?>"><br><br> Password:<br> <input type="password" name="password"><br><br> Password again:<br> <input type="password" name="password_again"><br><br> Firstname:<br> <input type="text" name="firstname" value="<?php echo $firstname; ?>"><br><br> Lastname:<br> <input type="text" name="lastname" value="<?php echo $lastname; ?>"><br><br> <input type="submit" value="Register"> </form> <?php } else if (loggedin()) { echo 'You\'re already registered and logged in.'; } ?>register_success.php: <?php echo 'Register done.<br>'; echo 'Go back to <a href="index.php">Home page</a>' ?> Sper ca o sa va fie de folos, toate cele de mai sus au fost testate pe localhost si dispun de log in / log out, register si retine id-ul userului din baza de date atunci cand e logat, asa ca il puteti folosi pentru a afisa continut diferit pentru fiecare utilizator. De la incepatori, astept intrebari. De la cunoscatori, asteptam sfaturi Editat de RpgBoy, 22 ianuarie 2014 - 03:18. |
#2
Publicat: 22 ianuarie 2014 - 04:10
Ok, l-am pus online : http://testesipracti...j.com/index.php
|
#3
Publicat: 22 ianuarie 2014 - 05:50
Salutare,
Nu vreau să te dezamăgesc, dar un script de login, înregistrare etc, poate avea şi o mie de linii de cod. Dacă vrei să-mi asculţi sfatul şi să repari câte ceva în script cred că ar trebui să faci următoarele : 1. Nu folosi include, ci require_once. Vezi pe net care-i diferenţa. 2. isset foloseşti când vrei să verifici o variabilă dacă este definită sau nu, iar empty să vezi dacă o variabilă deja definită este goală sau nu. Dacă eu pun un spaţiu liber, variabila este definită, nu e goală, şi trec cu brio de verificările tale. Nu mai spun că practic tu ai cripta cu md5 un spaţiu gol. 3. În aproape jumătate din codul tău redefineşti variabile, gen din $_POST['ceva'] faci $ceva. Ştiu că vrei sa scapi de caracterele programării, dar dacă într-un script complex faci aşa ceva, pierzi mult timp iar la un moment dat o să-ţi prinzi şi urechile în cod. 4. După redirect - header('bla bla bla') adaugi exit(); 5. Tehnologia a avansat. Nu mai folosi mysql, ci pdo. Greşeli cred că mai sunt, n-o să stau să mă uit la fiecare linie în parte. Şi să nu mi-o iei în nume de rău. Şi eu făceam mai demult prostii dintr-astea. |
#4
Publicat: 22 ianuarie 2014 - 07:44
De acord cu cele scrise de w3room.
In plus: As incepe direct invatand sa folosesc template-uri, cum ar fi Smarty. Template-urile separa foarte frumos logica de nivelul de prezentare. Adica nu mai faci combinatii de cod PHP cu marcaje HTML. De acord cu PDO-ul. Si utilizeaza o clasa cu metode generale: insert, select, update. Sunt sigur ca sunt cateva deja scrise si deloc complicate. Nu pot sublinia cat de important e exit; dupa header(""); Cand construiesti un query, foloseste sprintf: $sql = sprintf("INSERT INTO `users` VALUES ('%s','%s','%s','%s')", mysql_real_escape_string($username), mysql_real_escape_string($password_hash), mysql_real_escape_string($firstname), mysql_real_escape_string($lastname)); |
#7
Publicat: 22 ianuarie 2014 - 13:43
RpgBoy, pe 22 ianuarie 2014 - 12:55, a scris:
Ce trebuie sa fac ca sa nu te poti inregistra cu spatii (spacekey)? *Am testat in graba pe formularul de login ca sa verific daca ar merge, acum il fac si pentru register.php. *Pe langa ce ati spus voi, mai am de adaugat ca trebuia sa folosesc un maxlenght in formularul "register.php" ca sa avem o limita de caractere, la fel ca in baza de date. *Mai e o problema cu HTTP_REFERER (nu e definit) - o voi explica imediat ce o inteleg... <?php if (isset($_POST['username'])&&isset($_POST['password'])) { $username = $_POST['username']; $password = $_POST['password']; if (!empty($username)&&!empty($password)) { if (str_replace(" ","","$username")&& str_replace(" ","","$password")) { $password_hash = md5($password); } else { echo 'You\'re not allowed to use spaces in those fields'; } } } ?> <form action="replace.php" method="POST"> Username: <input type="text" name="username"> Password: <input type="password" name="password"> <input type="submit" value="Log in"> </form> Editat de RpgBoy, 22 ianuarie 2014 - 13:45. |
#8
Publicat: 22 ianuarie 2014 - 16:12
Ce-am facut pana la urma a fost sa adaug intre if (isset...) ... { si if (!empty...)..}} urmatorul cod:
if (stripos($username, " ") !== false || stripos($password, " ") !==false) { echo "Please do not use spaces."; } else { Iar blocul else incepe cu if (!empty....) si se termina dupa 'All fields are required' , astfel: register.php: <?php require 'core.inc.php'; require 'connect.inc.php'; if (!loggedin()) { if (isset($_POST['username'])&& isset($_POST['password'])&& isset($_POST['password_again'])&& isset($_POST['firstname'])&& isset($_POST['lastname'])) { $username = $_POST['username']; $password = $_POST['password']; $password_again = $_POST['password_again']; $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; if (stripos($username, " ") !== false || stripos($password, " ") !==false) { echo "Please do not use spaces."; } else { $password_hash = md5($password); if (!empty($username)&& !empty($password)&& !empty($password_again)&& !empty($firstname)&& !empty($lastname)) { if ($password!=$password_again) { echo 'Passwords don\'t match.'; } else { $query = "SELECT `username` FROM `users` WHERE `username`='$username'"; $query_run = mysql_query($query); if (mysql_num_rows($query_run)==1) { echo 'The username '.$username.' already exists.'; } else { $query = "INSERT INTO `users` VALUES ('','".mysql_real_escape_string($username)."','".mysql_real_escape_string($password_hash)."','".mysql_real_escape_string($firstname)."','".mysql_real_escape_string($lastname)."','')"; if ($query_run = mysql_query($query)) { header('Location: register_success.php'); exit(); } else { echo 'Sorry, we couldn\'t register you at this time. Please try again later.'; } } } } else { echo 'All fields are required.'; } } } ?> <form action="register.php" method="POST"> Username:<br> <input type="text" name="username" value="<?php echo $username; ?>" maxlength="30"><br><br> Password:<br> <input type="password" name="password" maxlength="32"><br><br> Password again:<br> <input type="password" name="password_again" maxlength="32"><br><br> Firstname:<br> <input type="text" name="firstname" value="<?php echo $firstname; ?>" maxlength="40"><br><br> Lastname:<br> <input type="text" name="lastname" value="<?php echo $lastname; ?>" maxlength="40"><br><br> <input type="submit" value="Register"> </form> <?php } else if (loggedin()) { echo 'You\'re already registered and logged in.'; } ?> <br><br> <?php echo 'Or go back to <a href="index.php">Home page</a>'; ?>*Am adaugat si maxlength="xx" in formularul html. Editat de RpgBoy, 22 ianuarie 2014 - 16:26. |
Anunturi
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi