Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu

[es] :: PHP :: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu

[ Pregleda: 1686 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu07.07.2008. u 18:18 - pre 163 meseci
Potrebna mi je pomoc u sledecem kodu, program mi stalno izbacuje "Greska pri konekciji na serveru" zasto:


Code:
<?php
    /*    File:                registracija_obrazac.php
      *    Objasnjenje: Prikazuje formu za  registrovanje clana.
      */
?>
        <form action="prijava.php" method="POST">
        
<?php
        if (isset($message_new))
        {
            echo "<tr><td>$message_new<br></td></tr>";
        }
?>
    <table border="0">
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
    <tr><td>Nadimak:</td>
        <td><input type="text" name="nadimak" value="<?php echo @$nadimak ?>" size="24" maxlength="20"></td>
    </tr>
    <hr>
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
    <tr>
        <td>&Scaron;ifra:</td>
        <td><input type="password" name="sifra" value="<?php echo @$sifra ?>" size="15" maxlength="20"></td>
    </tr>
    <tr>
        <td>Unesi ponovo &scaron;ifru:</td>
        <td><input type="password" name="sifra2" value="<?php echo @$sifra2 ?>" size="15" maxlength="20"></td>
    </tr>
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
    <tr><td>Ime:</td>
        <td><input type="text" name="ime" value="<?php echo @$ime ?>" size="40" maxlength="30"></td>
    </tr>
    <tr><td>Prezime:</td>
        <td><input type="text" name="prezime" value="<?php echo @$prezime ?>" size="40" maxlength="30"></td>
    </tr>
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>

    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
    <tr><td>Grad:</td>
        <td><input type="text" name="grad" value="<?php echo @$grad ?>" size="40" maxlength="30"></td>
    </tr>
    <tr>
        <td>Dr&#382;ava:</td>
        <td><input type="text" name="drzava" value="<?php echo @$drzava ?>" size="40" maxlength="30"></td>
    </tr>
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
    <tr><td>Email:</td>
        <td><input type="text" name="email" value="<?php echo @$email ?>" size="40" maxlength="30"></td>
    </tr>
    <tr><td>----------------------</td>
        <td>----------------------------------------</td>
    </tr>
        <input type="hidden" name="do" value="registracija">
    <tr><td>&nbsp;</td>
        <td><input type="submit" value="registruj se"></td>
    </tr>
    </table>
    <hr>
    </form>

Code:

<?php
/*    Program:        prijava.php
  *    Objašnjenje:    Program obezbedjuje prijavu vec registrovanog clana
  *                i ukoliko clan nije registrovan njegovu registraciju.
  */
session_start();
include("ctod.php");
switch (@$_POST['do'])
    {
    case "prijava":
        $cxn = mysqli_connect($host, $user, $password, $dbname)
                or die ("Greška pri konekciji sa serverom");
        $sql = "SELECT Nadimak FROM member WHERE Nadimak='$_POST[fnadimak]'";
        $result = mysqli_query($cxn,$sql)
                or die ("Greška pri konekciji sa serverom!");
        $num = mysqli_num_rows($result);
        if ($num>0) //ukoliko je nadimak nadjen u bazi
            {
                $sql = "SELECT Nadimak FROM member WHERE Nadimak='$Post[fnadimak]' AND šifra=md5('$_POST[fsifra]')";
                $result2 = mysql_query($cxn,$sql)
                        or die ("Greška pri konekciji sa serverom!!");
                $num2 = mysql_num_rows($result2);
                    if ($num2>0) // šifra je potvrdjena
                        {
                            $_SESSION['auth']="yes";
                            $nadimak=$_POST['fnadimak'];
                            $_SESSION['logname']=$nadimak;
                            $danas=date("Y-m-d h:i:s");
                            $sql="INSERT INTO login (Nadimak,vremePrijave) VALUES ('$nadimak','$danas')";
                            $result=mysql_query($cxn,$sql)
                                    or die ("Greška pri konekciji sa serverom!!!");
                                    header("Location: potvrda_prijave.php");
                        }
                        else //šifra nije potvrdjena
                        {
                            $message="Nadimak '$_POST[fnadimak]' postoji, ali je šifra pogrešna!<br>Molimo vas pokušajte ponovo.<br>";
                            include("files/prijava_obrazac.php");
                        }
            }
            elseif ($num==0)//Nadimak nije pronadjen
                {
                    $message="Nadimak koji ste uneli ne postoji u nasoj bazi!<br>Molimo vas poku&scaron;ajte ponovo.<br/>";
                    include("files/prijava_obrazac.php");
                }
            
    break;
    
    case "registracija";
        /*provera praznih upita*/
        foreach($_POST as $field => $value)
        {
                if ($value=="")
                {
                    $blanks[] = $field;
                }
        }
        if(isset($blanks))
        {
            $message_new="Molimo vas popunite slede&#263;a prazna polja:<br>";
            foreach($blanks as $value)
            {
                $message_new.="$value, ";
            }
            
            extract($_POST);
            include("registracija_obrazac.php");
            exit();
        }
            foreach($_POST as $field => $value)
            {
                if(!empty($value))
                {
                if($field!="email" and $field!="ime")
                    {
                        if (!eregi("^[A-Za-z]{1,50}$",$value))
                        {
                            $errors[]="$value is not a valid name.";
                        }
                    }
                    if(eregi("email",$field))
                    {
                        if(!eregi("^[email protected]+\\..+$",$value))
                        {
                            $errors[]="$value nije validna email adresa.";
                        }
                    }
                }
            }
        /*Potvrda validnosti podataka*/
        if(@is_array($errors))
        {
            $message_new="";
            foreach($errors as $value)
                {
                    $message_new.=$value."Molimo vas pokusajte ponovo<br>";
                }
            extract($_POST);
            include("registracija_obrazac.php");
            exit();
        }

        /* ocisti podatke*/
        $cxn=mysqli_connect($host,$user,$password,$dbname);
        
        foreach($_POST as $field => $value)
        {
            if($field!="Button" and $field!="do")
            {
                if($field=="sifra")
                    {
                        $sifra=strip_tags(trim($value));
                    }
                    else
                    {
                        $fields[]=$field;
                        $value=strip_tags(trim($value));
                        $values[]=mysqli_real_escape_string($cxn,$value);
                        $$field=$value;
                    }
            }
        }
        /*provera da li nadimak vec postoji u bazi*/
        $sql="SELECT nadimak FROM member WHERE nadimak='$nadimak'";
        $result=mysqli_query($cxn,$sql)
                or die("Greska pri konekciji sa bazom!!!!");
        $num=mysqli_num_rows($result);
        if ($num>0)
        {
            $message_new="Nadimak $nadimak vec postoji. Izaberi drugi.";
            include("registracija_obrazac.php");
            exit();
        }
        /*Dodaj clana  u bazi*/
        else
        {
                    $today=date("Y-m-d");
                    $fields_str=implode(",",$fields);
                    $values_str=implode('","',$values);
                    $fields_str.=",datumPrijave";
                    $values_str.='"'.",".'"'.$today;
                    $fields_str.=",sifra";
                    $values_str.='"'.","."md5"."('".$sifra."')";
                    $sql="INSERT INTO member ";
                    $sql.="(".$fields_str.")";
                    $sql.=" VALUES ";
                    $sql.="(".'"'.$values_str.")";
                    $result=mysqli_query($cxn,$sql)
                            or die("Greska pri konekciji na serveru");
                    $_SESSION['auth']="yes";
                    $_SESSION['logname']=$nadimak;
                    header("Location:novi_clan.php");
        }
        break;
    }
?>
                    
 
Odgovor na temu

feroc1ty

Član broj: 154894
Poruke: 90
79.101.179.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu07.07.2008. u 19:25 - pre 163 meseci
Vidi da li je u ctod.php upisane prave vrednosti promenjivih $host, $user, $password, $dbname
I skripta nije zasticena od sql inekcije sredi to
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu07.07.2008. u 20:03 - pre 163 meseci
upisane su prave vrednosti u ctod.php

sto se tice sql injection zar ovo nije dovoljno
Code:

            foreach($_POST as $field => $value)
            {
                if(!empty($value))
                {
                if($field!="email" and $field!="ime")
                    {
                        if (!eregi("^[A-Za-z]{1,50}$",$value))
                        {
                            $errors[]="$value is not a valid name.";
                        }
                    }
                    if(eregi("email",$field))
                    {
                        if(!eregi("^[email protected]+\\..+$",$value))
                        {
                            $errors[]="$value nije validna email adresa.";
                        }
                    }
                }
            }


[Ovu poruku je menjao amitkic dana 07.07.2008. u 21:18 GMT+1]
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu07.07.2008. u 23:26 - pre 163 meseci
Sintaxa za mysql_connect je:
Code:

mysql_connect  ([ string $server  [, string $username  [, string $password  [, bool $new_link  [, int $client_flags  ]]]]] )

A pretpostavljam da je isto i za mysqli_connect. A ti si napisao:

Code:

$cxn = mysqli_connect($host, $user, $password, $dbname)


Ovaj zadnji parametar $dbname (pretpostavljam ime baze), ne treba tu da stoji, vec bi kod ovako trebalo da izgleda:

Code:

$cxn = mysqli_connect($host, $user, $password);
mysqli_select_db($dbname);


Nadam se da ne gresim u vezi mysql i mysqli :-)

EDIT: Tek sad vidim da tebi za sve stoji: Greska pri povezivanju sa serverom! Odnosno:
Code:

$cxn = mysqli_connect($host, $user, $password, $dbname)
                or die ("Greška pri konekciji sa serverom");

....
....
....
 $result = mysqli_query($cxn,$sql)
                or die ("Greška pri konekciji sa serverom!");
...
....
...

 $result2 = mysql_query($cxn,$sql)
                        or die ("Greška pri konekciji sa serverom!!");


Care, izmeni malo poruke, posto verovatno ni sam ne znas u kom delu koda je greska ..... :-)

Pozdrav!
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 11:33 - pre 163 meseci
Razlika je na kraju poruke u "!" pogledaj malo bolje
, konekcija sa bazom je ok jer uspesno vrsi proveru da li nadimak vec postoji u bazi, ali nece da doda novog korisnika u bazu.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 11:52 - pre 163 meseci
Mozda ti nisi malo bolje gledao, jer si ti u prvoj poruci sam napisao koja je greska:

Citat:
amitkic: Potrebna mi je pomoc u sledecem kodu, program mi stalno izbacuje "Greska pri konekciji na serveru" ...

To znaci da je prva poruka prikazana, te da nije konekcija na bazu uspostavljena, ili gresim??
Kod ti extra "pregledan" ako moras da brojis koliko uzvicnika ima da bi ustvari znao koja je greska.
Dalje, samo si napisao da ti prikazuje gresku (ocigledno si i to pogresno napisao), nista nisi spominjao gde je problem niti bilo sta vise o tvom problemu, tako da nemoj ocekivati da ce sad neko da uzme tvoj kod, da ga sazvace kod sebe pa ce da samo postuje sve i da to bezgresno radi. Ljudi na dobrovoljnoj bazi odvajaju svoje vreme ovde, niko nema obavezu prema nikome. Takodje niko ne voli da cita 100+ linija necijeg koda uz obrazlozenje da taj kod ne radi. Kad sve to uzmes u obzir dok pises pitanje, dobices odgovor u prvom odgovoru, ili ces cak i sam uvideti gde je problem bio i tako sebi ustedeti doosta vremena

Procitaj lepo sve clanove pravilnika pre nego sto krenes da postujes, brze ces dobijati odgovore na pitanja
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 14:34 - pre 163 meseci
Problem je ovaj deo koda
Code:

        /*provera da li nadimak vec postoji u bazi*/
        $sql="SELECT nadimak FROM member WHERE nadimak='$nadimak'";
        $result=mysqli_query($cxn,$sql)
                or die("Greska pri konekciji sa bazom!!!!");
        $num=mysqli_num_rows($result);
        if ($num>0)
        {
            $message_new="Nadimak $nadimak vec postoji. Izaberi drugi.";
            include("registracija_obrazac.php");
            exit();
        }
        /*Dodaj clana  u bazi*/
        else
        {
                    $today=date("Y-m-d");
                    $fields_str=implode(",",$fields);
                    $values_str=implode('","',$values);
                    $fields_str.=",datumPrijave";
                    $values_str.='"'.",".'"'.$today;
                    $fields_str.=",sifra";
                    $values_str.='"'.","."md5"."('".$sifra."')";
                    $sql="INSERT INTO member ";
                    $sql.="(".$fields_str.")";
                    $sql.=" VALUES ";
                    $sql.="(".'"'.$values_str.")";
                    $result=mysqli_query($cxn,$sql)
                            or die("Greska pri konekciji na serveru");    <-------------------------------------------------------------
                    $_SESSION['auth']="yes";
                    $_SESSION['logname']=$nadimak;
                    header("Location:novi_clan.php");
        }

kod prolazi deo provere da li nadimak vec postoji ali ne i else jer tada izbacuje poruku Greska pri konekciji na serveru, koju sam vam oznacio u kodu iznad.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4385
77.46.242.*

Sajt: https://avramovic.info


+45 Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 16:29 - pre 163 meseci
Umesto $result=mysqli_query($cxn,$sql)
stavi $result=mysqli_query($sql,$cxn)
...izgleda da si pomešao redosled argumenata kod poziva mysqli_query funkcije

Takođe, lepo je koristiti mysqli_error() funkciju kod prikaza greške ako mysqli_query ili neka druga mysqli_ funkcija vrati FALSE - obično ti odmah napiše gde grešiš.

[Ovu poruku je menjao Nemanja Avramović dana 08.07.2008. u 21:39 GMT+1]
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 19:44 - pre 163 meseci
Hvala svima na trudu da mi pomognete, problem je resen uz pomoc mysql_error(), a problem je totalno glup da ne mogu da verujem sta sam predvideo, code je u redu ali stvar je u tome sto u bazu pokusava da mi ubaci sifra2, a to polje ne postoji u bazi :-), problem je resen jednostavnom izmenom dela koda
Code:


if($field!="Button" and $field!="do")



u kod

Code:


if($field!="Button" and $field!="do" and $field!="sifra2")



Izvinjava se svima jer je greska bila do baze a ne do koda.

Jos samo ako hoce neko da da savet oko pobosljanja sigurnosti i bezbednosti.

Jos jednom hvala svima na trudu da mi pomognete, jer problem je bio u mojoj pameti, a ne u kodu :)
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu08.07.2008. u 19:52 - pre 163 meseci
Hvala svima na trudu da mi pomognete, problem je resen uz pomoc mysql_error(), a problem je totalno glup da ne mogu da verujem sta sam predvideo, code je u redu ali stvar je u tome sto mi u bazu pokusava da mi ubaci sifra2, a to polje ne postoji u bazi ":-)" , problem je resen jednostavnom izmenom dela koda
Code:


if($field!="Button" and $field!="do")



u kod

Code:


if($field!="Button" and $field!="do" and $field!="sifra2")



Izvinjava se svima jer je greska bila do baze a ne do koda.

Jos samo ako hoce neko da da savet oko pobosljanja sigurnosti i bezbednosti.

Jos jednom hvala svima na trudu da mi pomognete, jer problem je bio u mojoj pameti, a ne u kodu :)
 
Odgovor na temu

[es] :: PHP :: Potrebna mi je pomoc za scriptu za registrovanje korisnika na sajtu

[ Pregleda: 1686 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.