Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi
 
Domov > Forum > Računalništvo

PHP - 3. del

 
 
13.6.2009, 18:45
Najlaži je težit.

Dobr - očitno nimam izbire.

Torej; 21. korak preverjanje:

kliknem registracija.php - vedno izpiše Registracija ni uspela.

kliknem prijava.php:
Parse error: syntax error, unexpected '{' in /home/a2401829/public_html/prijava.php on line 7


Mislim, da bi bilo lažje, da sam preverim kodo.
 
 
 
13.6.2009, 18:48
Mislim, da nimaš pravilno nastavljene tabele. V registracija.php namesto

$sql = mysql_query("INSERT INTO mojaPrvaTabela(username, password) VALUES ('$username', MD5('$geslo'));") OR die('Registracija ni bila uspešna!');


napiši

$sql = mysql_query("INSERT INTO mojaPrvaTabela(username, password) VALUES ('$username', MD5('$geslo'));") OR die('Registracija ni bila uspešna!' . mysql_error());


V prijava.php pa prilepi prvih 10 vrstic oz. podrobno si oglej vrstico 7. Verjetno ti v prejšnji vrstici manjka ;



 
 
 
13.6.2009, 18:59
Registracija.php:
Še vedno nič. Koda:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm....
<html xmlns="http://www.w3.org/1999/xhtml"&g....
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="registracija" name="registracija" method="post" action="registracija.php">
<p>Uporabniško ime:
<input type="text" name="username" id="username" />
</p>
<p>Geslo:
<input type="password" name="password" id="password" />
</p>
<p>Ponovi geslo:
<input type="password" name="password2" id="password2" />
</p>
<p>
<input type="submit" name="registracija" id="registracija" value="Registracija" />
</p>
</form>
</body>
</html>

<?php
mysql_connect('mysql8.000webhost.com', 'a2401829_testnik', 'geslo') OR die('Ne morem se povezati na server!');
mysql_select_db('a2401829_baza') OR die('Ne morem izbrati baze!');

$username = $_POST['username'];
$geslo = $_POST['password'];
$geslo2 = $_POST['password2'];

if ($geslo != $geslo2) {
die ('Vpisana gesla nista enaka');
}
if (mysql_num_rows(mysql_query("SELECT * FROM mojaPrvaTabela WHERE username='$username';")) > 0) {
die ('Uporabniško ime že obstaja!');
}

$sql = mysql_query("INSERT INTO mojaPrvaTabela(username, password) VALUES ('$username', MD5('$geslo'));") OR die('Registracija ni bila uspešna!' . mysql_error());
?>


Prijava.php
Imam dvopičje. Koda:
<?php
session_start();

mysql_connect('mysql8.000webhost.com', 'a2401829_testnik', 'geslo') OR die('Ne morem se povezati na server!');
mysql_select_db('a2401829_baza') OR die('Ne morem izbrati baze!');


(isset($_GET['odjava'])) {
unset($_SESSION['prijavljen']);
die "Uspešno ste se odjavili!";
}
if ($_SESSION['prijavljen'] == true) {
die "Ste že prijavljeni!";
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm....
<html xmlns="http://www.w3.org/1999/xhtml"&g....
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="prijava" name="prijava" method="post" action="prijava.php">
<p>Uporabniško ime:
<input type="text" name="username" id="username" />
</p>
<p>Geslo:
<input type="password" name="password" id="password" />
</p>
<p>
<input type="submit" name="prijava" id="prijava" value="Prijava" />
</p>
</form>
</body>
</html>

<?php
$username = mysql_real_escape_string($_POST['username']);
$geslo = mysql_real_escape_string($_POST['password']);

$sql = mysql_query("SELECT * FROM mojaPrvaTabela WHERE username = '$username' AND password = MD5('$geslo');");


echo 'Uspešno ste se prijavili kot ';
switch (mysql_result(mysql_query("SELECT vrsta FROM mojaPrvaTabela WHERE username = '$username';"), 0))
{
case 0:
echo "navaden uporabnik.";
break;
case 1:
echo "administrator.";
break;
default:
}
$_SESSION['prijavljen'] = true;
}else {
echo 'Napačna prijava!';
}

if (isset($_POST['Prijava'])) {
}
?>


Tako, mislim, da bo sedaj najhitreje rešen problem. Povejte
 
 
 
13.6.2009, 19:00
(isset($_GET['odjava'])) {
unset($_SESSION['prijavljen']);
die "Uspešno ste se odjavili!";
}


Le kaj to pomeni? Pravilno:

if(isset($_GET['odjava'])) {
unset($_SESSION['prijavljen']);
die ("Uspešno ste se odjavili!");
}


Pri registraciji pa sedaj povej, kaj ti napiše.


spremenil: kljuka (13.6.2009 ob 19.01.48)
 
 
 
13.6.2009, 19:07
Prijava.php

Nov problem:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/a2401829/public_html/prijava.php on line 14


Registracija.php


Ko vstopim na stran je situacija taka:
http://www.shrani.si/f/3T/nS/3nxOiBuU/01....

Ko vpišem up. ime in pass. pa taka:
http://www.shrani.si/f/43/12Q/4mJgqIsn/0....


spremenil: daddy (13.6.2009 ob 19.07.55)
 
 
 
13.6.2009, 19:09
V tabeli nimaš pri ID nastavljen Auto Increment (A_I).

Drugače pa povsod, kjer je funkcija die popravi iz npr.

die "Napaka!";


v

die ("Napaka!");


Je prišlo do majhne napakice (v besedilu, na sliki je pravilno).
 
 
 
13.6.2009, 20:21
Registracija.php
Vse deluje - hvala.

Prijava.php
Napaka:
Parse error: syntax error, unexpected '}' in /home/a2401829/public_html/prijava.php on line 59


Koda:
<?php
session_start();

mysql_connect('mysql8.000webhost.com', 'a2401829_testnik', 'geslo') OR die('Ne morem se povezati na server!');
mysql_select_db('a2401829_baza') OR die('Ne morem izbrati baze!');


if(isset($_GET['odjava'])) {
unset($_SESSION['prijavljen']);
die ('Uspešno ste se odjavili!');
}

if ($_SESSION['prijavljen'] == true) {
die ('Ste že prijavljeni!');
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm....
<html xmlns="http://www.w3.org/1999/xhtml"&g....
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="prijava" name="prijava" method="post" action="prijava.php">
<p>Uporabniško ime:
<input type="text" name="username" id="username" />
</p>
<p>Geslo:
<input type="password" name="password" id="password" />
</p>
<p>
<input type="submit" name="prijava" id="prijava" value="Prijava" />
</p>
</form>
</body>
</html>

<?php
$username = mysql_real_escape_string($_POST['username']);
$geslo = mysql_real_escape_string($_POST['password']);

$sql = mysql_query("SELECT * FROM mojaPrvaTabela WHERE username = '$username' AND password = MD5('$geslo');");


echo 'Uspešno ste se prijavili kot ';
switch (mysql_result(mysql_query("SELECT vrsta FROM mojaPrvaTabela WHERE username = '$username';"), 0))
{
case 0:
echo "navaden uporabnik.";
break;
case 1:
echo "administrator.";
break;
default:
}
$_SESSION['prijavljen'] = true;
}else{

echo 'Napačna prijava!';
}

if (isset($_POST['Prijava'])) {
}
?>


Kot sem rekel, teh napak je (bilo) veliko, zato vas še enkrat naprošam k potrpežljivosti in se vam/ti (kljuka ), zahvaljujem za pomoč.

Daddy.
 
 
 
13.6.2009, 20:25
Ti

Lahko bi napisal, ampak, potrudimo se poiskati napake:

$_SESSION['prijavljen'] = true;
}else{

echo 'Napačna prijava!';
}


if ($_SESSION['prijavljen']==true) {
echo '<a href="prijava.php?odjava">ODJAVA</a>';
}else {
echo '<a href="prijava.php">PRIJAVA </a>';
}


Slabo ste prepisovali
 
 
 
13.6.2009, 20:38
OK, danke za pomoč.

Ampak, čaka te nov problem (sorry, za tok problemov).

Ko greš na moj index.php, tam klikneš registracija in avtomatično, ko prideš na registracija.php te registrira - up. ime in pass. ne določi. Torej postaneš uporabnik z nicknameom, ki se glasi: in passwordom, ki se glasi: .

Potem klikneš na prijava.php in te avtomatično prijavi, z nickom, katerega ti sistem avtomatično naredi, ko klikneš registracija.php, torej - nickname: in password: .

Can you help me again?
 
 
 
13.6.2009, 20:41
No dobro. Mi lahko poveš, ali si sam pisal kodo?

<?php
$username = mysql_real_escape_string($_POST['username']);
$geslo = mysql_real_escape_string($_POST['password']);

$sql = mysql_query("SELECT * FROM mojaPrvaTabela WHERE username = '$username' AND password = MD5('$geslo');");


echo 'Uspešno ste se prijavili kot ';
switch (mysql_result(mysql_query("SELECT vrsta FROM mojaPrvaTabela WHERE username = '$username';"), 0))
{
case 0:
echo "navaden uporabnik.";
break;
case 1:
echo "administrator.";
break;
default:
}
$_SESSION['prijavljen'] = true;
}else{

echo 'Napačna prijava!';
}

if (isset($_POST['Prijava'])) {
}
?>


pravilno:

<?php
if (isset($_POST['Prijava'])) {
$username = mysql_real_escape_string($_POST['username']);
$geslo = mysql_real_escape_string($_POST['password']);

$sql = mysql_query("SELECT * FROM mojaPrvaTabela WHERE username = '$username' AND password = MD5('$geslo');");


echo 'Uspešno ste se prijavili kot ';
switch (mysql_result(mysql_query("SELECT vrsta FROM mojaPrvaTabela WHERE username = '$username';"), 0))
{
case 0:
echo "navaden uporabnik.";
break;
case 1:
echo "administrator.";
break;
default:
}
$_SESSION['prijavljen'] = true;
}else{

echo 'Napačna prijava!';
}
}
?>


Pri registraciji enako.

<?php
mysql_connect('mysql8.000webhost.com', 'a2401829_testnik', 'geslo') OR die('Ne morem se povezati na server!');
mysql_select_db('a2401829_baza') OR die('Ne morem izbrati baze!');

if (isset($_POST['username']) && isset($_POST['password']))
{
$username = $_POST['username'];
$geslo = $_POST['password'];
$geslo2 = $_POST['password2'];

if ($geslo != $geslo2) {
die ('Vpisana gesla nista enaka');
}
if (mysql_num_rows(mysql_query("SELECT * FROM mojaPrvaTabela WHERE username='$username';")) > 0) {
die ('Uporabniško ime že obstaja!');
}

$sql = mysql_query("INSERT INTO mojaPrvaTabela(username, password) VALUES ('$username', MD5('$geslo'));") OR die('Registracija ni bila uspešna!' . mysql_error());
}
?>
 
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!