Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Zmiana danych przez formularz.
Forum PHP.pl > Forum > Przedszkole
milw0rm
Cześć chciałbym sobie zrobić skrypt który aktualizował by mi dane zalogowanego użytkownika i mam z tym problem przedstawię wam po niżej jak wygląda plik login.php
  1. <?php
  2.  
  3.  
  4. if (isset($_POST['konto']) and isset($_POST['password']))
  5.  
  6.  
  7. {
  8.  
  9. require('conn.php');
  10.  
  11. $konto=mysql_real_escape_string(trim($_POST['konto']));
  12.  
  13. $password=mysql_real_escape_string(trim($_POST['password']));
  14.  
  15. if ($konto!="" and $password!="")
  16.  
  17. {
  18.  
  19. $password = sha1(md5($password));
  20.  
  21. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  22.  
  23. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  24.  
  25. $ile=mysql_num_rows($temp);
  26.  
  27. $temp=mysql_fetch_array($temp);
  28.  
  29. $id=$temp['id'];
  30.  
  31.  
  32.  
  33. if ($ile==1)
  34.  
  35. {
  36.  
  37. $_SESSION['user_id']=$id;
  38.  
  39. $_SESSION['login']=$konto;
  40.  
  41. echo('Zostales zalogowany. Przejdz do <a href="index.php">strony glownej</a> ');
  42.  
  43. }
  44.  
  45. else echo ('Podales zle dane. Kliknij wstecz aby sprobowac ponownie.');
  46.  
  47. }
  48.  
  49. }
  50.  
  51. else{
  52.  
  53. ?>
  54.  
  55. <html>
  56.  
  57. <body>
  58.  
  59. <form action="login.php" method="post">
  60.  
  61. <strong>Nazwa konta:</strong><input name="konto" type="text" value="" /><br>
  62.  
  63. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  64.  
  65. <input type="submit" value="Zaloguj" />
  66.  
  67. </form>
  68.  
  69. </body>
  70.  
  71. </html>
  72.  
  73. <?php
  74.  
  75. }?>


plik do połączenia z bazą danych aby go zainicjować za pomocą
  1. require 'conn.php';

  1. <?
  2. define('DB_HOST','localhost');
  3. define('DB_USER','terrory'); //wpisz nazwęużytkownika bazy danych
  4. define('DB_PASS','xxxxxx'); //wpisz hasło dla tego użytkownika
  5. define('DB_DB','terrory_wirtualny');
  6.  
  7. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  8. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  9.  
  10. mysql_select_db(DB_DB,$connect)
  11. ?>
  12.  


znalazłem mniej więcej odpowiedz

zmiendane.php

  1. <?php
  2. require 'conn.php';// polaczenie z baza danych
  3.  
  4. $id=$_GET['id'];
  5.  
  6. $query=" SELECT * FROM user WHERE id='$id'";
  7. $result=mysql_query($query);
  8. $num=mysql_numrows($result);
  9.  
  10. $i=0;
  11. while ($i < $num) {
  12. $first=mysql_result($result,$i,"login");
  13. $last=mysql_result($result,$i,"password");
  14. $phone=mysql_result($result,$i,"imie");
  15. $mobile=mysql_result($result,$i,"nazwisko");
  16. $fax=mysql_result($result,$i,"adres");
  17. $email=mysql_result($result,$i,"gg");
  18. $web=mysql_result($result,$i,"portfel");
  19.  
  20. ++$i;
  21. }
  22. ?>
  23. <form action="updated.php" method="post">
  24. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  25. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  26. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  27. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  28. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  29. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  30. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  31. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  32. <input type="Submit" value="Aktualizuj">
  33. </form>


i mysql zwraca mi błąd
Parse error: syntax error, unexpected '<' in /home/terrory/public_html/Skrypty/Wirtualny/profil/zmiendane.php on line 24
patryczakowy
mała literówka:
  1. $num=mysql_num_rows($result);
milw0rm
dzięki ale teraz słuchaj bo mam problem bo formularz przenoszę do update.php wygląda on tak
  1. <?
  2. require 'conn.php';
  3.  
  4. $ud_id=$_POST['ud_id'];
  5. $ud_first=$_POST['ud_login'];
  6. $ud_last=$_POST['ud_password'];
  7. $ud_phone=$_POST['ud_imie'];
  8. $ud_mobile=$_POST['ud_nazwisko'];
  9. $ud_fax=$_POST['ud_adres'];
  10. $ud_email=$_POST['ud_gg'];
  11. $ud_web=$_POST['ud_portfel'];
  12.  
  13. $query="UPDATE user SET login='$ud_first', password='$ud_last', imie='$ud_phone', nazwisko='$ud_mobile', adres='$ud_fax', gg='$ud_email', portfel='$ud_web' WHERE id='$ud_id'";
  14. mysql_query($query);
  15. echo "Rekord zaktualizowany";
  16.  
  17. ?>
  18.  


i wyrzuca mi błąd MYSQL:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'nazwa uÂżytkowni'@'localhost' (using password: YES) in /home/terrory/public_html/Skrypty/Wirtualny/profil/updated.php on line 14

Warning: mysql_query() [function.mysql-query]: Access denied for user 'terrory'@'localhost' (using password: NO) in /home/terrory/public_html/Skrypty/Wirtualny/profil/updated.php on line 17

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/terrory/public_html/Skrypty/Wirtualny/profil/updated.php on line 17
Rekord zaktualizowany
Warning: mysql_close(): no MySQL-Link resource supplied in /home/terrory/public_html/Skrypty/Wirtualny/profil/updated.php on line
yevaud
odpowiedzi juz parser php Ci udzielil
sprawdz co masz w conn.php i dlaczego sa tam zle dane logowania
zend
Forum to nie parser! Przecież pisze wyraźnie że nie udało Ci się nawiązać połączenia
milw0rm
wiem o tym ale to wygląda tak jak by nie mógł sobie z definiować tego pliku w pliku conn.php jest wszystko dobrze bo inne pliki łączy ! i szukam tego błędu właśnie.
gigzorr
a nie powinno być
require ("conn.php");

?
milw0rm
Cytat(gigzorr @ 19.06.2010, 16:05:35 ) *
a nie powinno być
require ("conn.php");

?

nic z tego sad.gif to bo do pliku update.php przechodzę z tego formularza może tutaj trzeba coś z definiować ?

  1. <?php
  2. require 'conn.php';
  3. if (isset($_POST['konto']) and isset($_POST['password']))
  4. $id=$_GET['id'];
  5.  
  6. $query=" SELECT * FROM user WHERE id='$id'";
  7. $result=mysql_query($query);
  8. $num=mysql_num_rows($result);
  9.  
  10. $i=0;
  11. while ($i < $num) {
  12. $first=mysql_result($result,$i,"login");
  13. $last=mysql_result($result,$i,"password");
  14. $phone=mysql_result($result,$i,"imie");
  15. $mobile=mysql_result($result,$i,"nazwisko");
  16. $fax=mysql_result($result,$i,"adres");
  17. $email=mysql_result($result,$i,"gg");
  18. $web=mysql_result($result,$i,"portfel");
  19.  
  20. ++$i;
  21. }
  22. ?>
  23. <form action="updated.php" method="post">
  24. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  25. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  26. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  27. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  28. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  29. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  30. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  31. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  32. <input type="Submit" value="Aktualizuj">
  33. </form>
patryczakowy
Sprawdź jeszcze czy kodowanie plików update.php i conn.php jest takie samo

i czy użytkownik ma prawo UPDATE
nospor
@gigzorr a co za różnica miedzy Twoim zapisem a jego? Tylko nie mow ze chodziło ci o ' vs "
@patryczakowy a co ma piernik do wiatraka?

@milw0rm a czemu ty masz raz:
nazwa uÂżytkowni'@'localhost
a inny razem
terrory@'localhost

I to w tym samym pliku...

ponadto z kodu wynika, ze ty mysql_connect robisz w conn.php, jednak zaś z bledu wynika, ze robisz to w pliku updated.php
Cytat
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'nazwa uÂżytkowni'@'localhost' (using password: YES) in /home/terrory/public_html/Skrypty/Wirtualny/profil/updated.php on line 14


Oj, coś namieszales.
Moze pokaz cały kod...
milw0rm
może ktoś za proponuję jakoś inaczej zmienić dane za pomocą formularza ?
też to widzę i tego nie rozumiem własnie z kąt to jest ...

login.php wygląda tak:
  1. <?php
  2.  
  3.  
  4. if (isset($_POST['konto']) and isset($_POST['password']))
  5.  
  6.  
  7. {
  8.  
  9. require('conn.php');
  10.  
  11. $konto=mysql_real_escape_string(trim($_POST['konto']));
  12.  
  13. $password=mysql_real_escape_string(trim($_POST['password']));
  14.  
  15. if ($konto!="" and $password!="")
  16.  
  17. {
  18.  
  19. $password = sha1(md5($password));
  20.  
  21. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  22.  
  23. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  24.  
  25. $ile=mysql_num_rows($temp);
  26.  
  27. $temp=mysql_fetch_array($temp);
  28.  
  29. $id=$temp['id'];
  30.  
  31.  
  32.  
  33. if ($ile==1)
  34.  
  35. {
  36.  
  37. $_SESSION['user_id']=$id;
  38.  
  39. $_SESSION['login']=$konto;
  40.  
  41. echo'Zostales zalogowany. Zostaniesz przekierowanny do strony glownej....';
  42.  
  43. }
  44. else
  45.  
  46.  
  47. echo ('Podales zle dane. Kliknij wstecz aby sprobowac ponownie.');
  48.  
  49. }
  50.  
  51. }
  52.  
  53. else{
  54.  
  55. ?>
  56.  
  57. <html>
  58.  
  59. <body>
  60.  
  61. <form action="login.php" method="post">
  62.  
  63. <strong>Nazwa konta:</strong><input name="konto" type="text" value="" /><br>
  64.  
  65. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  66.  
  67. <input type="submit" value="Zaloguj" />
  68.  
  69. </form>
  70.  
  71. </body>
  72.  
  73. </html>
  74.  
  75. <?php
  76.  
  77. }?>


zmiendane.php

  1. <?php
  2. require 'conn.php';
  3. if (isset($_POST['konto']) and isset($_POST['password']))
  4. $id=$_GET['id'];
  5.  
  6. $query=" SELECT * FROM user WHERE id='$id'";
  7. $result=mysql_query($query);
  8. $num=mysql_num_rows($result);
  9.  
  10. $i=0;
  11. while ($i < $num) {
  12. $first=mysql_result($result,$i,"login");
  13. $last=mysql_result($result,$i,"password");
  14. $phone=mysql_result($result,$i,"imie");
  15. $mobile=mysql_result($result,$i,"nazwisko");
  16. $fax=mysql_result($result,$i,"adres");
  17. $email=mysql_result($result,$i,"gg");
  18. $web=mysql_result($result,$i,"portfel");
  19.  
  20. ++$i;
  21. }
  22. ?>
  23. <form action="updated.php" method="post">
  24. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  25. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  26. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  27. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  28. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  29. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  30. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  31. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  32. <input type="Submit" value="Aktualizuj">
  33. </form>


update.php zmieiłem teraz na inne kodowanie tylko w pliku aby było ale i tak nic...
  1. <?
  2. $ud_id=$_POST['id'];
  3. $ud_first=$_POST['login'];
  4. $ud_last=$_POST['password'];
  5. $ud_phone=$_POST['imie'];
  6. $ud_mobile=$_POST['nazwisko'];
  7. $ud_fax=$_POST['adres'];
  8. $ud_email=$_POST['gg'];
  9. $ud_web=$_POST['portfel'];
  10.  
  11. $username="terrory_root";
  12. $password="xXxxXx";
  13. $database="terrory_wirtualny";
  14. mysql_connect(localhost,$username,$password)
  15.  
  16. $query="UPDATE user SET login='$ud_first', password='$ud_last', imie='$ud_phone', nazwisko='$ud_mobile', adres='$ud_fax', gg='$ud_email', portfel='$ud_web' WHERE id='$ud_id'";
  17. mysql_query($query);
  18. echo "Rekord zaktualizowany";
  19.  
  20. ?>
  21.  


edit://
jestem pewny tego że coś jest z tym plikiem zmiendane.php on definiuję mi własnie chyba te połączenie przez ten formularz html...
nospor
Przeciez ci zaproponowalem:
Cytat
Oj, coś namieszales.
Moze pokaz cały kod...
I ustosunkuj się proszę do mojego poprzedniego posta, bo masz tam opisane parę niejasnosci. To w nich jest problem
gigzorr
Nie , poprostu myślałem , że bez nawiasów być nie może tongue.gif , a nie możesz poprostu zrobić połączenia z baza danych w tym pliku , bez żadnego includowania?Ale jak ktoś już tutaj napisał,raz masz inne dane.
milw0rm
Kurde znowu mam problem zmiendane.php nie zmieniało mi dancyh więc zajrzałem jak to ma wyglądać i ma to wyglądać tak

  1. $id=$_GET['id'];
  2. $username="nazwa użytkownika";
  3. $password="hasło";
  4. $database="nazwa bazy danych";
  5. mysql_connect(localhost,$username,$password);
  6.  
  7. $query=" SELECT * FROM contacts WHERE id='$id'";
  8. $result=mysql_query($query);
  9. $num=mysql_numrows($result);
  10.  
  11. $i=0;
  12. while ($i < $num) {
  13. $first=mysql_result($result,$i,"first");
  14. $last=mysql_result($result,$i,"last");
  15. $phone=mysql_result($result,$i,"phone");
  16. $mobile=mysql_result($result,$i,"mobile");
  17. $fax=mysql_result($result,$i,"fax");
  18. $email=mysql_result($result,$i,"email");
  19. $web=mysql_result($result,$i,"web");
  20.  
  21. Dalsza część kodu
  22.  
  23. ++$i;
  24. }


Gdzie dalsza część kodu jest kodem dla strony aktualizacyjnej. Zawiera tylko formatowanie HTML dla wyniku:

  1. <form action="update.php" method="post">
  2. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  3. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  4. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  5. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  6. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  7. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  8. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  9. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  10. <input type="Submit" value="Aktualizuj">
  11. </form>


czyli:
  1. <?php
  2. -
  3. require 'conn.php';
  4. if (isset($_POST['konto']) and isset($_POST['password']))
  5. $id=$_GET['id'];
  6.  
  7. $query=" SELECT * FROM user WHERE id='$id'";
  8. $result=mysql_query($query);
  9. $num=mysql_num_rows($result);
  10.  
  11. $i=0;
  12. while ($i < $num) {
  13. $first=mysql_result($result,$i,"login");
  14. $last=mysql_result($result,$i,"password");
  15. $phone=mysql_result($result,$i,"imie");
  16. $mobile=mysql_result($result,$i,"nazwisko");
  17. $fax=mysql_result($result,$i,"adres");
  18. $email=mysql_result($result,$i,"gg");
  19. $web=mysql_result($result,$i,"portfel");
  20.  
  21. <form action="update.php" method="post">
  22. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  23. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  24. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  25. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  26. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  27. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  28. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  29. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  30. <input type="Submit" value="Aktualizuj">
  31. </form>
  32.  
  33. ++$i;
  34. }
  35. ?>
  36.  


no i oczywiście, niestety błąd mysql
Parse error: syntax error, unexpected '<' in /home/terrory/public_html/Skrypty/Wirtualny/profil/zmiendane.php on line 22
niby nie powinno być tutaj znacznika z tego co wynika ale jak go przesunę to nie aktualizuje mi danych ...
patryczakowy
zacznij używać edytora co koloruje składnie to od razu będziesz widział o co chodzi

linia 21 dodaj ?>
linia 33 dodaj <?php
nospor
@milw0rm zapoznaj się w koncu z podstawami języka,którego uzywasz...
Nie mozesz od tak wstawic kodu html do kodu php. Musisz najpierw wyjsc z kodu php poprzez ?>
milw0rm
teraz mi formularza nie wyświetla biały ekran biggrin.gif
patryczakowy
pewnie pętla się nie wykonała
milw0rm
Cytat(patryczakowy @ 19.06.2010, 17:03:14 ) *
pewnie pętla się nie wykonała

ale z jakiego powodu niby ? nie widzę żadnego błędu

widzę że jak kazaliście mi zakończyć ?> gdzie pętla się miała skończyć na samym końcu skryptu to jak miała się wykonać jak przeniosę ją przed zakończeniem skryptu to znowu nie aktualizuję mi danych smile.gif
  1.  
  2. <?php
  3. -
  4. require 'conn.php';
  5. if (isset($_POST['konto']) and isset($_POST['password']))
  6. $id=$_GET['id'];
  7.  
  8. $query=" SELECT * FROM user WHERE id='$id'";
  9. $result=mysql_query($query);
  10. $num=mysql_num_rows($result);
  11.  
  12. $i=0;
  13. while ($i < $num) {
  14. $first=mysql_result($result,$i,"login");
  15. $last=mysql_result($result,$i,"password");
  16. $phone=mysql_result($result,$i,"imie");
  17. $mobile=mysql_result($result,$i,"nazwisko");
  18. $fax=mysql_result($result,$i,"adres");
  19. $email=mysql_result($result,$i,"gg");
  20. $web=mysql_result($result,$i,"portfel");
  21. }
  22. ?>
  23.  
  24. <form action="update.php" method="post">
  25. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  26. Pierwsze imię: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
  27. Ostatnie imię: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
  28. Telefon stacjonarny: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
  29. Telefon komórkowy: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
  30. Fax: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
  31. Adres E-mail: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
  32. Adres WWW: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
  33. <input type="Submit" value="Aktualizuj">
  34. </form>
  35.  
  36. <?php
  37. ++$i;
  38.  
  39. ?>


więc to nie jest rozwiązanie zgodnie z poradnikiem z wortal.php.pl http://wortal.php.pl/phppl/wortal/artykuly...usuwanie_danych

  1. $id=$_GET['id'];
  2. $username="nazwa użytkownika";
  3. $password="hasło";
  4. $database="nazwa bazy danych";
  5. mysql_connect(localhost,$username,$password);
  6.  
  7. $query=" SELECT * FROM contacts WHERE id='$id'";
  8. $result=mysql_query($query);
  9. $num=mysql_numrows($result);
  10.  
  11. $i=0;
  12. while ($i < $num) {
  13. $first=mysql_result($result,$i,"first");
  14. $last=mysql_result($result,$i,"last");
  15. $phone=mysql_result($result,$i,"phone");
  16. $mobile=mysql_result($result,$i,"mobile");
  17. $fax=mysql_result($result,$i,"fax");
  18. $email=mysql_result($result,$i,"email");
  19. $web=mysql_result($result,$i,"web");
  20.  
  21. Dalsza część kodu tutaj ten formularz html
  22.  
  23. ++$i;
  24. }

więc może zastosować echo ?
patryczakowy
np złe id albo brak zmiennych $_POST ty wiesz najlepiej co robisz w takich sytuacjach najlepiej daj sobie w pętli
  1. echo $i.'<br/>'

i będziesz widział jeszcze daj
  1. $query=" SELECT * FROM user WHERE id='$id'";
  2. echo $query;
nospor
a wszedles spowtorem do PHP?
<?php
pisał ci patryczak o tym
milw0rm
tak wszedłem już wszystko ładnie ale danych nie zmienia dalej i nie mam pojęcia czemu ...

może coś tutaj z tym update

  1. <?
  2. $ud_id=$_POST['ud_id'];
  3. $ud_first=$_POST['ud_login'];
  4. $ud_last=$_POST['ud_password'];
  5. $ud_phone=$_POST['ud_imie'];
  6. $ud_mobile=$_POST['ud_nazwisko'];
  7. $ud_fax=$_POST['ud_adres'];
  8. $ud_email=$_POST['ud_gg'];
  9. $ud_web=$_POST['ud_portfel'];
  10.  
  11. require 'conn.php';
  12.  
  13. $query="UPDATE user SET login='$ud_first', password='$ud_last', imie='$ud_phone', nazwisko='$ud_mobile', adres='$ud_fax', gg='$ud_email', portfel='$ud_web' WHERE id='$ud_id'";
  14. mysql_query($query);
  15. echo "Rekord zaktualizowany";
  16.  
  17. ?>


zmieniłem również zamiast require 'conn.php';
  1. $username="terrory_root";
  2. $password="xXxxXx";
  3. $database="terrory_wirtualny";
  4. mysql_connect(localhost,$username,$password);


i tak dalej nic...
nospor
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
a zobaczysz być może parę dodatkowych błędów, które pomogę Tobie/nam w rozwiązaniu tego problemu.
milw0rm
A proszę ciebie bardzo w moim pliku login.php na stronie loguję się uzyskuje rezultat poprawny zostałeś zalogowany przerzuca mnie do strony głównej wyświetlają się dane z bazy witaj nazwa użytkownika twoje imię to itd
teraz przechodząc do pliku zmiendane.php moim oczom ukazuję się formularz zgodnie z poradnikiem z worta.php.pl http://wortal.php.pl/phppl/wortal/artykuly...usuwanie_danych
Cytat:
Jak widać ten kod zwróci standardowy formularz , lecz zamiast pustych pól jak to miało miejsce przy wprowadzaniu danych, ten będzie zawierał aktualne informacje i pozwalał na ich edycję i zatwierdzenie wprowadzonych zmian.
mi tego jednak nie zwraca nie wiem czemu

Login:
Hasło:
Imię:
Nazwisko:
Email:
Adres:
Portfel:

Przycisk aktualizuj

teraz gdy wpisuję jakieś dane naciskam przycisk aktualizuj przenosi mnie do update.php co jest z definiowane w skrypcie, ukazuję mi się Rekord zaktualizowany zaglądam do bazy a tu skucha jak kamieniem w piach nic ....

ŹRÓDŁA:

login.php
  1. <?php
  2.  
  3. require('conn.php');
  4.  
  5. if (isset($_POST['konto']) and isset($_POST['password']))
  6.  
  7.  
  8. {
  9.  
  10. $konto=mysql_real_escape_string(trim($_POST['konto']));
  11.  
  12. $password=mysql_real_escape_string(trim($_POST['password']));
  13.  
  14. if ($konto!="" and $password!="")
  15.  
  16. {
  17.  
  18. $password = sha1(md5($password));
  19.  
  20. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  21.  
  22. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  23.  
  24. $ile=mysql_num_rows($temp);
  25.  
  26. $temp=mysql_fetch_array($temp);
  27.  
  28. $id=$temp['id'];
  29.  
  30.  
  31.  
  32. if ($ile==1)
  33.  
  34. {
  35.  
  36. $_SESSION['user_id']=$id;
  37.  
  38. $_SESSION['login']=$konto;
  39.  
  40. echo'Zostales zalogowany. Zostaniesz przekierowanny do strony glownej....';
  41.  
  42. }
  43. else
  44.  
  45.  
  46. echo ('Podales zle dane. Kliknij wstecz aby sprobowac ponownie.');
  47.  
  48. }
  49.  
  50. }
  51.  
  52. else{
  53.  
  54. ?>
  55.  
  56. <html>
  57.  
  58. <body>
  59.  
  60. <form action="login.php" method="post">
  61.  
  62. <strong>Nazwa konta:</strong><input name="konto" type="text" value="" /><br>
  63.  
  64. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  65.  
  66. <input type="submit" value="Zaloguj" />
  67.  
  68. </form>
  69.  
  70. </body>
  71.  
  72. </html>
  73.  
  74. <?php
  75.  
  76. }?>


update.php
  1. <?
  2. require 'conn.php';
  3. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  4.  
  5. $ud_id=$_POST['id'];
  6. $ud_login=$_POST['ud_login'];
  7. $ud_password=$_POST['ud_password'];
  8. $ud_imie=$_POST['ud_imie'];
  9. $ud_nazwisko=$_POST['ud_nazwisko'];
  10. $ud_adres=$_POST['ud_adres'];
  11. $ud_gg=$_POST['ud_gg'];
  12. $ud_portfel=$_POST['ud_portfel'];
  13.  
  14. $query="UPDATE user SET login='$ud_login', password='$ud_password', imie='$ud_imie', nazwisko='$ud_nazwisko', adres='$ud_adres', gg='$ud_gg', portfel='$ud_portfel' WHERE id='$ud_id'";
  15. mysql_query($query);
  16. echo "Rekord zaktualizowany";
  17. ?>


zmiendane.php
  1. <?php
  2. require 'conn.php';
  3.  
  4. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  5.  
  6. $id=$_GET['id'];
  7.  
  8. $query=" SELECT * FROM user WHERE id='$id'";
  9. $result=mysql_query($query);
  10. $num=mysql_num_rows($result);
  11. $i=0;
  12. while ($i < $num) {
  13. $first=mysql_result($result,$i,"login");
  14. $last=mysql_result($result,$i,"password");
  15. $phone=mysql_result($result,$i,"imie");
  16. $mobile=mysql_result($result,$i,"nazwisko");
  17. $fax=mysql_result($result,$i,"adres");
  18. $email=mysql_result($result,$i,"gg");
  19. $web=mysql_result($result,$i,"portfel");
  20. echo $i.'<br/>';
  21. echo $query;
  22. }
  23. ?>
  24. <form action="update.php" method="post">
  25. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  26. Pierwsze imię: <input type="text" name="ud_login" value="<? echo $first; ?>"><br>
  27. Ostatnie imię: <input type="text" name="ud_password" value="<? echo $last; ?>"><br>
  28. Telefon stacjonarny: <input type="text" name="ud_imie" value="<? echo $phone; ?>"><br>
  29. Telefon komórkowy: <input type="text" name="ud_nazwisko" value="<? echo $mobile; ?>"><br>
  30. Fax: <input type="text" name="ud_adres" value="<? echo $fax; ?>"><br>
  31. Adres E-mail: <input type="text" name="ud_gg" value="<? echo $email; ?>"><br>
  32. Adres WWW: <input type="text" name="ud_portfel" value="<? echo $web; ?>"><br>
  33. <input type="Submit" value="Aktualizuj">
  34. </form>
  35. <?
  36. ++$i;
  37.  
  38. ?>
nospor
Ale prosiłem cię, byś zastosował sie do podanych tam porad. Do wszystkich możliwych. Jedną z nich jest włączenie wyświetlania wszystkich błędów. Jakbyś je włączył, to byś zobaczył parę bardzo interesujących NOTICEów, które pomogły by ci w znalezieniu błędu.
milw0rm
Jeżeli chodzi o dokładnie ten pod punkt
Usuń również wszystkie małpy (@) z kodu. Powodują one wyciszenie błędów i ich po prostu nie widać - a ty jako początkujący masz widzieć wszystkie błędy.
Jeśli po zobaczeniu błędów, nadal nie wiesz o co chodzi, wklej nam dokładnie te błędy, z zaznaczeniem lini w kodzie, której to błąd dotyczy.
to nie mam żadnych małp i żaden błąd moim oczom się nie ukazuję sad.gif
nospor
..........
Proste polecenie, napisane po polsku a nie po chinsku....
Cytat
Przygotuj właściwie swoje środowisko pracy
Głównie chodzi o włączenie wyświetlenia wszystkich błędów i komunikatów. Aby to zrobić, wklej poniższy kod na początku swojego głównego skryptu php:
[PHP] pobierz, plaintext
error_reporting(E_ALL);
ini_set('display_errors','1');
milw0rm
Pierwszy błąd jaki mi wyrzuca w zmiendane.php
  1. Notice: Undefined index: id in /home/terrory/public_html/Skrypty/Wirtualny/profil/zmiendane.php on line 9

a wy
update.php

  1. Notice: Undefined index: id in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 8
  2.  
  3. Notice: Undefined index: ud_login in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 9
  4.  
  5. Notice: Undefined index: ud_password in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 10
  6.  
  7. Notice: Undefined index: ud_imie in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 11
  8.  
  9. Notice: Undefined index: ud_nazwisko in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 12
  10.  
  11. Notice: Undefined index: ud_adres in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 13
  12.  
  13. Notice: Undefined index: ud_gg in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 14
  14.  
  15. Notice: Undefined index: ud_portfel in /home/terrory/public_html/Skrypty/Wirtualny/profil/update.php on line 15

Rekord zaktualizowany

wiem że nie może pobrać mi tego id ale nie wiem czemu.


zmieniłem w zmiendane.php i update.php
if (isset($_SESSION['user_id']) and isset($_SESSION['login'])))
Na
if (isset($_POST['konto']) and isset($_POST['password'])
i teraz wyrzuca mi błąd
Parse error: syntax error, unexpected T_VARIABLE in /home/terrory/public_html/Skrypty/Wirtualny/profil/zmiendane.php on line 7
gdzie linia 7 to jest
$id=$_GET['id'];
haahh
Pole nie jest nazwane 'id', tylko 'ud_id', więc możesz zrobić tylko $_GET['ud_id'];
milw0rm
dalej to samo....

zrobiłem tak

  1. <?php
  2. require 'conn.php';
  3.  
  4. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  5.  
  6. $id=$_GET['ud_id'];
  7.  
  8. $query=" SELECT * FROM user WHERE id='$id'";
  9. $result=mysql_query($query);
  10. $num=mysql_num_rows($result);
  11. $i=0;
  12. while ($i < $num) {
  13. $first=mysql_result($result,$i,"login");
  14. $last=mysql_result($result,$i,"password");
  15. $phone=mysql_result($result,$i,"imie");
  16. $mobile=mysql_result($result,$i,"nazwisko");
  17. $fax=mysql_result($result,$i,"adres");
  18. $email=mysql_result($result,$i,"gg");
  19. $web=mysql_result($result,$i,"portfel");
  20. echo $i.'<br/>';
  21. echo $query;
  22. }
  23. ?>
  24. <form action="update.php" method="post">
  25. <input type="hidden" name="ud_id" value="<? echo $id; ?>">
  26. Pierwsze imię: <input type="text" name="ud_login" value="<? echo $first; ?>"><br>
  27. Ostatnie imię: <input type="text" name="ud_password" value="<? echo $last; ?>"><br>
  28. Telefon stacjonarny: <input type="text" name="ud_imie" value="<? echo $phone; ?>"><br>
  29. Telefon komórkowy: <input type="text" name="ud_nazwisko" value="<? echo $mobile; ?>"><br>
  30. Fax: <input type="text" name="ud_adres" value="<? echo $fax; ?>"><br>
  31. Adres E-mail: <input type="text" name="ud_gg" value="<? echo $email; ?>"><br>
  32. Adres WWW: <input type="text" name="ud_portfel" value="<? echo $web; ?>"><br>
  33. <input type="Submit" value="Aktualizuj">
  34. </form>
  35. <?
  36. ++$i;
  37.  
  38. ?>

jest formularz itp ale dalej danych nie zmiennia
haahh
Rozumiem, że chcesz aktualizować JEDNEGO AKTUALNIE ZALOGOWANEGO UŻYTKOWNIKA? Jeżeli tak to czytaj:

1. Przeczytaj podstawy php i podstawy php + mysql
2. Tak dalsze pytania o edycje skryptu mogą być denerwujące, jeżeli chcesz gotowca to do innego działu.
3. W takich sytuacjach nie przekazuje się danych przez GET, exclamation.gif tylko używa się POST. (Jeżeli nie wiesz dlaczego - punkt 1.)
4. Wcześniej przekazujesz dane z POST do odpowiednich zmiennych i używasz mysql_real_escape_string, żeby nikt Ci nie zrobił sieczki, i trim(), żeby.. to chyba wiesz? Wszystko zgodnie z przykładem:
  1. $nick = mysql_real_escape_string(trim($_POST['nick']));

Gdzie w $_POST['nick'] nick to nazwa (name) komórki formularza, która pobiera nick. U Ciebie wszędzie jest jakieś ud_.

TAK!! MUSISZ JĄ PRZEROBIĆ NA POTRZEBY WŁASNEGO SKRYPTU! (Jeżeli nie potrafisz patrz punkt 1.)
5. Aby odbyła się aktualizacja rekordów musisz wykonać zapytania MYSQL o składni podobnej do poniższej:
  1. $id = $_SESSION['user_id'];
  2. $q = "UPDATE users SET email='$email', nick='$nick' WHERE user_id=$id LIMIT 1";
  3. $r = mysql_query($q);

TAK!! MUSISZ JĄ PRZEROBIĆ NA POTRZEBY WŁASNEGO SKRYPTU! (Jeżeli nie potrafisz patrz punkt 1.)
6. Przydałoby się jeszcze kilka zabezpieczeń, ale niestety nie warto się o to trudzić na tym poziomie.
7. Jeżeli chcesz pobierać dane do formularza to zrób tak:
  1. $q = "SELECT nick, email FROM users WHERE user_id=$id";
  2. $r = mysql_query($q);
  3.  
  4.  
  5. if(mysqli_num_rows($r) == 1) {
  6.  
  7. $row = mysqli_fetch_array($r, MYSQLI_NUM);
  8.  
  9. echo '<form action="update.php" method="post">
  10.  
  11. <p>Imię: <input type="text" name="nick" size="15" mexlength="15" value="' . $row[0] . '" /></p>
  12.  
  13. }else {coś tam}

TAK!! MUSISZ JĄ PRZEROBIĆ NA POTRZEBY WŁASNEGO SKRYPTU! (Jeżeli nie potrafisz patrz punkt 1.)
milw0rm
dzięki wielkie haahh za sugestię,porady i naukę !
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.