• 19 odgovora
  • 3.395 pregleda
Početnički problemi sa skriptom 31.12.2004. u 18:28 · pre 265 meseci #1
Prije par dana poceo sam da ucim php i probao da napravim jednu jednostavnu skriptu za dodavanje sms poruka. Ali iz nekog razloga ne radi pa ako mi mozete pomoci.

Imaju dva file-a. Prvi je formular:
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Dodaj SMS Poruku</title>
<link href="css_php.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.input { 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 8pt; 
    border: 1px solid #000000; 
    background-color: #9C9C9C
}
.text_naslov {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: bold;
    color: #000000;
}
-->
</style>
</head>

<body>
<form name="form1" method="post" action="add_sms1.php">
<table width="468"  border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
    <td><table border="0" align="center" cellpadding="0" cellspacing="1">
      <tr>
        <td class="text_naslov">.: Ime i Prezime (ili nick): </td>
      </tr>
      <tr>
        <td><input name="ime_nick" type="text" class="input" id="ime_nick" value="" size="20">
        </td>
      </tr>
      <tr>
        <td class="text_naslov">.: E-Mail:</td>
      </tr>
      <tr>
        <td><input name="email" type="text" class="input" id="email" size="25"></td>
      </tr>
      <tr>
        <td class="text_naslov">.: SMS Poruka:</td>
      </tr>
      <tr>
        <td><textarea name="sms_pruka" cols="50" rows="6" class="input" id="sms_pruka"></textarea></td>
      </tr>
      <tr>
        <td><table width="100%" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td width="100%"><div align="center">
                  <input name="Submit" type="submit" class="input" value="Submit">
                  <input name="Reset" type="reset" class="input" value="Reset">
              </div></td>
            </tr>
        </table></td>
      </tr>
    </table></td>
  </tr>
</table>
</form>
</body>
</html>

i php file:

Code:

<?php
# Provjerava jesu li sva polja popunjena
if (empty($_POST['ime_nick']))
    {
        echo "Morate unijeti Ime ili Nick !!!<\BR>";
        exit;
    }
else 
    {}

if (empty($_POST['email']))
    {
        echo "Morate unijeti E - mail !!!<\BR>";
        exit;
    }
else 
    {}
if (empty($_POST['sms_poruka']))
    {
        echo "Morate unijeti SMS Poruku !!!<\BR>";
        exit;
    }
else 
    {}

# Konektuje se na DB
$veza = @mysql_connect("localhost","root","db_password");

# Provjerava je li konektovanje uspjelo
if (!$veza)
{
echo "Nije moguce uspostaviti vezu sa MySQL bazom podataka !!!";
exit;
}
else
    {
        echo "Veza sa bazom je uspostavljena !!!<BR>";
    }
    
# Selektuje DB
$select_db = mysql_select_db("root");

# Provjerava je li uspjelo selektovanje DB-a
if (!$select_db)
    {
        echo "Nije moguce selektovati bazu $db_name !!!<BR>";
    }
else
    {
        echo "Baza root je uspjesno selektovana !!!<BR>";
    }
# Upisuje podatke u DB
$dodaj_sms = "INSERT INTO mk_sms_poruke SET" . 
            "ime_nick='$ime_nick'," . 
            "email='$email'," . 
            "sms_poruka='$sms_poruka'," . 
            "datum=CURDATE()";
        
# Provjerava jesu li podatci upisani u DB
if (!$dodaj_sms)
    {
        echo "Podatci nisu upisani u bazu !!!<BR>";
    }
else 
    {
        echo "Podatci su uspjesno upisani u bazu<BR>";
    }

# Diskonektuje se sa DB
mysql_close ($veza);
?>

Ako neko moze da pogleda malo i da mi kaze gresku.
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 01.01.2005. u 09:11 · pre 265 meseci #2
Citat:

# Upisuje podatke u DB
$dodaj_sms = "INSERT INTO mk_sms_poruke SET" .
"ime_nick='$ime_nick'," .
"email='$email'," .
"sms_poruka='$sms_poruka'," .
"datum=CURDATE()";


Ovde ti fali razmak između SET i ostatka INSERT-a a koliko vidim ti ovaj SQL kod nikad i ne izvršiš. Znači fali ti još i linija sa sledećim kodom:

mysql_query($dodaj_sms);
Potpis
Bratislav Velickovic
hhtp://blog.velickovic.net
Re: Početnički problemi sa skriptom 01.01.2005. u 09:23 · pre 265 meseci #3
Imaš još jednu grešku nigde ne učitavaš promenljive (samo proveravaš da li su umete) $ime_nick $email i $sms_poruka pa zato dodaj na početak skripta:
Code:

$ime_nick = $_POST['ime_nick'];
$email = $_POST['email'];
$sms_poruka = $_POST['sms_poruka'];
Potpis
Banned - Not available
Re: Početnički problemi sa skriptom 01.01.2005. u 09:27 · pre 265 meseci #4
A da promeni i ovo da ne bi dva puta učitavali:
Code:

if (empty($_POST['ime_nick']))
    {
        echo "Morate unijeti Ime ili Nick !!!<\BR>";
        exit;
    }
else 
    {}

if (empty($_POST['email']))
    {
        echo "Morate unijeti E - mail !!!<\BR>";
        exit;
    }
else 
    {}
if (empty($_POST['sms_poruka']))
    {
        echo "Morate unijeti SMS Poruku !!!<\BR>";
        exit;
    }
else 
    {}


u ovo:
Code:

if (!isset($ime_nick))
    {
        echo "Morate unijeti Ime ili Nick !!!<\BR>";
        exit;
    }

if (!isset($email))
    {
        echo "Morate unijeti E - mail !!!<\BR>";
        exit;
    }

if (!isset($sms_poruka))
    {
        echo "Morate unijeti SMS Poruku !!!<\BR>";
        exit;
    }
Potpis
Banned - Not available
Re: Početnički problemi sa skriptom 01.01.2005. u 11:45 · pre 265 meseci #5
Citat:
vbraca: Ovde ti fali razmak između SET i ostatka INSERT-a a koliko vidim ti ovaj SQL kod nikad i ne izvršiš. Znači fali ti još i linija sa sledećim kodom:

mysql_query($dodaj_sms);

Kakav razmak?
Moram li ja ako napisem:
Code:
$dodaj_sms = mysql_query("INSERT INTO mk_sms_poruke SET" . 
        "ime_nick='$ime_nick'," . 
        "email='$email'," . 
        "sms_poruka='$sms_poruka'," . 
        "datum=CURDATE()");    

staviti mysql_query ($dodaj_sms);

Koja je razlika između empty($_POST['ime_nick']) i !isset($ime_nick).

Sada kad sam stavio !isset($ime_nick) uopšte mi ne printa poruku ako je to polje prazno.
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 01.01.2005. u 12:12 · pre 265 meseci #6
Izvinjavam se malo sam podrešio. Šta čini samo par sati spavanja.
Funkcija isset se koristi sa prveru da li je promenljiva definisana. Ukoliko je definisana vraća true a ukoliko nije false.
Funkcija empty proverava da li je promenljiva definisana i da li ima neku vrednost, i ona isto vraća true ili false.
Oznaka ! je znak za negaciju.
A $_POST['promenljiva'] se koristi za pristup promenljivama koje su unete u obrascu.
Tako umesto onog koda koji sam ja dao za proveru da li su podaci uneti (ali prethodno dodaj onaj kod iznad) stavi ovo:
Code:

if (!$ime_nick)
{
echo "Morate unijeti Ime ili Nick !!!<\BR>";
exit;
}

if (!$email)
{
echo "Morate unijeti E - mail !!!<\BR>";
exit;
}

if (!$sms_poruka)
{
echo "Morate unijeti SMS Poruku !!!<\BR>";
exit;
}
Potpis
Banned - Not available
Re: Početnički problemi sa skriptom 01.01.2005. u 12:36 · pre 265 meseci #7
U vezi msql_query nne moraš ponovo dodavati mysql_query($dodaj _sms)
Možeš proveriti samo posle da li su uneti ti podaci sa mysql_affected_rows().
Code:

if ($dodaj_sms)
echo mysql_affected_rows();


Sada tek gledam html kod i vidim jednu grešku ne znam da li si je primetio:
<textarea name="sms_pruka" cols="50" rows="6" class="input" id="sms_pruka">

Promeni sms_pruka u sms_poruka u name atributu.
Takođe nije <\br> vec je <br />
Potpis
Banned - Not available
Re: Početnički problemi sa skriptom 01.01.2005. u 17:40 · pre 265 meseci #9
Sada sam sve sredio sa upisivanjem u bazu i sve radi kako treba ali mi ne radi printanje iz baze: Ovo je kod:
Code:
<?
# DB Host, DB Name i DB Password
include ("config.php");

# Konektuje se na DB
include ("connect.php");

# Poziva podatke iz baze
$sms_poruka_db = mysql_query("SELECT * FROM `mk_sms_poruke`");

# Provjerava jesu li podatci selektovani iz DB
if (!$sms_poruka_db)
    {
        echo "Podatci nisu selektovani iz baze !!!<BR>";
    }
else
{}

# Printa podatke iz DB
echo $sms_poruka_db;

# Diskonektuje se sa baze
$close_db = mysql_close ($veza);
?>
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 01.01.2005. u 18:56 · pre 265 meseci #10
Umesto:
Code:

echo $sms_poruka_db;

stavi:
Code:

while ($row = mysql_fetch_array($sms_poruka_db, MYSQL_ASSOC))
{
echo 'Ime: '.$row["ime_nick"].'<br />';
echo 'Datum: '.$row["datum"].'<br />';
echo 'Email: '.$row["email"].'<br />';
echo 'SMS poruka: '.$row["sms_poruka"].'<br /><hr />';
}
Potpis
Banned - Not available
Re: Početnički problemi sa skriptom 01.01.2005. u 19:58 · pre 265 meseci #11
Hvala. Sve radi kako treba. Evo još jedno pitanje. Znam da sam naporan ali sta ja mogu kad ne znam. Nikako ne mogu da nađem turtorijal gdje je ovo objašnjeno. Mogu li ja ovo sada printati u nekoj tabeli. Znaci da u jednoj čeliji prikažem $ime_nick, u drugoj $email... i da sve to bude definisano nekim css stilom?
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 02.01.2005. u 16:27 · pre 265 meseci #13
Evo još jedno pitanje i neću više. U Bazu sam upisao datum sa funkcijom CURDAT() i kada printam iz baze printa u formatu godina-mjesec-dan a ja bih htjeo da mi printa dan.mjesec.godina.
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 03.01.2005. u 21:17 · pre 265 meseci #15
Probaj da uradiš ovo na sledeći način:
$vreme=time();
time dobijaš trenutni datum i vreme. Zatim pomoću SQL upita ubaciš ovu promenjivu u bazu:
$sql= "insert into ....values (... $vreme...)";
izvršiš upit funkcijom
mysql_query($sql);
Dobićeš upisanu vrednost u određenu ćeliju koja označava datum. Vrednost će biti otprilike ovog oblika kada je gledaš u bazi 1104785547 (prevedeno u razumljiv format 03.01.2005. 21:52). Nakon toga jednostavnim pozivom funkcije date ispišeš podatke. Znači:
date('d.m.Y. H:i', $row['datum']);
Nadam se da je bilo razumljivo. Ako nije slobodno pitaj!
Re: Početnički problemi sa skriptom 04.01.2005. u 10:47 · pre 265 meseci #16
Riješio sam taj problem. Stavio sam da je $datum = date("d.m.Y."); i onda samo $datum upisem u bazu. Ipak hvala.
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 05.01.2005. u 17:51 · pre 265 meseci #17
Sto mi ovo ne radi:
Code:
$promijeni_sms = mysql_query ("UPDATE `mk_sms_poruke` SET 
                                `ime_nick`=$ime_nick_u , 
                                `email`=$email_u , 
                                `sms_poruka`=$sms_poruka_u 
                                `id_kategorije`=$id_kategorije_u WHERE `ID`=$id");
Potpis
May the force be with you...
Re: Početnički problemi sa skriptom 05.01.2005. u 18:53 · pre 265 meseci #18
Kod imena promenjivih stavi apostrofe, a kod imena kolona ih skloni. To bi trebalo da izgleda ovako:
$promijeni_sms = mysql_query ("UPDATE mk_sms_poruke SET
ime_nick='$ime_nick_u' ,
email='$email_u' ,
sms_poruka='$sms_poruka_u'
id_kategorije='$id_kategorije_u' WHERE ID='$id' ");


Kada ne staviš apostrofe, on smatra da navodiš imena kolona.
Javi da li radi!
Re: Početnički problemi sa skriptom 06.01.2005. u 17:00 · pre 265 meseci #20
Moze te li mi reci zasto ovo ne radi:
Code:

<form name="form1" method="post" action="<? echo ($PHP_SELF); ?>">
  <p>
    <input name="polje" type="text" id="polje">
  </p>
  <p>
    <input name="sub" type="submit" id="sub" value="Posalji">
  </p>
</form>
<?
if ("SUBMIT" == $sub) 
{ 
echo $polje;
} 
?>

dok ovo radi:
Code:
<FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD=POST> 
<P>
  <input name="victext" type="text" id="victext">
  <BR> 
  <BR> 
<INPUT TYPE=SUBMIT NAME="posalji" VALUE="SUBMIT"> 
</FORM> 
<?php 
if ("SUBMIT" == $posalji) 
{ 
echo $victext;
} 
Potpis
May the force be with you...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme