MySQL alapú profil...
Szeretném olyanra megcsinálni a login-om hogy minden felhasználónak legyen saját profilja pl: profil.php?id=1
Ez admin profilja
Neve:
Email címe:
stb.
Megmég hasonlókat írna ki.
Meg még egy olyan is kellene Hogy a felhasználó meg tudja változtatni a profiljában néhány adtot pl: e-mail cím és a jelszó
itt a login.php :
<?php
include "config.php";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
/**************************************************
* Ha még nem lépett be
***************************************************/
if ($_SESSION['belepett']!== true)
{
if (isset($_POST['login']))
{ //Ha postolt adatokat
$nick = addslashes($_POST['nev']);
$pass = md5($_POST['jelszo']);
$sql = "SELECT * FROM users ";
$sql.= "WHERE (nick='".$nick."'";
$sql.= " AND jelszo='".$pass."')";
$query = mysql_query($sql);
if (mysql_num_rows($query) !== 0)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;
header("Location: ".$_SERVER['PHP_SELF']);
}
else
{//Hibás nick+pass
print "<font color=#FF0000>hibás felhasználónév vagy jelszó/esetleg az is lehet hogy ki lettél tiltva mert megszegted a szabályzatot.</font>";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<body>
<body background="vista.jpg">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="19%" height="102">
<center>
<tr>
<td width="100%" height="15">
<p align="center"><b>Felhasználónév</b></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center"><input type="text" name="nev" size="20" /></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center"><b>Jelszó</b></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center">
<input type="password" name="jelszo" size="20" /></td>
</tr>
</table>
<p align="center">
<input type="submit" name="login" value="Belépés" /> </p>
</center>
</body>
</html>
</form>
<?php
}//Nem lépett be
/********************************
* Ha már belépett
*******************************/
else
{//Be van lépve
print "Üdvözlünk, a weboldalon : ".$_SESSION['nick'];
print "<a href=\"profil.php\">Profil </a><br />";
include ("fooldal.php");
print " <a href=\"logout.php\">kijelentkezés</a><br />";
}
?>
■ Ez admin profilja
Neve:
Email címe:
stb.
Megmég hasonlókat írna ki.
Meg még egy olyan is kellene Hogy a felhasználó meg tudja változtatni a profiljában néhány adtot pl: e-mail cím és a jelszó
itt a login.php :
<?php
include "config.php";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
/**************************************************
* Ha még nem lépett be
***************************************************/
if ($_SESSION['belepett']!== true)
{
if (isset($_POST['login']))
{ //Ha postolt adatokat
$nick = addslashes($_POST['nev']);
$pass = md5($_POST['jelszo']);
$sql = "SELECT * FROM users ";
$sql.= "WHERE (nick='".$nick."'";
$sql.= " AND jelszo='".$pass."')";
$query = mysql_query($sql);
if (mysql_num_rows($query) !== 0)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;
header("Location: ".$_SERVER['PHP_SELF']);
}
else
{//Hibás nick+pass
print "<font color=#FF0000>hibás felhasználónév vagy jelszó/esetleg az is lehet hogy ki lettél tiltva mert megszegted a szabályzatot.</font>";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<body>
<body background="vista.jpg">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="19%" height="102">
<center>
<tr>
<td width="100%" height="15">
<p align="center"><b>Felhasználónév</b></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center"><input type="text" name="nev" size="20" /></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center"><b>Jelszó</b></td>
</tr>
<tr>
<td width="100%" height="15">
<p align="center">
<input type="password" name="jelszo" size="20" /></td>
</tr>
</table>
<p align="center">
<input type="submit" name="login" value="Belépés" /> </p>
</center>
</body>
</html>
</form>
<?php
}//Nem lépett be
/********************************
* Ha már belépett
*******************************/
else
{//Be van lépve
print "Üdvözlünk, a weboldalon : ".$_SESSION['nick'];
print "<a href=\"profil.php\">Profil </a><br />";
include ("fooldal.php");
print " <a href=\"logout.php\">kijelentkezés</a><br />";
}
?>
Elég gyenge próbálkozás...
<form method="post" action="">
<table>
<tr>
<td><b>Felhasználónév</b></td>
<td><input type="text" name="nev" /></td>
</tr>
<tr>
<td><b>E-mail cím:</b></td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td><b>Város</b></td>
<td><input type="text" name="varos" /></td>
</tr>
<tr>
<td><b>Teljes neved</b></td>
<td><input type="text" name="teljesnev" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="elkuld" value="Mentés" />
</td>
</tr>
</table>
</center>
</form>
<?php
$felhasznalo = "root";
$jelszo = "";
$adatbazis = "profil";
$kapcsolat = mysql_connect ("localhost",$felhasznalo,$jelszo );
if ( ! $kapcsolat )
die ( "Nem lehet kapcsolódni a kiszolgálóhoz! " );
mysql_select_db ($adatbazis, $kapcsolat )
or die ( "Nem lehet megnyitni a $adatbazist: ".mysql_error () );
$parancs = "INSERT INTO profil (nev,email,varos,teljesnev )
VALUES ( '$nev','$email','$varos','$teljesnev' )";
mysql_query ( $parancs, $kapcsolat )
or die ( "Nem lehet adatot hozzáadni a \"profil\" táblához: "
.mysql_error () );
mysql_close ( $kapcsolat );
include "config2.php";
include "reg_check.php";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
if (isset($_POST['elkuld']))
{
$sql = "INSERT INTO users (nev,email,varos,teljesnev) ";
$sql.= "VALUES('','".$_POST['nev']."','";
$sql.= md5($_POST['email'])."','".$_POST['varos']."')";
$query = mysql_query($sql) or die ("Valami baj van az adatbázissal.");
print "<center> Kedves <b>$nick</b>!</center><br><br> a profilod sikeresen mentésre került adatbázisunkban
<br><br>";
}
?>
// már sok helyen utánanéztem/kérdeztem de sehol nemtudott senki sem megoldást nyújtani, ez az oldal az utolsó reményem.
2 lehetséges hiba
- 2 körben a $parancs, és a $sql változók tartalmát ( mysql insert utasitás) vizsgálnám meg
- megnézném, hogy minden változó behelyettesitődik-e (valszeg nem )
- különösen a $parancs esetében sanszos, hogyha a register_globals ki van kapcsolva a php.ini-ben , akkor az adott változók nem kapnak értéket, és csak üres string-ek iródnak az adatbázisba
pontosan!
register_globals, $_POST
Ellenőrzés
teljesen igazad van.
fiftyfan: ne a addslashes() használd adatbázisba íráskor mert az nem escapeel minden karaktert! Az addslashes() nem erre való.
Igen, igen