Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: instrukcja if, gdzie popełniam błąd?
Forum PHP.pl > Forum > PHP
zakonnik
Piszę skrypt księgi gości, wszystko ładnie działa poza jednym: instrukcja if nie działa tak jak się spodziewam i zawsze wykonuje się zapis do bazy:
Kod
<?php

if (isset($_POST['imie']))
{
$_POST['imie'] = konwertuj($_POST['imie']);
$_POST['www'] = konwertuj($_POST['www']);
$_POST['data'] = konwertuj($_POST['data']);
$_POST['mail'] = konwertuj($_POST['mail']);
$_POST['komentarz'] = konwertuj($_POST['komentarz']);
$blad=null;
if (strlen($_POST['komentarz'])<10 || strlen($_POST['komentarz'])>1024)
$blad.='Komentarz ma nieprawidłową długość - minimum to 10 znaków, makismum 1024.<br>';
if (strlen($_POST['imie'])<3 || strlen($_POST['imie'])>30)
$blad.='Imię ma nieprawidłową długość - minimum to 3 znaki, maksimum 30.<br>';
if (strlen($_POST['www'])<6 || strlen($_POST['www'])>50)
$blad.='Adres www ma nieprawidłową długość - minimum to 6 znaków, maksimum 50.<br>';
if (strlen($_POST['mail'])<6 || strlen($_POST['imie'])>50)
$blad.='E-mail ma nieprawidłową długość - minimum to 6 znaków, maksimum 50.<br>';
if (!ereg ("^.+@.+\..+{:content:}quot;, $_POST['mail']))
$blad.='Niepoprawny adres e-mail!';
if ($blad != null){
info($blad,'blad');
info('Popraw formularz i wyślij ponownie.','blad');
$skok = 1;
}
else $skok = 2;
}
?>
<div id="ksiega_form">
<form action="index.php?go=ksiega&amp;lay=<?php echo($_GET['lay']); ?>&amp;action=add" method="POST">
<p><input type="hidden" name="action" value="add"></p>
<table class="tabela_ksiega">
<tr><td class="lewo_ksiega">Imię: </td>
<td><input size="40" type="text" name="imie" value="<?php echo $_POST['imie']; ?>"></td>
</tr>
<tr>
<td class="lewo_ksiega">e-mail: </td>
<td><input size="40" type="text" name="mail" value="<?php echo $_POST['mail']; ?>"></td>
</tr>
<tr>
<td class="lewo_ksiega">www: </td>
<td><input size="40" type="text" name="www" value="<?php echo $_POST['www']; ?>"></td>
</tr>
<tr>
<td rowspan="2"  class="lewo_ksiega" style="vertical-align:top;">Komentarz: </td>
<td><textarea name="komentarz" cols="40" rows="10"><?php echo $_POST['komentarz']; ?></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Dodaj wpis" class="button"><input type="reset" value="Wyczyść" class="button"></td>
</tr>
</table>
</form>
</div>
<?php

if ($skok = 2){
$uzyszkodnik = 'user';
$baza = 'baza';
$haselko = 'haslo';
$baza_host = 'host';
$polaczenie = @mysql_connect($baza_host, $uzyszkodnik, $haselko) or die('Brak połączenia z bazą.');
@mysql_select_db($baza, $polaczenie) or die('Nie mogę wybrać bazy.');
mysql_query('INSERT INTO ksiega VALUES(NULL,"'.$_POST[imie].'","'.$_POST[www].'","'.$_POST[mail].'","'.$_POST[komentarz].'","'.time().'")');
$blad = 'Wpis do księgi został dodany';
info ($blad,'ok');
}
?>

Chodzi konkretnie o if $skok, jeśli nie ma danych POST to ta część po if nie ma się wykonać.
bregovic
Piszesz:
  1. <?php
  2. if ($skok = 2)
  3. ?>

Czyli nadajesz zmiennej $skok wartość 2. Czego szukasz to == lub ===. Zerknij na operatory porównawcze. A, i na pszyszłość, używaj znaczników [php]
zakonnik
Dzięki piękne, teraz działa jak trzeba. prosty błąd a przyprawiał o nerwicę :S.
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.