Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] jak zrobić obsługę błędu w formularzu
krzychu0808
post 30.07.2008, 10:56:48
Post #1





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


Witam...
napisałem formularz rejestracyjny ale nie wiem jak zrobić obsługę błędu tak żeby jak ktoś nie wpisze np loginu to wyskoczy wpisz login ale dane wprowadzone do formularza zostaną i tylko poprawić będzie trzeba... bo odsyłałem dane do innego pliki i tam sprawdzałem ale to mi się dane resetowały...
mój formularz.... plik reg.php
  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4.  
  5. function CheckDigits(obj){
  6. dataur = '';
  7. for (i=0;i<obj.value.length;i++){
  8. c = obj.value.charAt(i);
  9. n = parseInt(c);
  10. if (!isNaN(n)) dataur += c;
  11. }
  12.  
  13.  
  14. obj.value = dataur;
  15. }
  16. </script>
  17. </head>
  18. <body>
  19. Rejestracja
  20. <?php
  21. echo '<form method="post" action="reg.php">';
  22. echo '<B>Login:</b><BR><input type="text" name="userid"><br/>';
  23. echo '<B>Hasło:</b><BR><input type="password" name="userpassword">';
  24. echo '<BR><B>Imię i Nazwisko</b><BR>';
  25. echo '<input type="text" name="username"><br/>';
  26. echo '<B>Data Urodzenia</b><BR>
  27. <input type="text" name="rok" size="4" maxlength="4" onKeyUp="CheckDigits(this)">
  28. -
  29. <input type="text" name="miesiac" size="2" maxlength="2" onKeyUp="CheckDigits(this)">
  30. -
  31. <input type="text" name="dzien" size="2" maxlength="2" onKeyUp="CheckDigits(this)">rrrr-mm-dd
  32. <br/>';
  33. echo '<B>Płeć</b><BR>';
  34. echo '<input type="radio" name="sex" value="M" checked>Mężczyzna<br/><input type="radio" name="sex" value="K">Kobieta<br/>';
  35. echo '<B>Numer Gadu-Gadu</b><BR>';
  36. echo '<input type="text" name="usergg" maxlength="10" size="7" ><br/>';
  37. echo '<B>Opis Użytkownika</b><BR>';
  38. echo '<textarea rows="5" cols="40" name="opis" maxlength="200"></textarea><br/>';
  39. echo '<B>Skąd:</b><BR><input type="text" name="useradres"><br/>';
  40. echo '<input type="submit" value="Dodaj Użytkownika">';
  41. echo '</form>';
  42. ?>
  43. <a href="james.php"><br/>Powrót</a>
  44. </body>
  45. </html>


w innym pliku sprawdzałem login tak:
  1. <?php
  2. if(empty($userid)) {
  3. echo 'Wpisz Login<br/>';
  4. echo '<a href="reg.php">Popraw Formularz</a>';
  5. }
  6.  
  7. else {
  8. $connection = mysql_connect("localhost", "aikon_testowa", "xxx");
  9. $db = mysql_select_db("aikon_testowa", $connection);
  10.  
  11. $dataur = $_POST['rok'].'-'.$_POST['miesiac'].'-'.$_POST['dzien'];
  12. $dat_r = date("d-m-Y");
  13. if($_POST[userid] && $_POST[username] && $_POST[usergg] && $_POST[opis]){
  14. $sql_add = "insert into dane(data, userid, userpassword, username, dataur, opis, usergg, useradres, sex) values('$dat_r', '$userid', '$userpassword', '$username', '$dataur', '$opis', '$usergg', '$useradres', '$sex')";
  15. $dodane = mysql_query($sql_add);
  16. }
  17. if($dodane) echo '<br/>Zarejestrowano nowego użytkownika<br/><br/>';
  18. echo '<a href="james.php">Powrót</a>';
  19. }
  20. ?>

Proszę o pomoc pozdrawiam

Ten post edytował krzychu0808 30.07.2008, 11:02:53
Go to the top of the page
+Quote Post
piraciq
post 30.07.2008, 11:12:28
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 4
Dołączył: 27.07.2007
Skąd: Kraków

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


mógł byś zastosować do tego sesje

i później sprawdzać czy dane są wpisane i je wyświetlać w formularzu
Go to the top of the page
+Quote Post
krzychu0808
post 30.07.2008, 11:23:52
Post #3





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


można jakiś przykładzik lub wplec w to co mam bo ja jestem początkujący mam duże braki
Go to the top of the page
+Quote Post
piraciq
post 30.07.2008, 11:29:18
Post #4





Grupa: Zarejestrowani
Postów: 174
Pomógł: 4
Dołączył: 27.07.2007
Skąd: Kraków

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


na początku pliku
Kod
session_start();
$_SESSION['username']=$_POST;
['username']


a później w formularzu możesz dać

Kod
<input type="text" name="username" value=<?=$_SESSION['username']?>">


lub też ze sprawdzaniem

Kod
if (isset($_SESSION['username']))
{
echo '<input type="text" name="username" value=<?=$_SESSION['username']?>">';
}
else
{
echo '<input type="text" name="username">'
}


podobnie dla reszty

Ten post edytował piraciq 30.07.2008, 11:30:14
Go to the top of the page
+Quote Post
krzychu0808
post 30.07.2008, 11:50:13
Post #5





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


zrobiłem tak
  1. <?php
  2. $_SESSION['userid']=$_POST;
  3. ['userid']
  4. echo '<form method="post" action="rejestracja.php">';
  5. echo '<B>Login:</b><BR><input type="text" name="userid" value="=$_SESSION['userid']"><br/>';
  6. ?>


i mam bład
Parse error: syntax error, unexpected '[' in /home/aikon/domains/elaz.eu/public_html/james/reg.php on line 23(w kodzie 4 linijka)
Go to the top of the page
+Quote Post
nowotny
post 30.07.2008, 11:55:06
Post #6





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


I co...? nie widzisz co tam jest źle...? sciana.gif
piraciq źle ci napisał ale to nie jest powód żeby bezmyślnie kopiować... :/

Ten post edytował nowotny 30.07.2008, 11:56:13
Go to the top of the page
+Quote Post
krzychu0808
post 30.07.2008, 12:04:04
Post #7





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


jestem początkujący nie wiem czy można wpisać same [xxx] czy nie.. wybaczcie.. nakierujcie mnie co źle jest napisane
Go to the top of the page
+Quote Post
Hazel
post 30.07.2008, 12:09:02
Post #8





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


  1. <?php
  2.  
  3.  
  4. $_SESSION['userid']=$_POST['userid'];
  5. echo '<form method="post" action="rejestracja.php">';
  6. echo '<B>Login:</b><BR><input type="text" name="userid" value="'.$_SESSION['userid'].'"><br/>';
  7. ?>





Żal roku.


--------------------
Go to the top of the page
+Quote Post
krzychu0808
post 30.07.2008, 12:15:55
Post #9





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


zrobiłem tak jak napisał Hazel
  1. <?php
  2. $_SESSION['userid']=$_POST['userid'];
  3. echo '<form method="post" action="rejestracja.php">'; 
  4. echo '<B>Login:</b><BR><input type="text" name="userid" value="'.$_SESSION['userid'].'"><br/>';
  5. ?>

ale mam błąd:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/aikon/domains/elaz.eu/public_html/james/reg.php:3) in /home/aikon/domains/elaz.eu/public_html/james/reg.php on line 21(2 linijka)

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/aikon/domains/elaz.eu/public_html/james/reg.php:3) in /home/aikon/domains/elaz.eu/public_html/james/reg.php on line 21(2 linijka)

Ten post edytował krzychu0808 30.07.2008, 12:16:45
Go to the top of the page
+Quote Post
Hazel
post 30.07.2008, 12:51:09
Post #10





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Wpisz błąd w google i zobaczysz, o co chodzi. Na forum było to poruszane dosłownie setki tysięcy razy. Przed session_start() nie może być outputa.  dry.gif


--------------------
Go to the top of the page
+Quote Post
krzychu0808
post 30.07.2008, 14:51:19
Post #11





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


dzięki ale nadal nie zrobiłem obsługi błędu w jeden pliku próbowałem zorbić tak:
plik reg.php
  1. <?php
  2. echo '<form method="post" action="reg.php">'; 
  3. echo '<B>Login:</b><BR><input type="text" name="userid" value="'.$_SESSION['userid'].'"><br/>';
  4. echo '<br/><input type="submit" value="Dodaj Użytkownika">';
  5. echo '</form>';
  6.  
  7. if(empty($userid)) {
  8. echo 'Wpisz Login<br/>';
  9. echo '<a href="reg.php">Popraw Formularz</a>';
  10. }
  11.  
  12. else {
  13. $opis = strip_tags($opis);
  14. $connection = mysql_connect("localhost", "aikon_testowa", "xxx");
  15. $db = mysql_select_db("aikon_testowa", $connection);
  16.  
  17. $dataur = $_POST['rok'].'-'.$_POST['miesiac'].'-'.$_POST['dzien'];
  18. $dat_r = date("d-m-Y");
  19. if($_POST[userid] && $_POST[username] && $_POST[usergg] && $_POST[opis]){
  20. $sql_add = "insert into dane(data, userid, userpassword, username, dataur, opis, usergg, useradres, sex) values('$dat_r', '$userid', '$userpassword', '$username', '$dataur', '$opis', '$usergg', '$useradres', '$sex')";
  21. $dodane = mysql_query($sql_add);
  22. }
  23. if($dodane) echo '<br/>Zarejestrowano nowego użytkownika<br/><br/>';
  24. echo '<a href="james.php">Powrót</a>';
  25. }
  26. ?>


ale pisze na dole pod formularzem cały czas wpisz login a gdy wpisze i kliknę to wyświetla pod formularzem "zarejestrowano użytkownika" a chce żeby jak włączę formularz nie pisało "wpisz login" tylko nic a jak nie wpiszę kliknę dodaj to ma się wyświetlić wpisz login a jak będzie login i kliknę dodaj to ma zniknąć formularz i się wyświetlić Dodano użytkownika.... nie mam wiedzy jak to zrobić

Ten post edytował krzychu0808 30.07.2008, 14:51:49
Go to the top of the page
+Quote Post

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: 6.07.2025 - 16:28