|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
Posted: Tue Nov 23, 2004 12:24 pm Post subject: Realisierung eines Login-Scripts |
|
|
Hallo Smarty Members ,
ich bin gerade dabei mich in Smarty einzuarbeiten !
und möchte folgendes Script einbinden ...
demo/configs/conf-datei
Code: | <?
mysql_connect("localhost","xxx","xxx");
mysql_select_db("xxx");
?> |
demo/index.php
Code: | <?php
require '../libs/Smarty.class.php';
?>
<?
if ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot) { forgot($fertig, $email);}
else { login($fertig, $user, $password);}
?>
<?
function inhalt($user)
{
session_start();
session_register("user");
}
?>
<?
function login($fertig, $user, $password)
{
include("config.php");
if ($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
inhalt($user);
}
else {
echo "Falsches Passwort!";
}
}
}
}
else {
echo "Zum anmelden geht es <a href=\"$PHP_SELF?anmelden=yes\">hier</a> lang!";
echo "<p><h2>Login</h2></p>";
echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
?>
<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");
if($fertig) {
$abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object ($abfrage1)) {
if ($row->user==$user) {
echo "Dieser Benutzer existiert schon!";
exit;
}
}
if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
}
else if ($password1!=$password2) {
echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
}
else {
$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
@login();
}
}
else {
echo "<h2>Anmelden</h2>";
echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
?>
<?
function forgot ($fertig, $email)
{
include("config.php");
if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage)) {
if ($email==$row->email) { $ismail="true"; }
}
if ($ismail=="true") {
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password)) {
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>
<?
<?
@login();
}
else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
}
else {
echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
?>
<?
function abmelden($fertig, $user, $password)
{
include ("config.php");
if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}
}
else {
echo "<p><h2>Abmelden</h2></p>";
echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
?>
<?
$smarty->display('index.tpl');
?> |
demo/templates/index.tpl
Code: | <body bgcolor="#0000FF">
{config_load file=test.conf section="setup"} {include file="header.tpl" title=foo}
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value="">&</font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password" value=""></font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Login></td>
</tr>
</table>
</form>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value="">&</font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password1" value=""></font></td>
</tr>
<tr>
<td><font size="2">Wiederholen:</font></td>
<td><font size="2"><input type="password" name="password2" value=""></font></td>
</tr>
<tr>
<td><font size="2">E-Mail:</font></td>
<td><font size="2"><input type="text" name="email" value="">&</font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Anmelden></td>
</tr>
</table>
<table cellspacing="1" cellpadding="2" border="0">
<tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
<tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
</table></form></p>
</form>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value="">&</font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password" value=""></font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Abmelden></td>
</tr>
</table>
</form>
{include file="footer.tpl"} |
sql-datei
Code: | CREATE TABLE `login` (`id` TINYINT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `user` VARCHAR(50) NOT NULL, `password` VARCHAR(100) NOT NULL, `email` VARCHAR(50) NOT NULL , PRIMARY KEY (`id`), INDEX (`id`), UNIQUE (`id`)) |
Ich bekomme nur eine Fehlermeldung beim Aufruf der demo/index.php
Code: | Parse error: parse error, unexpected '<' in /srv/www/htdocs/xxx/html/demo/index.php on line 95 |
Kann mir einer einen Tip geben, was verändert werden muss ?
Danke
Last edited by halloweb on Wed May 05, 2010 10:38 pm; edited 1 time in total |
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 12:26 pm Post subject: |
|
|
das ist ein php fehler hat nix mit smarty zu tun schau dir die zeile 95 an
das ist der fehler |
|
Back to top |
|
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 12:46 pm Post subject: |
|
|
weil Deine else Klammer von Line 131 nicht geschlossen wird |
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 12:47 pm Post subject: |
|
|
und die von der Funktion abmelden auch nicht |
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 12:51 pm Post subject: |
|
|
und wenn du schon dabei bist korrigiere gleich alle Klammern den du hast sie bei jeder Funktion vergessen ... immer beim else und das funktionsende |
|
Back to top |
|
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
Posted: Tue Nov 23, 2004 1:52 pm Post subject: |
|
|
Code: | <?php
require '../libs/Smarty.class.php';
?>
<?
if ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot) { forgot($fertig, $email);}
else { login($fertig, $user, $password);}
?>
<?
function inhalt($user)
{
session_start();
session_register("user");
}
?>
<?
function login($fertig, $user, $password)
{include("config.php");
if ($fertig)
{$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0)
{echo "Unbekannter Benutzername!";
}
else {while ($row = mysql_fetch_object ($abfrage))
{if ($row->password==$password)
{inhalt($user);
}
else {echo "Falsches Passwort!";
}
}
}
}
else {echo "Zum anmelden geht es <a href=\"$PHP_SELF?anmelden=yes\">hier</a> lang!";
echo "<p><h2>Login</h2></p>";
echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
?>
<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{ include("config.php");
if($fertig)
{ $abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object ($abfrage1))
{ if ($row->user==$user)
{ echo "Dieser Benutzer existiert schon!";
exit;
}
}
}
if ($user=="" OR $password1=="" OR $password2=="" or $email=="")
{ echo "Sie haben mindestens ein Feld nicht ausgef?llt!";
}
else if ($password1!=$password2)
{ echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
}
else {$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
echo "Erfolgreich angemeldet! Sie k?nnen sich nun einloggen:<br>";
@login();
}
}
else {echo "<h2>Anmelden</h2>";
{echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
}
}
?>
<?
function forgot ($fertig, $email)
{ include("config.php");
if ($fertig)
{ $abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage))
{ if ($email==$row->email) { $ismail="true";
}
}
if ($ismail=="true")
{ $password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password))
}
{ $nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>
<?
@login();
{ else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";
}
{ else { echo "<p><h2>Passwort vergessen</h2><p>";
{ echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
}
}
}
?>
<?
function abmelden($fertig, $user, $password)
{ include ("config.php");
if($fertig) { $abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
{ $reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) { echo "Unbekannter Benutzername!";
}
}
}
}
{ else { while ($row = mysql_fetch_object ($abfrage))
{ if ($row->password==$password)
{ $delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
}
}
}
}
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
{ else { echo "Falsches Passwort!";
}
}
{ else { echo "<p><h2>Abmelden</h2></p>";
{ echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
}
}
}
?>
<?
$smarty->display('index.tpl');
?> |
Muss vor if auch { stehen und danach }
Jetzt bekomme ich diese Fehlermeldung
Code: | Parse error: parse error, unexpected T_ELSE in /srv/www/htdocs/web78/html/demo/index.php on line 62
|
________
Ferrari 328
Last edited by halloweb on Wed Feb 02, 2011 7:03 pm; edited 2 times in total |
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 2:16 pm Post subject: |
|
|
du hast jetzt zu viele klammern ...
Code: |
function xyz()
{
if (condition)
{
bla;
}
else
{
nochmehrbla;
}
}
|
wenn du dir das so schreibst dann kann man da nie einen fehler machen. immer einrücken dann stehen alle klammern die zusammen gehören untereinander |
|
Back to top |
|
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 2:27 pm Post subject: |
|
|
immer gerne doch
bin auch imemr sehr froh wenn mir jemand hilft, wenn ich ein problem ahbe |
|
Back to top |
|
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
Posted: Tue Nov 23, 2004 2:49 pm Post subject: |
|
|
Jetzt sind die ganzen Eingabefelder schon sichtbar !
123song(dot)de/demo/index(dot)php
Code: | <?php
require '../libs/Smarty.class.php';
$smarty = new Smarty;
?>
<?
if ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot) { forgot($fertig, $email);}
else { login($fertig, $user, $password);}
?>
<?
function inhalt($user)
{
session_start();
session_register("user");
}
?>
<?
function login($fertig, $user, $password)
{
include("config.php");
if ($fertig)
{
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0)
{
echo "Unbekannter Benutzername!";
}
else
{
while ($row = mysql_fetch_object ($abfrage))
{
if ($row->password==$password)
{
inhalt($user);
}
else
{
echo "Falsches Passwort!";
}
}
}
}
else
{
echo "Zum anmelden geht es <a href=\"$PHP_SELF?anmelden=yes\">hier</a> lang!";
echo "<p><h2>Login</h2></p>";
echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
?>
<?
echo "<p><a href=\"$PHP_SELF?forgot=yes\">Passwort vergessen?</a><br><a href=\"$PHP_SELF?abmelden=yes\">Abmelden</a></p>";
}
}
?>
<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");
if($fertig)
{
$abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object ($abfrage1))
{
if ($row->user==$user)
{
echo "Dieser Benutzer existiert schon!";
exit;
}
}
if ($user=="" OR $password1=="" OR $password2=="" or $email=="")
{
echo "Sie haben mindestens ein Feld nicht ausgef?llt!";
}
else if ($password1!=$password2)
{
echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
}
else
{
$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
echo "Erfolgreich angemeldet! Sie k?nnen sich nun einloggen:<br>";
@login();
}
}
else
{
echo "<h2>Anmelden</h2>";
echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
?>
<?
}
}
?>
<?
function forgot ($fertig, $email)
{
include("config.php");
if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage))
{
if ($email==$row->email) { $ismail="true";
}
}
if ($ismail=="true")
{
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password))
{
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>
<?
@login();
}
else
{
echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";
}
}
else
{
echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
?>
<?
}
}
?>
<?
function abmelden($fertig, $user, $password)
{
include ("config.php");
if($fertig)
{
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0)
{
echo "Unbekannter Benutzername!";
}
else
{
while ($row = mysql_fetch_object ($abfrage))
{
if ($row->password==$password)
{
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else
{
echo "Falsches Passwort!";
}
}
}
}
else
{
echo "<p><h2>Abmelden</h2></p>";
echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
?>
<?
}
}
?>
<?
$smarty->display('index.tpl');
?> |
aber noch einige Fehlermeldungen in Zeile 21
Code: | Warning: login() [function.login]: open_basedir restriction in effect. File(/usr/share/php/config.php) is not within the allowed path(s): (/srv/www/htdocs/web78/) in /srv/www/htdocs/web78/html/demo/index.php on line 21
Warning: login(config.php) [function.login]: failed to create stream: Operation not permitted in /srv/www/htdocs/web78/html/demo/index.php on line 21
Warning: login() [function.login]: open_basedir restriction in effect. File(/usr/share/php/config.php) is not within the allowed path(s): (/srv/www/htdocs/web78/) in /srv/www/htdocs/web78/html/demo/index.php on line 21
Warning: login(config.php) [function.login]: failed to create stream: Operation not permitted in /srv/www/htdocs/web78/html/demo/index.php on line 21
Warning: login() [function.login]: Failed opening 'config.php' for inclusion (include_path='.:/usr/share/php') in /srv/www/htdocs/web78/html/demo/index.php on line 21 |
________
Toyota A engine specifications
Last edited by halloweb on Wed Feb 02, 2011 7:03 pm; edited 2 times in total |
|
Back to top |
|
ZakMc Smarty Pro
Joined: 04 Oct 2004 Posts: 182
|
Posted: Tue Nov 23, 2004 3:01 pm Post subject: |
|
|
du versuchst eine datei zu öffnen worauf du keine rechte hast.
Du versuchst im verzeichnis /usr/share/php/ die datei config.php zu lesen. was du aber gar nicht darfst " is not within the allowed path(s): (/srv/www/htdocs/web78/)"
du darfst nur dateien aus dem verzeichnis /srv/www/htdocs/web78/ lesen und natürlich die dadrunter. beim include musst du ihm sagen wo er die config.php findet z.b /srv/www/htdocs/web87/config/config.php das wäre ein ort den du lesen darfst |
|
Back to top |
|
halloweb Smarty Regular
Joined: 23 Nov 2004 Posts: 35
|
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|