Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] input
kalafoon
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 21.10.2007

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


witam,
mam taki kod do zapisywania emaili do bazy z opziomu strony.
  1. <?php
  2. <font class="szukaj">Wpisz swój adres E-mail:</font><br>
  3. <form id=&#092;'f2' method="post">
  4. <input type="text" name="email" maxlength="20" size="20" value="'.$email.'" /><br>';
  5. if ($_POST[email]) {
  6. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+.)+[a-z]{2,4}$",$email)) {
  7. $blad++;
  8. $_POST[email]="";
  9. echo "<font class=\"alert_c\">zły adres e-mail!</font><br>";
  10. }
  11. }
  12.  
  13. if ($_POST[email] && $blad==0) {
  14.  
  15. $zapytanie="insert into subskrypcja values('','','".$email.")";
  16. $wykonanie_zap=mysql_query($zapytanie);
  17. echo "<font class=&#092;"alert_z\">e-mail został dodany</font>";
  18.  
  19. }
  20. ?>


problem polega na tym ze gdy adres jest poprawny to wpisuje go do bazy ale chcialbym zeby jednocześnie czyściło się pole input. Zrobić jakiś warunek na tym albo pętle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
--mysz0n--
post
Post #2





Goście







rozumiem ze pole input ma wartość $email
a jakbys po poprawnym dodaniu robił $email =' ';
wtedy przy przeładowniu strony zmienna była pusta i w miejscu value zapakowałoby sie NIC ?
Go to the top of the page
+Quote Post
kalafoon
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 21.10.2007

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


no właśnie nie działa....wstawiałem to w każdy możliwy fragment i klops :/
Go to the top of the page
+Quote Post
Ar2r
post
Post #4





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

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


Zamień miejscami bloki kodu. Zacznij od warunku sprawdzącego+zapis do bazy, zerowanie zmiennej, formularz.
Go to the top of the page
+Quote Post
kalafoon
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 21.10.2007

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


a moglbys mi to na tym moim kodzie pokazac jak to widzisz?
bo probowalem tak zrobic i dalej to samo :/
Go to the top of the page
+Quote Post
Ar2r
post
Post #6





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

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


Przerobiłem trochę Twój kod. Wypróbuj.
  1. <?php
  2. if ($_POST['email']) {
  3. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+.)+[a-z]{2,4}$",$_POST['email'])) {
  4. echo "<font class=\"alert_c\">zły adres e-mail!</font><br>";
  5. $tmpMail = $_POST['email'];
  6. }
  7. else {
  8. $zapytanie="insert into subskrypcja values('','','".$_POST['email']."')";
  9. $wykonanie_zap=mysql_query($zapytanie);
  10. echo "<font class='alert_z'>e-mail został dodany</font>";
  11. $tmpMail = "";
  12. }
  13. }
  14. ?>
  15. <font class="szukaj">Wpisz swój adres E-mail:</font><br>
  16. <form id="f2" method="post">
  17. <input type="text" name="email" maxlength="20" size="20" value="<?php print $tmpMail;?>" /><br>
Go to the top of the page
+Quote Post
kalafoon
post
Post #7





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 21.10.2007

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


super smile.gif

gdy jest zly email to zostawia go w inpucie a gdy jest ok to znika smile.gif o to chodzilo...tylko jeszcze jeden problem, mimo ze znika zawartosc inputa to przy odswiezaniu strony dodaje ponownie tego emaila do bazy tyle razy ile odswieze

Ten post edytował kalafoon 7.12.2007, 09:38:28
Go to the top of the page
+Quote Post
Ar2r
post
Post #8





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

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


Możesz to rozwiązać na kilka sposobów:
- wykonywać dodatkowe zapytanie do bazy i sprawdzać czy pole o danej wartości już istnieje w tabeli, jeśli tak to nie wykonywać zapisu
- w action formularza wskazać inny plik, w którym wykonujesz zapis i wracasz po nim na stronę z formularzem (trochę więcej roboty z obsługą błędów i przekazywaniem zmiennych formularza z powrotem do niego)
- zastosować dodatkową zmienną opartą na sesjach; ustawiać ją po zapisie do bazy, a przed zapisem sprawdzać czy jest ustawiona
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 Aktualny czas: 22.08.2025 - 10:52