Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> tworzenie sklepu internetowego, Problemy i pytania
kujol
post 3.08.2013, 10:53:35
Post #21





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


Kiedy zrobię tak:

Kod
$_SESSION['zle'] = Podano_zle_dane;


i to wyświetlę, to wszystko jest ok, ale kiedy już robię tak:

Kod
$_SESSION['zle'] = Podano zle dane;


to jest error.
A ja wolałbym to wyświetlić bez underline "_". Można to jakoś przekształcić smile.gif


--------------------
;)
Go to the top of the page
+Quote Post
kristaps
post 3.08.2013, 11:37:36
Post #22





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

Ostrzeżenie: (0%)
-----


?

  1. ... = 'Podano zle dane';

Go to the top of the page
+Quote Post
webmaniak
post 4.08.2013, 13:05:59
Post #23





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Rozumiem że jest jakiś początek, no ale takie coś jak walidacja email - to jest konieczność. Tymczasem co tam nie wpiszę to przechodzi smile.gif


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
kujol
post 5.08.2013, 16:04:21
Post #24





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


Znalazłem takie coś:

Kod
function  checkEmail($email) {
if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)) {
  return false;
}
return true;
}


Ma to za zadanie sprawdzić poprawność formatu adresu email, ale nie za bardzo wiem jak to połączyć z plikiem "rejestracja.php", który jest powyżej. Może mnie ktoś nakierować smile.gif


--------------------
;)
Go to the top of the page
+Quote Post
kristaps
post 5.08.2013, 16:15:31
Post #25





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

Ostrzeżenie: (0%)
-----


Obsłużysz to zwykłymi warunkami if/else.

Ten post edytował kristaps 5.08.2013, 16:27:42
Go to the top of the page
+Quote Post
ssstrz
post 5.08.2013, 16:15:44
Post #26





Grupa: Zarejestrowani
Postów: 103
Pomógł: 17
Dołączył: 15.12.2012

Ostrzeżenie: (0%)
-----


daj tam gdzie masz warunki gdzie sprawdza wszystkie pola, a zamiast wyrazen regularnych lepiej uzyc gotowca
  1. filter_var($email, FILTER_VALIDATE_EMAIL)
Go to the top of the page
+Quote Post
kujol
post 13.08.2013, 10:52:01
Post #27





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


Małe modyfikacje systemu logowania, teraz powinno być lepiej. Dodałem filtrowanie danych, Hashowanie hasła, sprawdzanie budowy adresu email, loginu i hasła.
Demo dostępne tutaj
Całość można pobrać tutaj, jeśli komuś się przyda
Wygląda to tak:

index.php

Kod
<?php
session_start();

mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą");    //łącze z bazą danych
mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych");

echo "<center>$_SESSION[zle]</center>";
unset($_SESSION['zle']);

echo "<center>$_SESSION[wymagane]</center>";
unset($_SESSION['wymagane']);

echo "<center>$_SESSION[uzupelnij]</center>";
unset($_SESSION['uzupelnij']);

echo "<center>$_SESSION[dostep]</center>";
unset($_SESSION['dostep']);

echo "<center>$_SESSION[logut]</center>";
unset($_SESSION['logut']);


?>
<html>
<center>
<form method="POST" action="logowanie.php">
<b>login:</b><input type="text" name="login"><br />
<b>haslo:</b><input type="password" name="haslo"><br />
<input type="submit" value="zaloguj się" name="zaloguj"><br />
</form>
<b>Jesli nie jesteś zalogowany kliknij </b><a href="formularz.php"><b>tutaj</b></a>
</center>
</html>


logowanie.php

Kod
<?
session_start();    //rozpoczyna sesję

mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą");    //łącze z bazą danych
mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych");

function filtruj($filtracja)

{
if(get_magic_quotes_gpc())

$filtracja = stripslashes($filtracja);     //usuwa slashe

return mysql_real_escape_string(htmlspecialchars(trim($filtracja)));    // usuwa spacje, tagi html oraz niebezpieczne znaki
}

$login = filtruj($_POST['login']);        //pobiera dane z formularza
$haslo = filtruj($_POST['haslo']);

if (isset($_POST['zaloguj']))    //sprawdza czy użytkownik wcisną przycisk zaloguj    

if(!empty($_POST['login']) AND !empty($_POST['haslo']))    //sprawdza czy użytkownik wypełnił wszystkie pola

if (mysql_num_rows(mysql_query("SELECT login haslo FROM uzytkownicy1 WHERE login = '".$login."' && haslo = '".md5($haslo)."' ")) > 0 )        //sprawdza czy użytkownik o podanym loginie i haśle istnieje w bazie

{
$_SESSION['zalogowany'] = '1';        //zapisuje sesję
$_SESSION['login'] = $login;
header("Location: dziala.php");
}

else    //jeśli użytkownik o podanym loginie i haśle nie istnieje wykonuje instrukcje

{
$_SESSION['zle'] = 'Podano zle dane';
header("Location: index.php");
}

else    //jeśli użytkownik nie wypełnił wszystkich pól

{
$_SESSION['wymagane'] = 'Wypełnij wszystkie pola';
header("Location: index.php");
}

else    //jeśli ktoś próbuje wejść na stronę z adresu

{
$_SESSION['uzupelnij'] = 'Najpierw uzupelnij wszystkie pola';
header("Location: index.php");
}

?>


formularz.php

Kod
<?
session_start();

mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą");    //łącze z bazą danych
mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych");

echo "<center>$_SESSION[uzupelnij]</center>";
unset($_SESSION['uzupelnij']);

echo "<center>$_SESSION[wymagane]</center>";
unset($_SESSION['wymagane']);

echo "<center>$_SESSION[adres]</center>";
unset($_SESSION['adres']);

echo "<center>$_SESSION[log]</center>";
unset($_SESSION['log']);

echo "<center>$_SESSION[has]</center>";
unset($_SESSION['has']);

echo "<center>$_SESSION[zle]</center>";
unset($_SESSION['zle']);

echo "<center>$_SESSION[email]</center>";
unset($_SESSION['email']);

echo "<center>$_SESSION[haslo]</center>";
unset($_SESSION['haslo']);

echo "<center>$_SESSION[dodano]</center>";
unset($_SESSION['dodano']);
?>

<html>
<center>
<form method="POST" action="rejestracja.php">
<b>Twoj login:</b><input type="text" name="login"><br />
<b>Twoje haslo:</b><input type="password" name="haslo"><br />
<b>Powtorz haslo:</b><input type="password" name="haslo1"><br />
<b>Adres email:</b><input type="text" name="email"><br />
<input type="submit" value="zarejestruj się" name="zarejestruj"><br />
</form>
<b>Powrot na strone logowania </b><a href="index.php"><b>tutaj</b></a>
</center>
</html>


rejestracja.php

Kod
<?php
session_start();

mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą");    //łącze z bazą danych
mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych");

function filtruj($filtracja)

{
if(get_magic_quotes_gpc())

$filtracja = stripslashes($filtracja);     //usuwa slashe

return mysql_real_escape_string(htmlspecialchars(trim($filtracja)));    // usuwa spacje, tagi html oraz niebezpieczne znaki
}

$login=filtruj($_POST['login']);    //pobiera dane z formularza
$haslo=filtruj($_POST['haslo']);
$haslo1=filtruj($_POST['haslo1']);
$email=filtruj($_POST['email']);

if (isset($_POST['zarejestruj']))        //sprawdza czy użytkownik wcisną przycisk zarejestruj    

if (!empty($_POST['login']) AND !empty($_POST['haslo']) AND !empty($_POST['haslo1']) AND !empty($_POST['email']))    //sprawdza czy zostały uzupełnione wszystkie pola

if(preg_match('/^[a-zA-Z0-9\.\-_]+\@[a-zA-Z0-9\.\-_]+\.[a-z]{2,4}$/D', $_POST['email']))    //sprawdza poprawność struktury adresu email

if(preg_match('/^[a-zA-Z0-9\-_]{4,30}$/D', $_POST['login']))        //sprawdza poprawność struktury loginu

if(preg_match('/^[a-zA-Z0-9\-_]{6,30}$/D', $_POST['haslo']))        //sprawdza poprawność struktury hasła

if ($haslo == $haslo1)        //sprawdza czy podane chasła są takie same

if (mysql_num_rows(mysql_query("SELECT email FROM uzytkownicy1 WHERE email = '".$email."' ")) == 0 )    //sprawdza czy użytkownik o podanym adresie email istnieje

if (mysql_num_rows(mysql_query("SELECT login FROM uzytkownicy1 WHERE login = '".$login."' ")) == 0 )    //sprawdza czy użytkownik o podanym logonie  istnieje
    
{
mysql_query("INSERT INTO `uzytkownicy1` (`login`,`haslo`,`email`) VALUES ('".$login."','".md5($haslo)."','".$email."')");        //zapisuje do bazy    
$_SESSION['dodano'] = 'Dodano pomyslnie';
header("Location: formularz.php");
}

else
{
$_SESSION['haslo'] = 'Uzytkownik o podanym loginie juz istnieje';
header("Location: formularz.php");
}


else

{
$_SESSION['email'] = 'Uzytkownik o podanym adresie email juz istnieje';
header("Location: formularz.php");
}

else

{
$_SESSION['zle'] = 'Hasla nie sa identyczne';
header("Location: formularz.php");
}

else
{
$_SESSION['has'] = 'Haslo jest za krotkie, lub zawiera nie dozwolone znaki<br />( min. 6 max. 30 znakow, wtym - i _ )';
header("Location: formularz.php");
}

else
{
$_SESSION['log'] = 'Login jest za krotki, lub zawiera nie dozwolone znaki<br />( min. 4 max. 30 znakow, wtym - i _ )';
header("Location: formularz.php");
}

else
{
$_SESSION['adres'] = 'Nie poprawny adres email';
header("Location: formularz.php");
}

else

{
$_SESSION['wymagane'] = 'Wypełnij wszystkie pola';
header("Location: formularz.php");
}

else

{
$_SESSION['uzupelnij'] = 'Najpierw uzupelnij wszystkie pola';
header("Location: formularz.php");
}
?>


dziala.php (jakaś strona dla zalogowanych)

Kod
<?
session_start();

if($_SESSION['zalogowany'] == 1)
{
echo "Witaj $_SESSION[login]<br />Tu maja dostep tylko zalogowani<br /><a href=wyloguj.php>Wyloguj się</a>";
}

else
{
$_SESSION['dostep'] = 'Nie masz prawa dostepu';
header("Location: index.php");
}
?>


wyloguj.php

Kod
<?
session_start();

if(isset($_POST['wyloguj']))

$_SESSION['zalogowany'] = '0';
session_destroy();

header("Location: logut.php");
?>


logut.php

Kod
<?
session_start();

$_SESSION['logut'] = 'Zostałeś wylogowany';
header("Location: index.php");
?>


Jak można wyświetlić np. 5 najnowszych rekordów z bazy.
Mam pole z datą, lecz rekordy ustawiają się w bazie w dół, czyli najnowsze na dole. I dlatego nie mogę ich wyświetlić poprzez
dodanie
Kod
LIMIT 5

ponieważ to mi pokaże te pierwsze, czyli ostatnie.
Można to jakoś zmienić?


--------------------
;)
Go to the top of the page
+Quote Post
toffiak
post 13.08.2013, 12:36:41
Post #28





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

Ostrzeżenie: (0%)
-----


Tak można proszę poszukać pod frazą "mysql order by"


--------------------
Go to the top of the page
+Quote Post
kujol
post 19.08.2013, 17:51:13
Post #29





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


W bazie mam zapisane kategorie np. 'Dom i AGD', jeśli to prześlę za pomocą GET i wyświetlę to pojawia mi się samo 'Dom' ponieważ jest to napisane ze spacjami.
Gdy natomiast zmienię nazwę kategorii na 'Dom_i_AGD' to wtedy wyświetla mi się cała nazwa. Czy istnieje możliwość usunięcia '_' już po odebraniu danych?

@
Działa to mniej więcej tak po kliknięciu w kategorie Komputery lub Dom_i_AGD:
Efekt


--------------------
;)
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 21:47