Wątek przeniesiony 2014-02-13 13:42 z PHP przez dzek69.

Formularz PHP nie zapisuje poprawnie danych w bazie

0

Witam.

Utworzyłem bazę danych do której zapisuję dane z formularza. Jeśli dane pole wymagane w formularzu nie zostanie wypełnione to wyrzuca błąd i trzeba poprawić dane w formularzu. dodatkowo jest jedno pole (zmienna2), które może być puste ale dodatkowo wyskakuje pytanie (sprawdzam czy wciśnięto button) czy oby na pewno (Jeśli tak to zapisuje w bazie string Nie). Niestety cały czas mi wyrzuca błąd:

Parse error: syntax error, unexpected T_ELSEIF in /home/u408443185/public_html/dodaj.php on line 16

Kod powinien działać następująco:

  1. jeśli któreś z pól zmienna3, zmienna4, zmienna5 jest puste to wyrzuca:
$image_urlnotok='http://strona.pl/ramka_img/notok.jpg';
 echo '<img src='.$image_urlnotok.' align="middle">';
echo '<a href="http://strona.pl/ramka.html">FORMULARZ</a></p>';

Jeśli wszystkie są wypełnione to

$image_url='http://strona.pl/ramka_img/ok.jpg';

 //   if($ins) 
    echo '<img src='.$image_url.' align="middle">';
  1. Jeśli te pola nie są puste to sprawdzamy czy zaznaczono checkbox zmienna2
$image_urlpytanie='http://strona.pl/ramka_img/pytanie.jpg';
 echo '<img src='.$image_urlpytanie.' align="middle">';

dodatkowo button

  1. Jeśli go wciśnięto to zapisujemy do bazy zmienne wraz ze zmienna2="Nie"
 
<?php 
require("connection.php");
connection();
$zmienna1 = $_POST['zmienna1'];
$zmienna2 = $_POST['zmienna2'];
$zmienna3 = $_POST['zmienna3'];
$zmienna4 = $_POST['zmienna4'];
$zmienna5 = $_POST['zmienna5'];
$zmienna6 = $_POST['zmienna6'];
$zmienna7 = $_POST['zmienna7'];
$data=date("d-m-Y, H:i:s");

    // dodajemy rekord do bazy
if (!empty($_POST['zmienna3']) && !empty($_POST['zmienna4']) && !empty($_POST['zmienna5']))
  {
 elseif (empty($_POST['zmienna2']))
{
$image_urlpytanie='http://strona.pl/ramka_img/pytanie.jpg';
 echo '<img src='.$image_urlpytanie.' align="middle">';

echo '<form method="post">';
echo '<input type="hidden" name="zmienna2" value="NIE"/>';
echo '<button name="dodaj">TAK</button>';
echo '</form>'; 

echo '<br><a href="http://strona.pl/ramka.html">FORMULARZ REJESTRACYJNY</a></p>';

if (isset($_POST['dodaj']))
$ins = @mysql_query("INSERT INTO gosc SET zmienna1='$zmienna1', zmienna2='Nie', zmienna3='$zmienna3', zmienna4='$zmienna4', zmienna5='$zmienna5', zmienna6='$zmienna6', zmienna7='$zmienna7'"); 

}
else
{ 

$ins = @mysql_query("INSERT INTO gosc SET zmienna1='$zmienna1', zmienna2='$zmienna2', zmienna3='$zmienna3', zmienna4='$zmienna4', zmienna5='$zmienna5', zmienna6='$zmienna6', zmienna7='$zmienna7'");  

$image_url='http://strona.pl/ramka_img/ok.jpg';
    echo '<img src='.$image_url.' align="middle">';
}

    else
{
$image_urlnotok='http://strona.pl/ramka_img/notok.jpg';
 echo '<img src='.$image_urlnotok.' align="middle">';
echo '<a href="http://strona.pl/ramka.html">FORMULARZ</a></p>';
}

disconnect;
?>

0

zamień

if (!empty($_POST['zmienna3']) && !empty($_POST['zmienna4']) && !empty($_POST['zmienna5']))

na

if ((!empty($_POST['zmienna3']) && !empty($_POST['zmienna4']) && !empty($_POST['zmienna5']))

PO CO opisujesz tyle nt. tego co robi skrypt, skoro ty masz BŁĄD SKŁADNIOWY.

Jak w ogóle z błędem składniowym można na forum przychodzić......

0

Witam,
Ale z tego co widzę to dodałeś jeden nadmiarowy nawias na początku i to nie jest rozwiązanie mojego problemu. Jak do kodu dodałem to co mi zaproponowałeś to teraz mam błąd:
Parse error: syntax error, unexpected '{' in /home/u408443185/public_html/dodaj.php on line 15

0

To zainstaluj kurde IDE, które Ci wskaże błąd w momencie pisania (czyli JAKIEKOLWIEK IDE) -.-
Ja faktycznie źle wskazałem, ale wczytywałem się w te nawiasy tylko w przeglądarce.

Kodu nie pisze się w notatniku.

0

Tu nie chodzi o błąd składni, a raczej o zasadę użycia if/elseif lub coś podobnego, a nie o jakieś nawiasy.
Czy mogę kogoś prosić o pomoc w temacie?

0

Nie masz nawiasu zamykającego po pierwszym if powinno być:

if(warunek)
{
kod
}
else if (warunek)
{
kod
}
0

Parse error:

błąd parsowania kodu, nie można w ogóle tego uruchomić, bo coś jest z całym kodem nie tak

syntax error

BŁĄD SKŁADNI

unexpected T_ELSEIF

niespodziewany elseif (czyli elseif pojawia się w zupełnie losowym miejscu, albo coś jest nie tak z nawiasami lub klamrami)

proste? wystarczy przeczytać kod błędu.

0

Witam,

Drogi użytkowniku dzek69 proszę o nie branie w tym temacie już udziału, gdyż Twoje rady są zbyt cenne. Mam nadzieję, że uszanujesz moją prośbę.

Zmodyfikowałem lekko kod, lecz zaznaczona część kodu nie wykonuje się poprawnie (ten warunek się nie wywołuje). Czy mogę prosić o pomoc?

 
require("connection.php");
connection();
$zm1 = $_POST['zm1'];
$zm2 = $_POST['zm2'];
$zm3 = $_POST['zm3'];
$zm4 = $_POST['zm4'];
$zm5 = $_POST['zm5'];
$zm6 = $_POST['zm6'];
$zm7 = $_POST['zm7'];
$data=date("d-m-Y, H:i:s");

    // dodajemy rekord do bazy
if (!empty($_POST['zm3']) && !empty($_POST['zm4']) && !empty($_POST['zm5']))
{
    if (!empty($_POST['zm2']))
    {
    $ins = @mysql_query("INSERT INTO gosc SET zm1='$zm1',     zm2='$zm2', zm3='$zm3', zm4='$zm4', zm5='$zm5', zm6='$zm6', zm7='$zm7'");  
    $image_url='http://strona.pl/ramka_img/ok.jpg';
    echo '<img src='.$image_url.' align="middle">';
    }
    else
    {   
    $image_urlpytanie='http://strona.pl/ramka_img/pytanie.jpg';
     echo '<img src='.$image_urlpytanie.' align="middle">';
    echo '<form method="post">';
    echo '<input type="hidden" name="zm2" value="Nie"/>';
    echo '<button name="dodaj">TAK</button>';
    echo '</form>'; 
    echo '<br><a href="http://strona.pl/ramka.html">FORMULARZ REJESTRACYJNY</a></p>';
   
============================================ Ten warunek nie chce się wywołać ============================================

 if (isset($_POST['dodaj']))
    $ins = @mysql_query("INSERT INTO gosc SET zm1='$zm1', zm2='$zm2', zm3='$zm3', zm4='$zm4', zm5='$zm5', zm6='$zm6', zm7='$zm7'"); 
        else echo 'nie wcisniety';    
===================================================================================================================

    }
}
else
{
$image_urlnotok='http://strona.pl/ramka_img/notok.jpg';
 echo '<img src='.$image_urlnotok.' align="middle">';
echo '<a href="http://strona.pl/ramka.html">FORMULARZ</a></p>';

}


disconnect;
?>




0

Bo dodaj jest buttonem, który nie wyśle wartości tego co nacisnąłeś. To robią tylko input-y. Czy zamieściłeś cały kod formularza?

0

Witam,
Tak, cały kod zamieściłem tu na stronie. Czy możesz mi podać przykład takiego input-a?
Z góry dziękuję za pomoc.

0

A możesz przeczytać pierwszy lepszy przykład użycia formularza w php? Takich przykładów jest mnóstwo. Serio, gdyby to forum miało służyć odpowiedziom na pytania, które można znaleźć w ciągu 3 sekund, to nikt innego by tu nic nie robił. Szanujmy swój czas nawzajem. Widać, że nie wiesz za bardzo czym jest BUTTON, INPUT, SUBMIT i RESET - podstawowe kontrolki formularza. Serio, przeczytaj jakikolwiek podstawowy kurs o formularzach w php. A potem zrób swój. Pamiętaj - ctrl + c, ctrl + v to Twój wróg. Przynajmniej na początku, bo jak już wiesz, co robisz, to potem Ci zaoszczędzi to czasu. A jak dobrze programujesz, to zazwyczaj nie potrzebujesz tej kombinacji ;)

0

Niestety to też nic nie dało :(

 
require("connection.php");
connection();
$zm1 = $_POST['zm1'];
$zm2 = $_POST['zm2'];
$zm3 = $_POST['zm3'];
$zm4 = $_POST['zm4'];
$zm5 = $_POST['zm5'];
$zm6 = $_POST['zm6'];
$zm7 = $_POST['zm7'];
$data=date("d-m-Y, H:i:s");


echo '<script language="javascript">';
echo 'function dodaj()';
echo '{';
$ins = @mysql_query("INSERT INTO gosc SET INSERT INTO gosc SET zm1='$zm1', zm2='$zm2', zm3='$zm3', zm4='$zm4', zm5='$zm5', zm6='$zm6', zm7='$zm7");
echo '}';
echo '</script>';


    // dodajemy rekord do bazy
if (!empty($_POST['zm3']) && !empty($_POST['zm4']) && !empty($_POST['zm5']))
{
    if (!empty($_POST['zm2']))
    {
    $ins = @mysql_query("INSERT INTO gosc SET zm1='$zm1',     zm2='$zm2', zm3='$zm3', zm4='$zm4', zm5='$zm5', zm6='$zm6', zm7='$zm7'");  
    $image_url='http://strona.pl/ramka_img/ok.jpg';
    echo '<img src='.$image_url.' align="middle">';
    }
    else
    {
    $image_urlpytanie='http://strona.pl/ramka_img/pytanie.jpg';
     echo '<img src='.$image_urlpytanie.' align="middle">';
    echo '<input type="button" name="mybutton" id="mybutton" value="TAK" onclick="dodaj()" />';
    echo '<br><a href="http://strona.pl/ramka.html">FORMULARZ REJESTRACYJNY</a></p>';    
    }
}
else
{
$image_urlnotok='http://strona.pl/ramka_img/notok.jpg';
 echo '<img src='.$image_urlnotok.' align="middle">';
echo '<a href="http://strona.pl/ramka.html">FORMULARZ</a></p>';

}


disconnect;
?>


0
echo 'function dodaj()';
echo '{';
$ins = @mysql_query("INSERT INTO gosc SET INSERT INTO gosc SET zm1='$zm1', zm2='$zm2', zm3='$zm3', zm4='$zm4', zm5='$zm5', zm6='$zm6', zm7='$zm7");
echo '}';
echo '</script>';

O kurde. Na prawdę brakuje Tobie podstaw. Ciężko będzie Tobie pomóc nie pisząc całego kodu za Ciebie. Nawet nie mam siły tłumaczyć dlaczego za to powinieneś dostać bana na komputer przez tydzień i nakaz przeczytania co najmniej jednej książki o tworzeniu stron WWW.
W skrócie:
PHP wykonuje się po stronie SERWERA.
Javascript wykonuje się po stronie KLIENTA (tu: przeglądarka)
Nie ma możliwości aby funkcja javascript dodaj() wykonała zapytanie napisane w PHP.

EDIT:
Zamiast tego buttona daj:

<input type='submit' value='Dodaj' />

i wywal ten <script>...</script>
Przywróć też <form>...</form> bo go już nie widzę

0

@Sarrus: żeby gościu chociaż echo na tym zrobił i udawał, że tak chce zrobić, a tak to echuje pustą zawartość funkcji i nawet w źródło nie łaska zajrzeć, dodatkowo upiera się, że błąd składni to nie jest błąd składni, a za krytykę się obraża, bo przecież jego krytykować nie można. I weź tu takiemu pomóż..

A źródła wiedzy jakieś ma, skoro wstawił <script language="javascript"> - jednocześnie skoro to wstawił to znaczy, że jego źródła wiedzy powstały w 1995 roku chyba...

0

Witam,
Nie jestem programistą i takowym nawet nie chcę być bo to nudneee. Pomogli mi już w temacie na innym forum i wystarczyło dodać dwie linijki. Teraz wszystkoooo działa :D . Nie będę już używał tego forum bo spotykam się tu tylko z nieżyczliwością i samymi mądrocholami. Miłego dnia.

logout

1 użytkowników online, w tym zalogowanych: 0, gości: 1