Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Skrypt rejestracji
slawo123
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 21.08.2008

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


Witam, od niedawna bawię się php, i postanowiłem napisać własnego CMS'a (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
Napisałem między innymi skrypt rejestracji, ale nie wiem czy nie popełniłem w nim jakiś rażących błędów, oprócz tego że nie miesza się html'a z php.
Nie wiem również czy jest on zoptymalizowany i czy jest bezpieczny...

Proszę o szczere opinie, i wytykanie mi błędów. Nie śmiejcie się z nazewnictwa zmiennych i funkcji (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Skrypt można przetestować pod tym adresem: http://e50.com.pl/test/register.php

A kod to: http://e50.com.pl/test/kod.txt

Za długi był by go wkleić tutaj (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


niechce mi sie wszystkiego czytać, ale już widze pare błedów optymalizacji, a konkretnie na początku pobierasz z jednej tabeli nr 1 wartośc nr 1 a potem z tej samej tabeli wartosć nr 2, niemożesz wykonać raz zapytanie pobierając obie wartości?
Go to the top of the page
+Quote Post
slawo123
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 21.08.2008

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


Czyli w jaki sposób mam pobrać kilka rekordów z tabeli i zapisać je osobno w zmiennych?

Proszę o dalsze opinie.
Go to the top of the page
+Quote Post
rupek
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.04.2008

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


kurde, tego sie nie dało normalnie przeczytać, popraw formatowanie i wrzuć ponownie, a wtedy na pewno ludzie będą chętniej pomagać, zauważy się więcej błedów a i Tobie będzie się ten kod łatwiej poprawiać
Go to the top of the page
+Quote Post
slawo123
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 21.08.2008

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


Racja. http://www.wklejto.pl/8614

Czekam na sugestie...

Ok, to może inaczej...

Jak za pomocą jednego zapytania do mysql uzyskać osobno wartości z kilku rekordów? Za pewne przez pętlę, ale nie wiem jak potem te dane wyciągnąć...

Mam zapytania:

  1. <?php
  2. //odczyt nazwy domeny
  3. $zapytanie3 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'domena'");
  4. $domena = @mysql_fetch_array($zapytanie3);
  5. $domena = $domena['wartosc'];
  6.  
  7. //odczyt ścieżki path
  8. $zapytanie2 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'script_path'");
  9. $path = @mysql_fetch_array($zapytanie2);
  10. $path = $path['wartosc'];
  11.  
  12. //odczyt zawartości konfiguracji email
  13. $zapytanie1 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'email'");
  14. $obecny_email = @mysql_fetch_array($zapytanie1);
  15. $obecny_email = $obecny_email['wartosc'];
  16. ?>
Go to the top of the page
+Quote Post
ferrero2
post
Post #6





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


Pętla while :

Jeśli np "nazwa" to u Ciebie 2-ga kolumna licząc od lewej (pierwsza kolumna ma index 0) to robisz tak
Kod
$zapytanie = "SELECT * FROM config";
$result = mysql_query($zapytanie);
while($row = mysql_fetch_array($result))
{
echo $row['1'] . '<br />';
}


Niewiem czy konkretnie o to chodzi.
Go to the top of the page
+Quote Post
slawo123
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 21.08.2008

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


Ale ja nie chcę wyświetlać wyników tylko je przypisywać do różnych zmiennych.

Mam tabelę config a w niej 2 kolumny: nazwa i wartosc.

Rekordów mam 3.

I chcę w jednym zapytaniu pobrać wszystkie dane z tabeli i każdy rekord przypisać do innej zmiennej, tak jak poradził peter13135
Go to the top of the page
+Quote Post
golaod
post
Post #8





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Wszystkie dane z tabeli SELECT * FROM tabela
Funkcja http://pl.php.net/manual/pl/function.eval.php
while($wynik = mysql_fetch_array($zapytanie)
eval("\$$wynik['nazwa']=$wynik['wartosc'];");

Dzieki temu stworza Ci sie 3 zmienne o nazwach jak w tabeli (chyba ze beda spacje) i wartosciach jak w tabeli.

Ten post edytował golaod 23.08.2008, 12:01:20
Go to the top of the page
+Quote Post
ferrero2
post
Post #9





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


To dodaj :
Kod
$zapytanie = "SELECT nazwa, wartosc FROM config";
  $result = mysql_query($zapytanie);
  $licznik = 1;
  while($row = mysql_fetch_array($result))
  {
$wartosc[$licznik] =$row['wartosc'];
  $nazwa[$licznik] = $row['nazwa'];
  licznik++;
  }


Ten post edytował ferrero2 23.08.2008, 12:08:35
Go to the top of the page
+Quote Post
golaod
post
Post #10





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


@ferrero2 nie ucz go zlych nawykow
PHP jest sprytne i potrafi sam indeksowac tablice zatem wystarczy tylko $nazwa[]=$row['nazwa'],$wartosc[]=$row['wartosc']. A w ogole to po co mu dwie tablice do tego ?

Ten post edytował golaod 23.08.2008, 12:37:46
Go to the top of the page
+Quote Post
peter13135
post
Post #11





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


<?
$sql=@mysql_query("SELECT wartosc FROM `config` );
$row=mysql_fetch_array($sql);
$domena=$row['domena'];
$path = $row['script_path'];
$email=$row['email];
?>

zdaje sie że powinno być tak, jeśli źle to niech mnie ktoś poprawi
ale myśle że dobrze myśle więc napisałem co myślałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit, coś mi sie pomyliło, myślałem że masz inną strukture tabeli
w twoim przypadku powinno sie zastosować petle

$sql=@mysql_query("SELECT wartosc FROM `config` );
for($x=0,$x>3;$x++)
{
$row=mysql_fetch_array($sql);
$nazwa[$i]=row[wartosc];
}
no i $nazwa[0] to będzie domena
$nazwa[1] to patch
$nazwa[2] to email
(tak mi sie wydaje że tak być powinno, jak źle to poprawcie)

Ten post edytował peter13135 25.08.2008, 13:16:48
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:51