Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: udostępnienie treści strony po wpisaniu kodu
Forum PHP.pl > Forum > PHP
aresop
Witam,

Na wstępie pragnę się przywitać i przedstawić się , Nazywam się Arek, Witam was wszystkich.

A teraz meritum mojego tematu.


Mamy sobie miejscę do wpisywania textu na stronie, gdzie jest miejsce na wpisanie kodu, po wpisaniu którym i wciśnięciu przycisku, uzyskujemy albo odpowiedz negatywną albo zostaje rozsunięta zawartość strony w tym wypadku będzie to formularz z którego dane są zapisywane w bazie danych, tą cześć zrobiłem bez problemu , problem tkwi właśnie w tym miejscu wpisywania tego kodu, nie jestem w stanie tego wykonać a jest mi to bardzo potrzebne,
ilość haseł musi być edytowalna, chodzi mi tutaj o ilość tych haseł oraz ich treść,

Mam nadzieje że wytłumaczyłem to w miarę zrozumiale:)

Pozdrawiam,
Arek

Ps. przepraszam za moje "łopatologiczne" tłumaczenia smile.gif
Dumdas
No to robisz w bazie danych x rekordów, każdy w md5 i jest to hasło.
Następnie pobierasz wszystkie przez php i w zależności od tego ile ich jest ( count(); ) tyle wyświetlasz pól formularza na hasła. Przy sprawdzaniu, kodujesz je do md5 i sprawdzasz, czy są takie same jak te w bazie danych i tyle. Zakładamy, że hasła muszą być wpisane w kolejności takiej, jakiej są w bazie, bo skrypt wtedy łatwiejszy.
aresop
poczekaj poczekaj, hasła nie będą sprawdzane po kolei. Hasło to człowiek będzie otrzymywał od osoby która poleca serwis, i dopiero gdy ten ktoś wpisze to hasło w odpowiednie pole kliknie dalej rozsunie mu się formularz, dlatego ilość haseł musi być edytowalna, bo będzie ona zależała od ilości polecających osób. do tego po kliknięciu dalej dobrze było by gdyby to hasło zostało w miejscu wpisania i po wypełnieniu formularza wysłane razem z formularzem, u mnie problem tkwi w miejscu tego sprawdzenia hasła. nie mam pojęcia jak to zrobić.

Mam nadzieje że teraz napisałem bardziej zrozumiale..
I jak bym mógł prosić przykładowe kody, byłbym wdzięczny smile.gif
Dumdas
No to rekordy w bazie nie są statyczne, możesz je edytować przez PHP. Przy zaproszeniu np. dajesz funkcję, która wysyła gdzieś tam hasło a potem dodaje do bazy rekord z hasłem zakodowanym przy md5.
  1. $haslo = 'nowehaslo';
  2. mail(do, temat, $haslo);
  3. $query = 'INSERT INTO tabela_z_haslami (haslo) VALUES (md5($haslo))';
  4. $wynik = mysql_query($query);

Przy wykorzystaniu hasła, inna funkcja bd to hasło usuwać.
  1. $query = 'DELETE FROM tabela_z_haslami WHERE haslo = '.$haslo;
  2. $wynik = mysql_query($query);

Co do hasła wpisanego w formularz, które ma tam zostać, to wystarczy coś takiego:
  1. <input type="password" name="pass" value="<?= $_POST['pass']?>" />

Wtedy jeżeli $POST['pass'] nie będzie miało wartości - pole będzie czyste. Jeżeli będzie miało wartość - zostanie ona wpisana w pole i będzie gotowa do dalszego przesłania.

Wszystko pisane na bieżąco, a skrypty nie pełne, tylko obrazowe winksmiley.jpg
aresop
Cytat(Dumdas @ 10.10.2009, 12:45:27 ) *
Wtedy jeżeli $POST['pass'] nie będzie miało wartości - pole będzie czyste. Jeżeli będzie miało wartość - zostanie ona wpisana w pole i będzie gotowa do dalszego przesłania.


Jeżeli będzie miało wartość zostanie rozsunięta dalsza cześć formularzu i pole będzie gotowe do dalszego przesyłania, coś takiego jak zrobić, jak byś wiedział to będziesz moim guru smile.gif
Dumdas
Już to napisałem:
  1. <input type="password" name="pass" value="<?= $_POST['pass']?>" />


I nie chcę być żadnym guru...
aresop
To sprawdzi poprawność hasła i jeżeli będzie ono poprawne to zatrzyma je i będzie gotowe do przesyłania go dalej, a mi chodzi o to by sprawdziło i jezeli jest poprawne rozsunęło moj formularz i było gotowe do przesyłania dalej
Dumdas
Czyli chcesz do tego jeszcze sprawdzanie poprawności?
  1. if(mysql_fetch_assoc(mysql_query('SELECT haslo FROM tabela_z_haslami WHERE haslo=\''.md5($_POST['pass']).'\''))) {echo hasło dobre;}
aresop
działa yahoo.gif

tylko mam jeszcze kilka problemów tongue.gif przepraszam ze tak Cie męcze Dumdas

  1. <?php
  2.  
  3. $pass = $_POST['pass'];
  4.  
  5.  
  6. // łączymy się z bazą danych
  7. $connection = @mysql_connect('localhost', 'root', '')
  8. or die('Brak połączenia z serwerem MySQL');
  9. $db = @mysql_select_db('test', $connection)
  10. or die('Nie mogę połączyć się z bazą danych');
  11.  
  12.  
  13. if(mysql_fetch_assoc(mysql_query('SELECT haslo FROM tabela_z_haslami WHERE haslo=\''.md5($_POST['pass']).'\'')))
  14.  
  15. {
  16. echo ' <form action="dodaj.php" method="post">
  17. hasło:<br />
  18. <input disabled="disabled" name="p1" value="$_POST['pass']" /><br />
  19. imię:<br />
  20. <input type="text" name="imie" /><br />
  21. e-mail:<br />
  22. <input type="text" name="email" /><br />
  23. <input type="submit" value="dodaj" />
  24. </form>';
  25. }
  26. else
  27. {
  28. echo'błędny kod';
  29. }
  30.  
  31.  
  32.  
  33. ?>

ale jakoś nie chce mi wyświetlić tej zmiennej w tym formularzu.
a teraz kod wysyłający dane

  1. <?php
  2. $pass = $_POST['pass'];
  3. $imie = $_POST['imie'];
  4. $email = $_POST['email'];
  5.  
  6. if($imie and $email) {
  7.  
  8.  
  9. $connection = @mysql_connect('localhost', 'root', '')
  10. or die('Brak połączenia z serwerem MySQL');
  11. $db = @mysql_select_db('test', $connection)
  12. or die('Nie mogę połączyć się z bazą danych');
  13.  
  14. $ = @mysql_query('SELECT haslo FROM tabela_z_haslami WHERE haslo=\''.md5($_POST['pass'])
  15. $ins = @mysql_query("INSERT INTO test SET imie='$imie', email='$email'");
  16. if($ins) echo "Rekord został dodany poprawnie";
  17. else echo "Błąd nie udało się dodać nowego rekordu";
  18. mysql_close($connection);
  19. }
  20. ?>

w bazie mam 2 wartości hasło i ile i chciałbym żeby przy wysłaniu formularza do danego hasła doliczał + 1 w wartości ile

Dumdas
  1. <input type="password" name="pass" value="<?= $_POST['pass']?>" />

to co innego niż
  1. <input disabled="disabled" name="p1" value="$_POST['pass']" />

winksmiley.jpg

doliczanie:
  1. $ilosc = mysql_query('SELECT ile FROM tabela_z_haslami WHERE haslo = \''.md5($_POST['haslo']).'\'');
  2. mysql_query('UPDATE tabela_z_haslami SET ilosc = \''.++$ilosc.'\'');

Musi być ++$ilosc, a nie $ilosc++. winksmiley.jpg
aresop
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\Program Files\WebServ\httpd\test.php on line 18

linijka 18 to
  1. <input disabled="disabled" name="p1" value="$_POST['pass']" />


ohmy.gif
Dumdas
tak, jak pisałem:
  1. <input type="password" name="pass" value="<?= $_POST['pass']?>" />
musi być...
aresop
mam
  1. <input type="password" name="pass" value="<?= $_POST['pass']?>" />


i otrzymuje odp
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\Program Files\WebServ\httpd\test.php on line 18

nie wiem co jest grane ;(
Dumdas
Dobra, poradziliśmy sobie z aresopem na gg. Raz input był wyświetlany przez echo, a raz normalnie, ale już ok wszystko.
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.