Fehler in einer IF-Routine ? Need Help !

White Shark

Grünschnabel
Hi Leute

Folgenden PHP-Code bzw. HTML-Code habe ich:

login.htm:
------------------

<html>

<head>


<title>Login für den Admin</title>


</head>

<body bgcolor="#000000" text="#FFFFFF">

<form method="POST" action="admin.php">

<div align="center">
<center>

<table border="0">

<tr>

<td> <font face="Verdana">Admin:<br>
<br>
</font> </td>
<td valign="top"> <font face="Verdana"> <input type="text" name="name" size="20"> </font> </td>

</tr>

<tr>

<td> <font face="Verdana"> Passwort:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<br>
</font> </td>
<td valign="top"> <font face="Verdana"> <input type="password" name="pass" size="20"> </font> </td>

</tr>

<tr>

<td colspan="2" align="center"> <font face="Verdana"> <br>
<input type="submit" value="Login" name="Login"> <br>
</font> </td>

</form>

</table>
</center>
</div>

</body>


admin.php:
--------------

<?php

if (($name == "Ich" and $pass == "****") )

{

echo "<html>";

echo "<head>";

echo "</head>";

echo "<body bgcolor=#000000 text=#FFFFFF>";

echo "<font face=verdana>";

echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";

echo "<center>Teilnehmereintragung</center>";

echo "<br>";
echo "<br>";
echo "<br>";

echo "<form method=POST action=admin.php>";

echo"<table border=1>";
echo"<tr>";

echo" <td>Teilnehmer</td>";
echo" <td><input type=text name=na size=20></td>";

echo"</tr>";

echo"<tr>";
echo" <td>Teamkürzel [???]</td>";
echo" <td><input type=text name=te size=20></td>";
echo"</tr>";

echo"<tr>";

echo" <td colspan=2>";
echo" <p align=center><input type=submit value=Teinehmer&nbsp;eintragen name=gesendet></p>";
echo" </td>";

echo"</tr>";

echo" </table>";

echo"</form>";

}

else

{ include ("fehler.htm"); }


if ($gesendet)

{ include ("connect.php");

include ("erfolgreich.htm");

mysql_close($db);

}


echo "</body>";

echo "</html>";

?>

So nun mein Problem:
Wenn ich mich erfolgreich über die "Login.htm" anmelde werde ich auf die "admin.php" Seite geleitet (bei einer fehlgeschlagenen Anmeldung erscheint die Seite "fehler.htm", soweit so gut !
Aber wenn ich dann in der "admin.php" die Formularfelder ausfülle und auf abschicken klicke erscheit eine neue Seite wo dann gleichtzeitig "fehler.htm" und "erfolgreich.htm" angezeigt wird :-(
Es soll aber nur die Seite "erfolgreich.htm" angezeit werden !!!!

Wer kann mir da helfen ???

CU

White Shark
 
PHP:
else 

{ include ("fehler.htm"); } 


if ($gesendet) 

{ include ("connect.php"); 

include ("erfolgreich.htm"); 

mysql_close($db); 

}

Das ist dein Fehler! Du hast die Variable gesendet gesetzt egal ob die Daten stimmen oder nicht. Außerdem würde ich dir empfehlen die HTML Tag so zu schreiben: <input type="text" name"testname" value="blubber">

Also mit " schreiben!


Mach so, dann müßte es gehen!
PHP:
else 

{ include ("fehler.htm"); } 


elseif ($gesendet) 

{ include ("connect.php"); 

include ("erfolgreich.htm"); 

mysql_close($db); 

}
 
Original geschrieben von Fatility
PHP:
else 

{ include ("fehler.htm"); } 


if ($gesendet) 

{ include ("connect.php"); 

include ("erfolgreich.htm"); 

mysql_close($db); 

}


Das ist dein Fehler! Du hast die Variable gesendet gesetzt egal ob die Daten stimmen oder nicht. Außerdem würde ich dir empfehlen die HTML Tag so zu schreiben: <input type="text" name"testname" value="blubber">

Also mit " schreiben!


Mach so, dann müßte es gehen!
PHP:
else 

{ include ("fehler.htm"); } 


elseif ($gesendet) 

{ include ("connect.php"); 

include ("erfolgreich.htm"); 

mysql_close($db); 

}

Hi

Danke für die Hilfe !

Allerdings erhalte ich einen Parse-Fehler, wenn ich die "ELSEIF" einfüge ! Vielleich kannst du mir da nochmal helfen ?

CU

White Shark
 
PHP:
if ( $var == "blabla" ) {
  ....
}
else if {
  ....
else {
  ....
}

Die else Anweisung muss immer die letzte sein. War ein kleiner Fehler von mir, sorry.Must nur deine IF Abfrage umstellen. Also das else ohne if das letzte ist!

Was schreib ich eigentlich da :D:D:D:D
 
Original geschrieben von Fatility
PHP:
if ( $var == "blabla" ) {
  ....
}
else if {
  ....
else {
  ....
}


Die else Anweisung muss immer die letzte sein. War ein kleiner Fehler von mir, sorry.Must nur deine IF Abfrage umstellen. Also das else ohne if das letzte ist!

Was schreib ich eigentlich da :D:D:D:D

Hi nochmal

Es ist mir schon fast peinlich aber, es funzt leider immer noch nicht ! Es ist mir nicht möglich einen "ELSEIF" Befehl einzufügen. Ich bekomme dann immer einen PARSE-ERROR angezeit. Kann man das Problem überhaupt mit einem "ELSEIF" lösen ?

Also so soll es aussehnen !!!

1. IF: Sind Name und Passwort richtig
-> Lade ein Formular für die Eintragung in eine MYSQL Datenbank !

ELSE: Fehlermeldung (Name oder Passwort falsch)

Wenn 1. erfüllt dann ....

IF Wird beim Formular der Sendebutton betätig
-> Eintragung der Formulardaten in die Datenbank
-> Mitteilung über die erfolgreiche Datenbankeintragung wird
angezeit

Else: Geht bei der Eintragung was schief (Fehlermeldung)

Kann man wirklich mit einer "ELSEIF" Schleife lösen ???

Ich hoffe ich nerve dich nicht mit meinem Fragen, aber ich nunmal ein Newbie :-(

CU

White Shark
 
OK, ich versuche es mal und nerven tust du nicht, dazu ist tutorials.de da :D

PHP:
if (($name == "Ich" and $pass == "meinPass") ) { 
  echo "<html>"; 
  echo "<head>"; 
  echo "</head>";
  echo "<body bgcolor=#000000 text=#FFFFFF>"; 
  echo "<font face=verdana>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<center>Teilnehmereintragung</center>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 

  echo "<form method=POST action=admin.php>"; 

  echo"<table border=1>"; 
  echo"<tr>"; 
  echo" <td>Teilnehmer</td>"; 
  echo" <td><input type=text name=na size=20></td>"; 
  echo"</tr>"; 
  echo"<tr>"; 
  echo" <td>Teamkürzel [???]</td>"; 
  echo" <td><input type=text name=te size=20></td>"; 
  echo"</tr>"; 
  echo"<tr>"; 
  echo" <td colspan=2>"; 
  echo" <p align=center><input type=submit value=Teinehmer eintragen name=gesendet></p>"; 
  echo" </td>"; 
  echo"</tr>"; 
  echo" </table>"; 

  echo"</form>"; 
} 

else if ( $gesendet ) { 
  include ("connect.php"); 
  include ("erfolgreich.htm"); 
  mysql_close($db);  
} 
else {  
  include ("fehler.htm");
}

echo "</body>";
echo "</html>";

So müßte es funktionieren. Kopiere einfach raus.
Gruß
Fatility
 
Original geschrieben von Fatility
OK, ich versuche es mal und nerven tust du nicht, dazu ist tutorials.de da :D

PHP:
if (($name == "Ich" and $pass == "meinPass") ) { 
  echo "<html>"; 
  echo "<head>"; 
  echo "</head>";
  echo "<body bgcolor=#000000 text=#FFFFFF>"; 
  echo "<font face=verdana>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<center>Teilnehmereintragung</center>"; 
  echo "<br>"; 
  echo "<br>"; 
  echo "<br>"; 

  echo "<form method=POST action=admin.php>"; 

  echo"<table border=1>"; 
  echo"<tr>"; 
  echo" <td>Teilnehmer</td>"; 
  echo" <td><input type=text name=na size=20></td>"; 
  echo"</tr>"; 
  echo"<tr>"; 
  echo" <td>Teamkürzel [???]</td>"; 
  echo" <td><input type=text name=te size=20></td>"; 
  echo"</tr>"; 
  echo"<tr>"; 
  echo" <td colspan=2>"; 
  echo" <p align=center><input type=submit value=Teinehmer eintragen name=gesendet></p>"; 
  echo" </td>"; 
  echo"</tr>"; 
  echo" </table>"; 

  echo"</form>"; 
} 

else if ( $gesendet ) { 
  include ("connect.php"); 
  include ("erfolgreich.htm"); 
  mysql_close($db);  
} 
else {  
  include ("fehler.htm");
}

echo "</body>";
echo "</html>";


So müßte es funktionieren. Kopiere einfach raus.
Gruß
Fatility

Hi

Jetzt klappt es !

Vielen vielen vielen Dank !

CU

White Shark
 
nur mal ne kleine frage am rande:

gibbet ne möglichkeit, diese ganzen echos zur ausgabe des html codes zusammen zufassen ? also das es einen block gibt, wo der ganze html code drin steht, anstatt zeilenweise immer "echo" zu schreiben .. !?
 
Ja gibt es. Entweder per Template (must mal gucken, da gibt es weiter unten schon einen Tread von indem ich das beschrieben habe)

Oder per Include von reinen html Dateien wo nur die Variablen eingefügt sind!
 

Neue Beiträge

Zurück