Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] jak zrobić obsługę błędu w formularzu
Forum PHP.pl > Forum > Przedszkole
krzychu0808
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
piraciq
mógł byś zastosować do tego sesje

i później sprawdzać czy dane są wpisane i je wyświetlać w formularzu
krzychu0808
można jakiś przykładzik lub wplec w to co mam bo ja jestem początkujący mam duże braki
piraciq
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
krzychu0808
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)
nowotny
I co...? nie widzisz co tam jest źle...? sciana.gif
piraciq źle ci napisał ale to nie jest powód żeby bezmyślnie kopiować... :/
krzychu0808
jestem początkujący nie wiem czy można wpisać same [xxx] czy nie.. wybaczcie.. nakierujcie mnie co źle jest napisane
Hazel
  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.
krzychu0808
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)
Hazel
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
krzychu0808
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ć
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.