Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy ja dobrze kumam?
Forum PHP.pl > Forum > PHP
eS...
witam
zrobiłem sobie wkońcu rejestracje użytkowników. Sam bez pomocy internetu itd.
i oto co mi wyszło[php:1:8e22e61f8b]<?php
mysql_connect('localhost','root','krasnal');
mysql_select_db('test');

$user=$HTTP_POST_VARS['user'];
$haslo=$HTTP_POST_VARS['haslo'];
$mail=$HTTP_POST_VARS['mail'];
$miasto=$HTTP_POST_VARS['miasto'];

$sql="SELECT * FROM user;";

$wynik=mysql_query($sql)or die('blad');

while($row = mysql_fetch_row($wynik)){
$user1=$row[1];
$haslo1=$row[2];
$mail1=$row[4];
}

if ($user==$user1 ){
echo "podany nick , istnieje w naszej bazie danych!";
}elseif($mail==$mail1){
echo "Podany mail istnieje w bazie danych";

}elseif(!($user||$haslo||$mail)){
echo "Wypełnij wszystkie pola";

}else{
$sql1= "INSERT INTO user ( `id` , `user` , `haslo` , `level`,`mail`,`miasto`,`data_przylaczenia` ) VALUES ( '', '$user', MD5( '".$haslo."' ),'0','$mail','$miasto',now() );";

$wynik1=mysql_query($sql1)or die(mysql_error());


echo ":-)";

}


?>[/php:1:8e22e61f8b]
Wszystko działe, ale powiedzcie co ewentualnie jest zle lub co dodać??
dzięki z góry
DreeD
co jest zle? jak dziala to znaczy ze wszystko jest dobrze...
co dodac? to juz zalezy od inwencji tworczej autora biggrin.gif
eS...
no chciałem sie dowiedzieć jak to wygląda w swietle takich profesjonalnych systemów rejestracjii smile.gif
DreeD
jesli o to ci chodzi tongue.gif
to dodaj jeszcze ostatnio zalogowal sie:
pokombinuj z aktywacja konta przez mail
co wiecej... to juz zalezy od potrzeb serwisu na ktorym to chcesz wykorzystac... jezeli na kilku roznych to ma byc uzywane to skonstruuj to tak zeby latwo mozna bylo edytowac skrypt (dodawajac lub usuwajac nie potrzebne informacje np. miasto)
scanner
Przeniesione z: Hydepark.

Linie 5-8:
- Lepiej $_POST[]
- Linijka jest zbędna - przecież możesz się bezpośrfednio tablicami superglobalnymi posługiwać.
Linia 10:
niepotrzebue wybierasz wszystko z bazy:
[sql:1:a150fb6072]SELECT COUNT(*) FROM user WHERE user=$_POST['user'][/sql:1:a150fb6072]I sprawdzasz, czy wynik jest równy 0 - jeśli tak, znaczy, że nie ma takiego loginu w bazie.
Linie20 - 26:
Warunki nie mają prawa prawidłowo działać, jako, że dotyczą ostatniego pobranego z bazy rekordu.

Polecam login i hasło potraktowac przez trim() na samym początku. Zapobiegnie to stworzeniu konta " " z hasłem " ".
Pozatym skrypt jest napisany dość brzydko - jeśli chodzi o sam sposób kodowania.
Polecam uwadze: isset(), empty();

Cytat
(dodawajac lub usuwajac nie potrzebne informacje np. miasto)
Podczas rejestracji niezbędne dane to: Login, hasło, email, data rejestracji, stan konta (aktywne, nieaktywne, ban) i data aktywacji. Reszta danych powinna byc w module Profil a nie Rejestracja.
eS...
Dzięki. Tak jak mówiłem robiłem to z głowy smile.gif

co do lini 20-26
to rozumiem ze ma być
[php:1:7d2b81d241]<?php
if ($user=0)
if($mail=0)

?>[/php:1:7d2b81d241]
questionmark.gif
czy moze moge to potraktować tak:
[php:1:7d2b81d241]<?php
if($user>0)//taki uzytkownik juz istnieje(mysql_num_row??)


?>[/php:1:7d2b81d241]
A do zrobienia profilu jeszcze trosszke skill musi mi podrosnąć, narazie myśle jak zrobić galerie zdjęć i powiązać właśnie usera z danym zdjęciem/ami biggrin.gif.biggrin.gif;D
scanner
Cytat
co do lini 20-26
to rozumiem ze ma być
[php:1:83cb173d2a]<?php
if ($user=0)
if($mail=0)

?>[/php:1:83cb173d2a]
questionmark.gif
czy moze moge to potraktować tak:
[php:1:83cb173d2a]<?php
if($user>0)//taki uzytkownik juz istnieje(mysql_num_row??)
?>[/php:1:83cb173d2a]
[php:1:83cb173d2a]<?php
$strSQL = "SELECT COUNT(*) FROM users WHERE user='".$_POST['user']."'";
$resSQLResult = mysql_query($strSQL);
$intFound = intval(mysql_result($resSQLResult, 0));
if($intFound > 0)
die(' Podany login juz istnieje');
?>[/php:1:83cb173d2a]
Seth
Cytat
[php:1:e49c634ed1]<?php
$user=$HTTP_POST_VARS['user'];
$haslo=$HTTP_POST_VARS['haslo'];
$mail=$HTTP_POST_VARS['mail'];
$miasto=$HTTP_POST_VARS['miasto'];
?>[/php:1:e49c634ed1]

Brak walidacji danych z zewnatrz.

Cytat
[php:1:e49c634ed1]<?php
$sql="SELECT * FROM user;";
?>[/php:1:e49c634ed1]

Bledne zapytanie. Pobierasz za duzo nie potrzebnych danych.

Dalej kod powinien byc odpowiednio zmieniony pod to jak zmienisz SQLa.

Cytat
[php:1:e49c634ed1]<?php
...
}elseif(!($user||$haslo||$mail)){
...
?>[/php:1:e49c634ed1]

zamiast || daj &&

Jeszcze trzeba nad tym popracowac, bo poza tym, ze dziala musi byc bezpieczne smile.gif

Edit: za dlugo pisalem, wiec sorry jak cos sie powtorrzylo w tym co pisal scanner smile.gif
eS...
OK, pojde za waszymi wskazówkami (Scanner,Seth)
a zeby nie rozpoczynać tematu nastepnego to napisze tutaj
mam sobie galerie, w bazie mam:
Kod
ID_OBRAZKA

ADRES//url obrazka :)

DATA DODANIA

OPIS

KATEGORIA

USER

i teraz np chce wyswietlic wszystkie obrazki które w rekordzie KATEGORIA maja "architektóra"
więc na mój prosty umysł będzie to tak :
index.php[/]
[php:1:57e13f60c8]<?php
//najpierw wyciagam potrzebne dane z bazy
//potem daje sobie odnośnik który wygląda tak
echo "<A HREF=SHOW.php?nr=".$kategoria.">".$kategoria."</a>";
//$kategoria to odpowiedni $row[x] wyciagniety z bazy

?>[/php:1:57e13f60c8]
Teraz na stronie show.php chce jak juz pisałem wysswietlić wszystkie zdjęcia z kategori "architektóra"

[b]SHOW.php

[php:1:57e13f60c8]<?php
mysql_connect();//tu wiadomo
mysql_select_db();//tu tez
$sql="SELECT * FROM galria WHERE ID_KAT='".$_GET['nr']."' ";
$wynik=mysql_query($sql);
while($ROW = mysql_fetch_array($wynik)){
$id=$ROW[0];
$adres=$ROW[1];
$kategoria=$ROW[2];
.........
}
echo "< a href=/katalog_z_obrazkami/".$adres.".jpg>obrazek</a>";

?>[/php:1:57e13f60c8]
Czy wyświetli mi wszystko z działu "architektóra", jeśli zrobie to tak jak wyzej??
Jeśli nie to juz nie wiem smile.gif
scanner
Posty offtopiczne zostały usunięte.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.