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

Pomoc oko redirekcije i login skripte

[es] :: PHP :: Pomoc oko redirekcije i login skripte

Strane: 1 2

[ Pregleda: 4720 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Pomoc oko redirekcije i login skripte30.01.2009. u 23:22 - pre 184 meseci
Cao svima! Vidim da ima dosta tema u vezi sa redirekcijom i login skriptama, ali nigde nisam nasao resenje za moj problem...
Imam zadatak da napravim web aplikaciju koja implementira AJAX i PHP. Posto sam pocetnik u PHP-u (mada ne toliki kao pre 2 nedelje ) treba mi mala pomoc...

1. Login radim preko sesija, a ukoliko korisnik zeli (remember me) moze i da se postavi kuki koji pamti user i pass. To sve radi ok. Medjutim kad hocu da se posle uspesnog logina redirektujem na stranicu sa koje sam pristupio loginu (tj. prethodnu) prikazuje mi ispis "Vec ste ulogovani, user. Odjavite se..." Za login na prethodnu sam koristio HTTP_REFERER. Kad stavim da se redirektuje explicitno na bilo koju stranicu (na pr. header ( location: "index.html"); sve radi super... Kako da resim ovaj problem?

2. Ovo je sitniji problem, ali mislim da cu izgubiti puno vremena ako trazim po netu, pa... Naime, ako je korisnik prethodno cekirao remember me (tj. postavio kuki za user i pass), hocu da mi to automatski ispise u odgovarajuca polja na formi. To sam uradio metodom echo() i to radi savrseno. Medjutim ako korisnik nije napravio kuki (tj. nije hteo da ga sistem zapamti) onda mi u polju user vraca \ a u pass verovatno isto \ ali se ne vidi zbog *... Zasto to i kako da ispravim da mi vrati blanko polja? Pretpostavljam da to ima veze sa stripslashes()??

Molim da mi neko kaze kako da ispravim kod jer sam se malo umorio od pretrazivanja Hvala svima unapred.

login.php
Code:

<?php session_start(); ?>
<html>
<head>
<title>Login</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
</head>
<body>

<?php
include "connection.php";

if (!isset($_COOKIE['ck_user']) || !isset($_COOKIE['ck_pass'])){
    $user = $_POST['username'];
    $password = $_POST['password'];
}else{
    $user = $_COOKIE['ck_user'];
    $password = $_COOKIE['ck_pass'];
}

$upit = "SELECT * FROM users WHERE username = '$user' AND password = '$password'";
 
if (!isset($_SESSION['user'])){
?>
    <form action="login.php" method="post" name="login">
      <table width="0" border="0" align="center" cellpadding="4" cellspacing="4">
        <tr>
          <td colspan="2"><h2>Login</h2>
          <hr></td>
        </tr>
        <tr>
          <td width="113">Korisni&#269;ko ime:</td>
          <td width="270"><input name="username" type="text" class="polje" id="username" value=<?php echo($user); ?> /></td>
        </tr>
        <tr>
          <td>Lozinka:</td>
          <td><input name="password" type="password" class="polje" id="password" value=<?php echo($password); ?> /></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><p>
              <input name="remember" type="checkbox" id="remember" value="da">
            Zapamti me <span class="style1">(kola&#269;i&#263;i moraju biti omogu&#263;eni) </span></p>
          </td>
        </tr>
        <tr>
          <td><div align="center">
          </div></td>
        <td><p>
          <input type="submit" name="submit" class="dugme" id="submit" value="Prijavi me" />
        </p>
          </td>
        </tr>
        <tr>
          <td colspan="2"><hr>        <p>Niste registrovani? Registrujte se <a href="register.php">ovde</a>. </p>
          </td>
        </tr>
      </table>
    </form>
    <?php
    if (isset($_POST['submit'])){
        $result = mysql_query($upit);
        if ($result AND mysql_num_rows($result)==1){
            header("location:" .$_SERVER['HTTP_REFERER']);
        
            $red = mysql_fetch_array($result);
            
            $_SESSION['user']=$user;
            $_SESSION['pass']=$password;
                        
            if ($_POST[remember] == "da")
            {
                setcookie("ck_user", $user, time()+120);
                setcookie("ck_pass", $password, time()+120);
            }
        
        }else{
            die("Uneli ste pogre&scaron;no korisni&#269;ko ime ili lozinku.");
        }
    }
}
else{
echo ('Ve&#263; ste ulogovani, ' . $_SESSION['user'] . '.');
?>
    <a href="logout.php">Odjavite se...</a>
<?php
}

mysql_close($db);
?>

</body>
</html>
 
Odgovor na temu

Jezdimir Lončar
Aka Blazeme
PHP/jQuery Dev, BildStudio
Crna Gora / Pljevlja

Član broj: 74833
Poruke: 674
77.222.0.*

Jabber: jezdonet@gmail.com


+4 Profil

icon Re: Pomoc oko redirekcije i login skripte31.01.2009. u 15:27 - pre 184 meseci
PHP tebi kao HTTP_REFERER vraca login.php, a sesija ti je vec postavljena, tako da ti javlja tu gresku.
Ako hoces da te vrati na str. index.php, na primjer, onda moras taj parametar da proslijedis skripti preko URLa. Recimo, na index.php da ti stoji:
<a href="login.php?str=index.php">Login</a>
Pa onda da vidis sta ti je $_GET["str"] u login.php, vrsis provjeru, i kad se korisnik loguje ti ga posaljes na tu stranicu.
Mislim da je u ovome problem, ali nisam siguran jer nisam imao vremena detaljno da pogledam kod.

Za taj drugi problem, jednostavno provjeri jel' cookie postavljen.
Code:
if(isset($_COOKIE["ck_user"])) {  echo $_COOKIE["ck_user"]; } else { echo ""; }

“I never think of the future - it comes soon enough.” - Albert Anštajn (Albert Einstein)
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte31.01.2009. u 19:38 - pre 184 meseci
1. Ok, hvala na odgovoru. To mi radi kako si napisao. Jedino sto sam ja hteo da me dinamicki vraca na stranu na kojoj sam prethodno bio... Tj da me ne vraca na jednu te istu stranu uvek, vec nekako da mu prosledim naziv svake strane posebno. Cini mi se da bi se te moglo uraditi preko f-ja $_SERVER['PHP_SELF'] i $_SERVER['SERVER_NAME'] koje bi se ubacile kao promenljive u adresu linka tj. u str... Probao sam nesto ali ne ide :-(

2. Ovo drugo resenje sam i ja probao ali ne ide. Opet mi vrati '\' i u user i u pass. A pazi sad ovo, ako umesto praznog stringa ukucam neki drugi, vratice mi taj string onako kako sam ga uneo bez '\' ?!

Code:
<?php if(isset($_COOKIE["ck_user"])) {  echo $_COOKIE["ck_user"]; } else { echo "blabla"; } ?>


znaci u polje user mi vraca 'blabla'. Znaci da kod ipak radi, ali kako da se oslobodim '\' ?

3. I jos jedno pitanje... Posto pri izradi sajta koristim template (dreamweaver), da li mogu da stavim PHP kod na templejt a da se on izvrsava na svakoj stranici? Hocu da ubacim npr. kod za login koji ce se videti na svakoj strani ako user nije ulogovan, a ako jeste onda da mu ispise poruku (Dobro dosao, user.) i ponudi mu link za odjavu...
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Pomoc oko redirekcije i login skripte01.02.2009. u 00:00 - pre 184 meseci
Posto radis POST na login.php, kada se uspesno logujes $SERVER['HTTP_REFERER'] je sada login.php pa te opet vrati na login.php ali sada sa postavljenom sesijom.

jedno od resenja bi bilo da pamtis stranicu sa koje se stiglo na login.php


Code:

<?php session_start(); ?>
<html>
 
...

<?php

$referer = parse_url($_SERVER['HTTP_REFERER']);

if ($referer['path'] != $_SERVER['PHP_SELF'])
{
    $_SESSION['referer'] = $referer['path'];
}

include "connection.php";
...
...
...
    <?php
    if (isset($_POST['submit'])){
        $result = mysql_query($upit);
        if ($result AND mysql_num_rows($result)==1){
            header("location:" . $_SESSION['referer']);
        
...
...



2. stavi navodnike u html

Code:
  value="<?php echo $user; ?>"






[Ovu poruku je menjao namesnik dana 01.02.2009. u 01:18 GMT+1]
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte01.02.2009. u 14:14 - pre 184 meseci
@ namesnik
Tnx, sve radi! Za 2. sam znao da je neka sitnica u pitanju a ja lupam glavu ceo dan...

Imam novu misteriju za resiti Probao sam da na template strani postavim php skriptu koja ce, u zavisnosti od toga da li je korisnik prijavljen ili ne, ispisivati poruku Dobro dosao, user. LOGOUT odnosno Niste ulogovani. LOGIN (sa odgovarajucim linkovima ka login.php i logout.php naravno). Ja sam to uradio na sledeci nacin, a s obzirom da sam pocetnik negde sam pogresio...

Code:

 ......        </td>
        <td width="370" valign="middle"><div align="right"><p>
        </p></p>
    
<?php

if(!isset($_SESSION['user']) || !isset($_SESSION['pass']))
{
    echo "Niste ulogovani.";
    ?>
    <a href="login.php">LOGIN</a>
    <?php
} else{
    echo "Dobro dosli, " . $_SESSION['user'];
    ?>
    <a href="logout.php">LOGOUT</a>
    <?php
}
?>

        
        </p>
          </div></td>
        </tr>
    </table>      
      <div align="center"></div>
    <!-- TemplateBeginEditable name="MainEddReg" --><!-- TemplateEndEditable --></td> ......
 


Ispisuje mi samo LOGIN LOGOUT i to u isto vreme, sto znaci da uopste ni ne ulazi u petlju. Verovatno ima neke veze sa interpretiranjem php koda u templejtu...
Ako neko ima ideju, sad je dobro dosla
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.adsl-4.sezampro.yu.



Profil

icon Re: Pomoc oko redirekcije i login skripte01.02.2009. u 15:45 - pre 184 meseci
ne izvrsava ti se php zbog toga ti ispisuje oba linka, prebaci taj template na server pa ga pogledaj, ne moze samo open with browser.

 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte01.02.2009. u 23:31 - pre 184 meseci
@namesnik
I ja sam skontao da se ne izvrsava, cak i dok ga kucam ne boji mi kod (pocetak, promenljive, metode...) vec sve ispisuje istom bojom, pa sam i u toku pisanja pretpostavio da nece raditi...
Sajt radim u lokalu, na Apache web serveru (wamp), i fajlove menjam direkno u root-u servera, tj u C:\wamp\www\moj_sajt, tako da svaki put kad menjam templejt, ustvari radim ono sto si mi predlozio, zar ne? Ako sam dobro skapirao... Jel imas jos neku ideju?
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.adsl-4.sezampro.yu.



Profil

icon Re: Pomoc oko redirekcije i login skripte01.02.2009. u 23:43 - pre 184 meseci
jaoo znam, mora da bude .php ekstenzija fajla
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte02.02.2009. u 13:09 - pre 184 meseci
Pa kako onda to da izvedem?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.78.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Pomoc oko redirekcije i login skripte02.02.2009. u 13:16 - pre 184 meseci
Sta kako da izvedes, da renamujes fajlove u .php?
Mozes da podesis server da parsira .html fajlove (sad je pitanje dal ce ti host to dozvoliti)
ili mozes html fajlove renamovati u .php
Iskreno, nikad prakticno nisam videeo da neko programira u php-u sa .html extenzijom.
A mozda mozes taj deo koji ti je potreban ubaciti u iframe ili ajaxom ubaciti sadrzaj samo tog dela u html
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte02.02.2009. u 13:41 - pre 184 meseci
Citat:
kebba@ namesnik
Imam novu misteriju za resiti :-) Probao sam da na template strani postavim php skriptu koja ce, u zavisnosti od toga da li je korisnik prijavljen ili ne, ispisivati poruku Dobro dosao, user. LOGOUT odnosno Niste ulogovani. LOGIN (sa odgovarajucim linkovima ka login.php i logout.php naravno). Ja sam to uradio na sledeci nacin, a s obzirom da sam pocetnik negde sam pogresio...


Eto to sam hteo da uradim, svejdeno kako, samo da proradi... Kao sto rekoh sajt mi radi u lokalhostu. Fajl na koji sam hteo da postavim php kod je template.dwt (dakle nije .html u pitanju), klasican template u DW. Kao sto je i namesnik rekao, mora da bude .php extenzija fajla da bi parsirao (sto sam ja skroz bio zaboravio).

Mogao bih da dodam jos jedan editable region u tamplate i da kod uglavim na svaku stranu, ali to mi je bezveze. Sta da imam par desetina strana... Ova ideja sa AJAX-om mi deluje ok, ali bih morao to da istrazim jos... Sta je iFrame?

Dajte jos neke predloge...
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Pomoc oko redirekcije i login skripte02.02.2009. u 19:34 - pre 184 meseci
http://www.w3schools.com/TAGS/tag_iframe.asp

moj generalni predlog je: koristi smarty.
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte20.02.2009. u 20:07 - pre 183 meseci
E da malo digem temu iz mrtvih... Nije me bilo dugo, ali to zato sto sam bio zaokupljen drugim stvarima. Dobra vest je da mi je aplikacija proradila kako sam hteo i dobio sam 10-ku stoga se zahvaljujem svima koji su ucestvovali u resavanju problema.
Sada bih hteo da je jos malo prosirim, pa imam jedno pitanje za strucnjake: Da li kroz URL (preko GET metode) moze da se posalje instanca objekta?
Objasnjenje: hteo bih da na jednoj strani izvrsim upit i napunim objekat, pa da ga preko URL-a posaljem drugoj strani i da tamo koristim podatke.
Pozz svima
 
Odgovor na temu

stough_ser
stojadinovic milan

Član broj: 57571
Poruke: 84
*.ptt.rs.



Profil

icon Re: Pomoc oko redirekcije i login skripte20.02.2009. u 20:33 - pre 183 meseci
hmmm
ne znam dal sam te razumeo

ali

preko get, post ili pak SESSION

mozesh da poshaljesh atribute

pa da tamo na osnovu njih kreirash identichan objekat

nije mi poznato da moze ceo objekat da se prosledi...
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-3.sezampro.yu.



+33 Profil

icon Re: Pomoc oko redirekcije i login skripte20.02.2009. u 20:56 - pre 183 meseci
Pitam se kako li bi izgledao taj url kad bi se u njemu nalazila instanca nekog objekta... :) Ne verujem da je tako neshto moguce.

Mada kroz sesiju sigurno mozhe da prodje. Probaj...
 
Odgovor na temu

stough_ser
stojadinovic milan

Član broj: 57571
Poruke: 84
*.ptt.rs.



Profil

icon Re: Pomoc oko redirekcije i login skripte20.02.2009. u 21:34 - pre 183 meseci
pa za sesiju se i ja razmishljam

nikad nisam imao potrebu za ovako nechim

tako da nisam probao

a sad me mrzi da probam

:) kolega, preko get i post ne moze garant, probaj preko sesije.
ako uspe, javi B-)
 
Odgovor na temu

stevs986
Nikolic Sladjan
Senior Software Developer
Alterset d.o.o
Beograd

Član broj: 121154
Poruke: 140
*.adsl-1.sezampro.yu.



+4 Profil

icon Re: Pomoc oko redirekcije i login skripte21.02.2009. u 10:55 - pre 183 meseci
Objekat 100% mozes da prenosis preko sesije, radio sam na taj nacin i provereno radi...
 
Odgovor na temu

stough_ser
stojadinovic milan

Član broj: 57571
Poruke: 84
*.ptt.rs.



Profil

icon Re: Pomoc oko redirekcije i login skripte21.02.2009. u 11:09 - pre 183 meseci
da, probao sam.

moze.

nisam imo potrebu za tim u dosadashnjim projektima

al imacu u vidu B-)
 
Odgovor na temu

kebba
Igor Branković
SQL Server administrator & .NET
Developer
Open C Team doo
Pančevo

Član broj: 132129
Poruke: 27
80.93.248.*



Profil

icon Re: Pomoc oko redirekcije i login skripte22.02.2009. u 14:11 - pre 183 meseci
Provalio sam kako... Objekat treba da se serijalizuje, pa da se smesti u neku promenljivu u sesiji. Posle se vadi iz session promenljive i reverzibilnim postupkom dobija isti objekat...

Hm ali sad mi se pojavio drugi problem, ne vezan za klase... Na jednoj stranici dinamicki ispisujem podatke iz baze u okviru tabele. U poslednjoj koloni sam stavio akcije, tipa Preslusaj, Promeni, Obrisi... Problem se javlja kad hocu da ogranicim akcije u zavisnosti od nivoa pristupa korisnika. Na primer da samo administrator moze da menja i brise sadrzaj, registrovani da preslusa... Tabela se generise u while petlji, i cim pokusam da ubacim neki if iskaz u okviru nje automatski mi ispisuje samo prvi rekord iz tabele. Nemam ideju u cemu je problem, mozda od sume ne vidim drvece, pa ako neko moze da mi otvori oci Evo koda:

Code:

//forma za pretragu
        ?>
        </p>
            <table width="538" border="1" cellpadding="5" cellspacing="2" style="text-align:center ">
            <tr>
            <td width="137"><div align="left"><b>Pesma</b></div></td>
            <td width="118"><div align="left"><strong>Izvodjac</strong></div></td>
            <td width="84"><b>Zanr</b></td>
            <td width="139" colspan=2 align=center><strong>Opcije</strong></td>
            </tr>
            <?php
            
        //ispisivanje rezultata u tabeli
        while($red = mysql_fetch_array($q))
        {
            ?>
            <tr>
            <td class="text"><div align="left" class="style2"><span class="style5"><?php echo $red["title"]?></span></div></td>
            <td class="text"><div align="left" class="style2"><span class="style5"><?php echo $red["artist"]?></span></div></td>
            <td class="text"><span class="style5 style2"><?php echo $red["genre"]?></span></td>
            <td>
            <?php
            //prilikom stampanja svakog reda iz tabele na kraju dodaj opciju za brisanje
            //poziva se isti fajl u kojem je skript, ali sa parametrima action i idpesme
            if(isset($_SESSION['user']) && isset($_SESSION['level'])){
                $song->id = $red["id"];
                $q = $song->select();
                $row = mysql_fetch_array($q);
                $putanja = $row['file'];
                echo "<a href='$putanja'><font color='#393939';>[Preslusaj]</font></a>";
                            
                if($_SESSION['level']==1){
                    echo "<a href=administration.php?action=obrisi&RbPesme=" . $red["id"] . "><font color='#393939';>[Obrisi]</font></a>";
                    echo "<a href=administration.php?action=izmeni&RbPesme=" . $red["id"] . "><font color='#393939';>[Izmeni]</font></a>";
                }
                
            }else{
                echo "<a><font color='#393939';>...</font></a>";
            }
            
            echo "</td>" . "</tr>";
            ?>
            <?php
        }
        ?>
        </table>
        <?php
    }


Objasnjenje: objekat $song je klase song koja ima metode za pretragu baze, akcije Obrisi i Izmeni su linkovi koji preko URL-a biraju akciju preko switcha iz tekuceg fajla (koji je implementiran u istom fajlu gde i tabela, ali nisam postavio kod jer je ranije radio, i mislim da je problem ovde negde). U sesiji se cuvaju podaci o korisniku user i level.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-3.sezampro.yu.



+33 Profil

icon Re: Pomoc oko redirekcije i login skripte22.02.2009. u 15:14 - pre 183 meseci
Chini mi se da je problem u tome shto ce ta promenljiva $q u prvom prolasku kroz petlju imati neku vrednost, a onda, ako se udje u taj prvi if, ti cesh njoj dodeliti neku drugu vrednost, ovde:
Code:

$q = $song->select();

I ona ce u sebi sadrzhati samo jedan red u rezultatu, poshto, ako sam dobro razumeo, ta funkcija select() ce vratiti samo jedan red na osnovu id-a pesme, pa ce se ta petlja vrteti josh samo jedan krug. Nazovi tu drugu promenljivu nekako drugachije, npr. $q1. :)

 
Odgovor na temu

[es] :: PHP :: Pomoc oko redirekcije i login skripte

Strane: 1 2

[ Pregleda: 4720 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

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