Kompiuteriai Svetainės kūrimas

HTML, PHP, CSS, JavaScript (svetainių kūrimas)

        
Vartotojo avataras

Sasha

Patyręs forumietis
 
Pranešimai: 723
Šakių raj.

 4,903.31 Lt

Standartinė » 2010 Bal 18, 21:17

Aciu dar kart :D Pirmiausia isbandysiu, o pto parasysiu ;)

--------------------------------------


Vartotojo avataras

Sasha

Patyręs forumietis
 
Pranešimai: 723
Šakių raj.

 4,903.31 Lt

Standartinė » 2010 Bal 18, 21:28

Man gavosi taip, o as tik nukopinau:

Kodas: Pasirinkti visus
Kalba: Puslapis:


Ir dar pats bandziau narsyt, ieskot, rasyt va kas isejo, man rodos klaidas pats matysi, nes as nesuprantu kas cia yra, placiau paskaityk ivairiuose klausimuose, ten tema sukuriau.

Kodas: Pasirinkti visus
<?php
$veiksmas1=@$_GET['veiksmas1'];
if($veiksmas1 == "1bandymas") {
echo "1Puslapis TEST";
} else {
echo "1Puslapis<br />";
echo "<a href='a.php?veiksmas1=1bandymas'>Uzeik1</a>";
}
?>
<br>
<?php
$veiksmas2=@$_GET['veiksmas2'];
if($veiksmas2 == "2bandymas") {
echo "2Puslapis TEST";
} else {
echo "2Puslapis<br />";
echo "<a href='a.php?veiksmas2=2bandymas'>Uzeik2</a>";
}
?>

mode118

Patyręs forumietis
 
Pranešimai: 848

 717.84 Lt

Standartinė » 2010 Bal 19, 19:12

Pirmiausia tu pamiršai perduoti skriptui kintamuosiuos (http://tavoadresas.lt/failas.php?page=1&lang=en).

Kiek supratau, tai skriptas turėtų būti toks:

Kodas: Pasirinkti visus
<?php
// Tą ką tu nori pararyt užtenka vieno kintamojo.
$veiksmas=$_GET['veiksmas']; // Paimam iš adreso kintamąjį "veiksmas"
if($veiksmas=="bandymas1"){ // Tikrinam ar $veiksmas yra lygu "bandymas1"
// Jei TRUE isvedam truputi informacijos ir idedam nuoroda i antra puslapi
echo "<h1>2 puslapis</h1>";
echo "<a href='a.php?veiksmas=bandymas2'>Eiti i kita (antra) puslapi</a>";
}elseif($veiksmas=="bandymas2"){ //Jei rezultatas FALSE tada tikrinam ar $veiksmas yra lygu "bandymas2"
//Jei TRUE Isvedam siek tiek informacijos bei nuoroda i pirma puslapi
echo "<h1>1 puslapis</h1>";
echo "<a href='a.php?veiksmas=bandymas1'>Eiti i kita (pirma) puslapi</a>";
}else{ //Visais kitais atvejais isvedam siek tiek informacijos bei nuorodas i abu puslapius
echo "<h1>404 nera tokio puslapio</h1>";
echo "Patikrinkite ar tikrai yra perduodamas kintamasis \"veiksmas\", taip pat patikrinkite ar nera klaidu<br>";
echo "<a href='a.php?veiksmas=bandymas1'>Eiti i PIRMA puslapi</a>";
echo "<a href='a.php?veiksmas=bandymas2'>Eiti i ANTRA puslapi</a>";
}
?>

Vartotojo avataras

THa KeinuX

Forumo gyventojas
 
Pranešimai: 1200
Sun-City

 0.00 Lt

Standartinė » 2010 Bal 19, 19:34

Got a problem:
Turiu pasidaręs šiokią tokią sistemą, ir reikia padaryti admin prisijungimo panelę. Viskas yra ok, yra sukurti rangai, tik vat nesuprantu kaip juos išgauti iš DB ir patikrinus ar viskas ok nustatyti, kad rodytų tam tikrą adresą.

Gal kas žinot pamoką kokią?

Vartotojo avataras

Sasha

Patyręs forumietis
 
Pranešimai: 723
Šakių raj.

 4,903.31 Lt

Standartinė » 2010 Bal 19, 19:41

:up: dabar nieko nesuprantu, bet kai pabandysiu ir iseis taip kaip noriu, tada suprasiu :clap:

mode118

Patyręs forumietis
 
Pranešimai: 848

 717.84 Lt

Standartinė » 2010 Bal 19, 21:22

THa KeinuX:
Tau reikia, kad kai žmogus suveda į formą duomenis, išsiunčia, tada tavo skriptas formos duomenis patikrina su iš MySQL gautais duomenimis, pasiima rangą, tuomet tikrina, ir jei administratorius, tai tada rodo vieną adresą, jei kas nors kitas, kitą adresą?
Ir dar kaip supranti adreso rodymą? Nuoroda? :D Nukreipimas į kitą puslapį? Ar tiesiog adreso pakeitimas tam langelį naršyklės viršuje?

Vartotojo avataras

THa KeinuX

Forumo gyventojas
 
Pranešimai: 1200
Sun-City

 0.00 Lt

Standartinė » 2010 Bal 19, 21:39

Yra 2 failai, vienas prisijungimas, labai paprastas jis, o kitas funkcijų failas, kuris autorizuoja vartotoją. Įdėsiu abu failus (jų kodus), tačiau reikėtų, kad kas patartų (dar geriau pamokytų) kaip reikia čia įterpti admin atpažinimą, pagal jo rank.

Log.php failas:
Kodas: Pasirinkti visus
            <h2 class="title">Prisijungti</h2>
            <div style="clear: both;">&nbsp;</div>
            <div class="entry">
            <?php
error_reporting(E_ALL ^ E_NOTICE);
if(isset($_POST['log'])){
$pass = md5 ($_POST['pass']);
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$check = mysql_query("SELECT * FROM users where nickas = '".$_POST['username']."' ");   
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
print "Tokio vartotojo nera";
}else{
while($infoUser = mysql_fetch_array($check)) {
if($pass != $infoUser['password']){
print "Neteisingas slaptazodis";
}else{
$time = time()+ 3600;
setcookie(username,$_POST['username'],$time);
setcookie(pass,$pass,$time);
header("Location: index.php");
}
}
}
}
?>

<form action="index.php?id=log" method="post">
Username:<br />
<input type="text" name="username" maxlength="20"><br />
Password:<br />
<input type="password" name="pass" maxlength="20"><br />
<div style="clear: both;">&nbsp;</div>
<input type="submit" name="log" value="Prisijungti">
</form>
            </div>



Functions.php failas:
Kodas: Pasirinkti visus
<?php
require "db.php";
$nick = $_COOKIE['username'];
$pass = $_COOKIE['pass'];
function online() {
global $nick, $pass;
$check = mysql_query("SELECT * FROM users where nickas = '$nick' and password = '$pass' ");   
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
$online = 0;
}else{
$online = 1;
}
return $online;
}
?>
<<<< Būtent šitas failas turėtų atpažinti prisijungimą admino, ir turėtų rodyti tam tikrą sesijos dalį, kad norimoje vietoje atsirastų žodelis admin, ir pajungtų admin valdymo pultą. Kiti nariai neturi to matyti. Bet kaip tai padaryti?


Beje, ką tu čia pasakojei, man jau vienas žmogus sakė, tačiau kai čia pirmas mano bandymas dirbti su php/mysql, yra sunku gaudytis.

Adreso rodymas, t.y. iindex.php?id=admin < turi mane nukreipti čia per nuorodą kuri atpažįsta vartotoją pagal rank.

Nu žodžiu :D

Vartotojo avataras

Sasha

Patyręs forumietis
 
Pranešimai: 723
Šakių raj.

 4,903.31 Lt

Standartinė » 2010 Bal 20, 17:39

:clap: :clap: :clap: Kaip tik to ko man ir reikejo, + Rep tau, tokiem negaila :D Ir dar jai noriu padaryr ne 2 veiksmus, o 3 tai po

Kodas: Pasirinkti visus
}elseif($veiksmas=="bandymas2"){ //Jei rezultatas FALSE tada tikrinam ar $veiksmas yra lygu "bandymas2"
//Jei TRUE Isvedam siek tiek informacijos bei nuoroda i pirma puslapi
echo "<h1>1 puslapis</h1>";
echo "<a href='a.php?veiksmas=bandymas1'>Eiti i kita (pirma) puslapi</a>";

reik rasyt

Kodas: Pasirinkti visus
}elseif($veiksmas=="bandymas3"){
echo "<h1>3 puslapis</h1>";
echo "<a href='a.php?veiksmas=bandymas1'>Eiti i kita (pirma) puslapi</a>";


teisingai ? i ejimo URl nekreipk demesio visvien pakeisiu :up: :up: :up:

mode118

Patyręs forumietis
 
Pranešimai: 848

 717.84 Lt

Standartinė » 2010 Bal 20, 18:00

Jo.

THa KeinuX:

1. Kur yra įterpiamas Functions.php failas?
2. Kur yra įvykdoma online funkcija?
3. Kodėl header naudoji, kai yra išvesta informacija?
4. Kodėl naudoji dvi mysql užklausas? Tiesiog pirmąja užklausa gauk slaptažodį bei rangą. Po to aišku patikrink ar slaptažodžiai sutampa ar ne ir dar patikrink ar rangas yra admin ir pnš.
5. Kam formos duomenis siunti į index.php?id=log, kai su "id" kintamuoju nieko nedarai? EDIT: Šitas klausimas buvo kilęs, kai vienas dalykas buvo neaiškus, po to paaiškėjus pamiršau ištrint.
6. Nebūtų geriau vietoj šito:
Kodas: Pasirinkti visus
if ($check2 == 0) {
$online = 0;
}else{
$online = 1;
}
return $online;
}
naudoti šitą:
Kodas: Pasirinkti visus
if ($check2 == 0) {
return 0;
}else{
return 1;
} }


Čia perrašyta tavo prisijungimo funkcija pagal mane:
functions.php failas:
Kodas: Pasirinkti visus
<?
function login($first=0){
if($first===0){
global $nick,$pass;
}elseif($first===1){
$nick = $_COOKIE['username'];
$pass = $_COOKIE['password'];
}
// Šioje vietoje prisijuk prie MySQL'o!
$query = mysql_query("SELECT * FROM users where nickas = '$nick'"); 
if(mysql_num_rows($query))<=0){
return 1;
}else{
while($infoUser = mysql_fetch_array($query)) {
if($pass != $infoUser['password']){
return 0;
}else{
$time = time()+ 3600;
setcookie("username",$nick,$time);
setcookie("password",$pass,$time);
if($infoUser['rank']=="admin"){
return 4;
}elseif($infoUser['rank']=="user"){
return 3;
}else{
return 2;
}}}}
?>


Kaip pirmą kartą jungsies, iš formos nick'ą ir užšifruotą slaptažodį įdėk į kintamuosiuos $nick ir $pass, bei kreipkis į funkciją su reikšme 1 - login(1)
Tada skriptas patikrins vartotojo vardą ir slaptažodį, jei bus geri tada į sausainėlius username ir password įrašys vartotojo vardą ir slaptažodį ir pasižiūrės kos rangas. Jei rangas bus admin, tada skriptas gražins reikšmę 4, jei rangas bus user tada skriptas gražins 3, jei rangas bus kitoks skriptas gražins 2, jei neras tokio vartotojo vardo gražins reikšmę 1, jei slaptažodžiai nesutaps, tada gražins reikšmę 0.
Kai norėsi tiesiog patikrinta ar sausainėliuose įvesta teisinga informacija, tai tada kreipkis į funkciją su reikšme 0 - login(0), skriptas gražins tokias pačias reikšmes.


Tai maždaug index.php failas turėtų būti toks:
Tikrinam ar GET kintamasis id yra log;
Jei taip, tada patikrinam ar gauti duomenys iš formos;
Jei taip tada kreipiamės į funkciją login(1) ir tikrinam ar gražino reikšmę 4;
Dar galima tikrinti koks kitoks skaičius buvo gražintas ir pagal tai gražinti atitinkamą informaciją;
Jei taip tada su header perkėliam į kitą puslapį (header("index.php?id=admin"));
Jei nebuvo nusiusti duomenys is formos, tada isvedam prisijungimo forma;
Jei GET kintamasis id nėra log, tada tikrinam ar yra admin;
Jei taip kreipiamės į funkcija login(0), jei ji gražins 4, tada išvedam admin panel;
Jei ne, išvedam klaida dar ką nors.
Ir viskas.

Tikiuosi ką nors paaiškinau ;)
Ai dar prisiminiau, kad žiūrėdamas tavo skriptą pamačiau, kad, kai užsetinai sausainėlius, username ir pass rašei be kabučių, o reikia su kabutėm, nes čia paprasta eilutė (string) ;)
Paskutinį kartą redagavo mode118 2010 Bal 20, 19:51. Iš viso redaguota 1 kartą.

Vartotojo avataras

THa KeinuX

Forumo gyventojas
 
Pranešimai: 1200
Sun-City

 0.00 Lt

Standartinė » 2010 Bal 20, 19:44

Hmm.
1,Functions.php įterpiamas į index.php (tam, kad tikrintų ar online yra 1)
2,Online funkcija tikrinama index.php faile su eilute
Kodas: Pasirinkti visus
<?php if(online() == 1){
include("profile.php");
;}?>

3. Nežinau, dariau pagal pamoką.
4. Neatsakysiu, tokia buvo pamoka.
5. Tam, kad reikia siųsti į tą patį adresą duomenis, kad vyktų php script.
6. Net nežinau.

7. Gal galėtum parašyti per skype, parodyčiau savo turimus failus, gal ką patarsi ? :)

SauliusP

Lankytojas
 
Pranešimai: 4

 152.00 Lt

Standartinė » 2010 Bal 23, 17:08

daug darbo ideta, kiec :)

Vartotojo avataras

bergis

Lankytojas
 
Pranešimai: 8

 204.00 Lt

Standartinė » 2010 Bal 30, 17:20

Gal kas žino kaip reikia sujungti internetinius puslapius į internetine svetaine?
Paskutinį kartą redagavo bergis 2010 Bal 30, 17:24. Iš viso redaguota 1 kartą.

mode118

Patyręs forumietis
 
Pranešimai: 848

 717.84 Lt

Standartinė » 2010 Bal 30, 17:28

Tam reikia naudot
Kodas: Pasirinkti visus
<a href="adresas-iki-kito-puslapio">Nuoroda</a>
Paskutinį kartą redagavo mode118 2010 Bal 30, 17:29. Iš viso redaguota 2 kartus.

Vartotojo avataras

bergis

Lankytojas
 
Pranešimai: 8

 204.00 Lt

Standartinė » 2010 Bal 30, 18:12

O kaip reikia tema uždėti, arba paveiksliuka ar užrašą nuo šono patraukti? :whata:

mode118

Patyręs forumietis
 
Pranešimai: 848

 717.84 Lt

Standartinė » 2010 Geg 01, 11:28

Šiaip nelabai supratau ko tu nori.

Patraukti į dešinę galima taip:
Kodas: Pasirinkti visus
<div style="margin-left:100px">
<img src="Adresas_iki_paveiksliuko">
Tekstas...
</div>


O apie kokią temą tu ten kalbi tai nžn.
Apie pačią svetainės išvaizdą?



Kompiuteriai Svetainės kūrimas





cron
 
Linksmas.net on Facebook  Tapk gerbėju

Šiandien:


Imagination.lt





Dabar prisijungę

Šiuo metu prisijungę 0 narių :: 0 registruotų, 0 slaptų ir 0 svečių
Daugiausia vartotojų (555) buvo 2010 Bir 02, 09:13

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 0 svečių