Links generieren

Mamph

Grünschnabel
Hallo liebe Leute,

Also ich habe folgendes Problem. Ich habe eine Seite auf der 2 Links habe. Wenn ich auf einen der 2 Links klicke, soll mit dem Befehl include eine .php Datei hereingeladen werden. Nun habe ich im Internet schon etwas nachgesucht und Folgendes gefunden. Leider wird im Moment beim Klick auf einen Link nur noch eine weiße Seite angezeigt.

Weiß jemand wo der Fehler liegt?
Danke schonmal im voraus

PHP:
if  (($_SESSION['Login'] = true) and ($row2>0) and( ($_GET['page']==="pages.php") or ($_GET['page']==="groups.php"))) {
echo ' 
<div id="menu">
		<a href="'. $_SERVER['SCRIPT_NAME'].'?page=pages.php "> Pages </a>
		<a href="'. $_SERVER['SCRIPT_NAME'].'?page=groups.php "> Groups </a>
</div>
<div id="main3">
<p> Login as '. $result4[0][2]. ' </p> ';
if (isset($_GET['page'])) include 'Include/'.$_GET['page']; 
echo ' </div> ';
}
 
So wie der Link da steht ist der Parameter 'pages.php ' (also mit einem leerzeichen am schluss) Du vergleichst mit === . Und 'pages.php ' ist nun mal nicht 'pages.php'.
Nimm mal im Link die Leerzeichen raus
 
Danke, aber ich denke mal dass dann mein Problem wo anders liegt. Also meine Seite ist mit MySQL und PHP. Ich habe dass dann mal mit dem Leerzeichen geändert. Hoffentlich kann mir da einer helfen.

Danke schonmal.


PHP:
<?php
 session_start();
 include ("../Config/config.php");
 ?>
<html>

<head>
<title> Backend </title>
<link href="default.css" rel="stylesheet" type="text/css" />
</head>

<body>
 <?php
 if(isset($_POST['Login'])) {
$myusername=$_POST['User'];
$mypassword=$_POST['Password'];
$mypassword=sha1($mypassword);

$sql="SELECT * FROM tblUsers WHERE (username='".$myusername."') and (password='".$mypassword."')";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count>0){
$_SESSION['Login'] = true; 
$_GET['page'] ="pages.php";
}
else {
$_SESSION['Login'] = false;
echo "Passwort oder Username falsch";
}

//Administrator und nicht gesperrt
$sql2="SELECT * FROM tblUsers WHERE (username='".$myusername."') and (password='".$mypassword."') and (isAdmin='1') and (isLocked='0')";
$result2=mysql_query($sql2);
$row1=mysql_num_rows($result2);
if ($row1>0) 
{ 
	for ($I=0;$I<$row1;$I++)
		{
			$result3[$I]=mysql_fetch_row($result2);
		}
}
//echo '<pre>'.print_r($result3,true).'</pre>';
//echo $result4[0][2];
if (isset($_POST['Login']) and ($_SESSION['Login'] = true) and ($row1>0)) {
echo ' 
<div id="menu">
		<a href="Include/pages.php"> Pages </a>
		<a href="Include/groups.php"> Groups </a>
</div>
<div id="main3">
<p> Login as '. $result3[0][2]. ' </p> ';
include 'Include/users.php';
echo ' </div> ';
}
if (isset($_GET['page'])) {
//User und nicht gesperrt
$sql3="SELECT * FROM tblUsers WHERE (username='".$myusername."') and (password='".$mypassword."') and (isAdmin='0') and (isLocked='0')";
$result3=mysql_query($sql3);
$row2=mysql_num_rows($result3);
if ($row2>0) 
{ 
	for ($I=0;$I<$row2;$I++)
		{
			$result4[$I]=mysql_fetch_row($result3);
		}
}
//echo '<pre>'.print_r($result3,true).'</pre>';
//echo $result4[0][2];
if  (($_SESSION['Login'] = true) and ($row2>0) ) {
echo ' 
<div id="menu">
		<a href="'. $_SERVER['SCRIPT_NAME'].'?page=pages.php"> Pages </a>
		<a href="'. $_SERVER['SCRIPT_NAME'].'?page=groups.php"> Groups </a>
</div>
<div id="main3">
<p> Login as '. $result4[0][2]. ' </p> ';
if (isset($_GET['page'])) include 'Include/'.$_GET['page'].''; 
echo ' </div> ';
}
}
}

// Login falls Login falsch oder ausgeloggt
if (!isset($_GET['page'])){
echo'
<div id="menu">
		<a href="#"> Pages </a>
		<a href="#"> Users </a>
		<a href="#"> Groups </a>
</div>
<div id="login">
<form action="index.php" method="post">
<h1> Login: </h1>
 <p> User :  <input style="margin-left : 43px;" type="text" name="User" maxlength="10"> </p>
	<p> Password : <input type="Password" name="Password" maxlength="10"> </p>
	<p> <input type="submit" name="Login" value="Login" maxlength="10"> <input type="submit" name="Register" value="Register" maxlength="10"> </p>
	</form>
</div>
';
}
?>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Sorry, jemand anders soll ans Werk. Ich weigere mich so unformatierten Code zu lesen. Hab echt keinen Bock Klamemrn zu zählen um herauszufinden was wo beginnt und wo endet. Un du kannst mir glauben. Viele Fehler findet man beim formatieren von Code....
PHP:
...
if (isset($_GET['page'])) include 'Include/'.$_GET['page'].''; 
echo ' </div> ';
}
}
}

Einzig was ich auf die schnelle gesehen habe:
ist die Auswertung von $_GET in der Klammer von isset($_POST['Login']) ? Wen ja, wird $_GET nur beim absenden vom Formular ausgewertet, nicht beim Link.
 
PHP:
if  (($_SESSION['Login'] = true)

Ist dir schon aufgefallen das du immer wieder nur mit "=" und nicht mit "==" prüfst.
 
Danke,

Nun habe ich aber noch ein Problem. Meine Update Query funktioniert nicht.
PHP:
$sql6 ="UPDATE tblUsers SET name='".$_POST['Name']."',username='".$_POST['User']."',password='".(sha1($_POST['Passwort']))."',email='".$_POST['Mail']."',isAdmin='".$ADMIN."',isLocked=.'".$LOCKED."' Where idUsers='".$_SESSION['ID']."'";

Habe schon verschiedene Möglichkeiten probiert, funktioniert aber nicht wirklich
 
Da fehlt ein Anführungszeichen am Ende:
PHP:
$sql6 ="UPDATE tblUsers SET name='".$_POST['Name']."',username='".$_POST['User']."',password=''".
Aber bitte nutze nicht die rohen Daten von $_POST, dies ist eine sehr große Sicherheitslücke!
PHP:
$name = mysql_real_escape_string($_POST['Name']);
$user = mysql_real_escape_string($_POST['User']);

$sql6 = "UPDATE tblUsers SET name='$name', username='$user', password=''";
 
Du hast soviel sinnlosen Code da drin, das gibts gar nicht. ;)
Wieso prüfst du 3 mal dieselbe Query? Benutz doch das, was bei der Query rauskommt!

Zudem, wenn dich Yaslaw bittet den Code zu formatieren, dann folge der Bitte doch einfach...

PHP:
<?php
session_start();
include ("../Config/config.php");
?>
<html>
   <head>
      <title> Backend </title>
      <link href="default.css" rel="stylesheet" type="text/css" />
   </head>
   <body>
      <?php
      if(isset($_POST['Login']))
      {
      $myusername=$_POST['User'];
      $mypassword=sha1($_POST['Password']);

      $sql="SELECT * FROM tblUsers WHERE username='{$myusername}' AND password='{$mypassword}'";
      $result=mysql_query($sql);
      $count=mysql_num_rows($result);
      $row = mysql_fetch_object($result);

      if($count>0)
      {
         $_SESSION['Login'] = true; //wozu?
         $_SESSION['idUsers'] = $row->idUsers; //viel sinnvoller
         $_SESSION['username'] = $row->username;
         $_GET['page'] ="pages.php";
         if($row->isAdmin == 1) $_SESSION['isAdmin'] = true;
         if($row->isLocked == 0) $_SESSION['isLocked'] = false;
      } else {
         $_SESSION['Login'] = false; //sinnlos, wenn die Session nicht existiert, einfach nichts machen
         echo "Passwort oder Username falsch";
      }

      if(isset($_SESSION['idUsers']) && $_SESSION['isAdmin'] == true) //wieso sollte ein Admin gesperrt sein? ;) Die Abfrage scheint mir sinnlos, drum hab ichs weggelassen
      {
         echo '<div id="menu">
            <a href="Include/pages.php"> Pages </a>
            <a href="Include/groups.php"> Groups </a>
         </div>
         <div id="main3">
            <p> Login as '.$_SESSION['username'].' </p> ';
            include 'Include/users.php';
         echo ' </div> ';
      }

      if (isset($_GET['page']))
      {
         if(isset($_SESSION['idUser']) && $_SESSION['isAdmin'] != true && $_SESSION['isLocked'] == false)
         {
            echo '<div id="menu">
               <a href="'. $_SERVER['SCRIPT_NAME'].'?page=pages.php"> Pages </a>
               <a href="'. $_SERVER['SCRIPT_NAME'].'?page=groups.php"> Groups </a>
            </div>
            <div id="main3">
               <p> Login as '.$_SESSION['username'].' </p> ';
               if(isset($_GET['page'])) include 'Include/'.$_GET['page'].''; 
            echo ' </div> ';
         }
      }
   }

   if (!isset($_GET['page']))
   {
      echo'
      <div id="menu">
         <a href="#"> Pages </a>
         <a href="#"> Users </a>
         <a href="#"> Groups </a>
      </div>
      <div id="login">
         <form action="index.php" method="post">
            <h1> Login: </h1>
            <p> User :  <input style="margin-left : 43px;" type="text" name="User" maxlength="10"></p>
            <p> Password : <input type="Password" name="Password" maxlength="10"> </p>
            <p> <input type="submit" name="Login" value="Login" maxlength="10"> <input type="submit" name="Register" value="Register" maxlength="10"> </p>
         </form>
      </div>';
   }
   ?>
</body>
</html>

Vom Gefühl her hab ich sogar die Formatierung irgendwo verschossen, aber das ist jetzt nicht mein Problem.
Du hast einfach drei Abfragen gemacht, statt eine. Zuerst prüfst du die Userdaten. Stimmen diese, werden die Sessions gesetzt mit wichtigen Dingen, wie z.B. userid, username, isadmin, islocked, ...
Diese kannst du für die späteren if-Abfragen nutzen.

Wenns nicht funktioniert, bin ich unschuldig.

€: @ComFreek... da gehts noch weiter. Das Forum formatiert das nur so bescheuert, dass es nur zwei Zeilen sind. Die Abfrage ist noch viel länger. ;)

lg
 
Danke Leute für die ganzen Antworten. Ich habe nun über die Monate versucht den Login etwas zu verbessern.

Nun habe ich das Problem dass wenn jemand sich registriert, sagen wir mal "Xy" und sich dann jemand unter "xy" registriert wird beim Login der Unterschied nicht erkannt. Ich habe es schon mit mysql_real_escape_string versucht aber dann funktioniert der Login gar nicht mehr. Kann mir da jemand vielleicht helfen.

PHP:
		 <?
			if (isset($_POST['Registration'])) {
					$_GET['page'] ="";
					echo ' <form action="index.php" method="POST">
						<center>
						<p> Registrierung </p>
						<table>
						<tr>
							<td> Benutzername : </td>
							<td> <input type="text" name="Benutzername"> </td>
						</tr>
						<tr>
							<td> Passwort : </td>
							<td> <input type="password" name="Passwort"> </td>
						</tr>
						<tr>
							<td> Passwort wiederholen: </td>
							<td> <input type="password" name="WdPasswort"> </td>
						</tr>
						<tr>
							<td> E-Mail-Adresse : </td>
							<td> <input type="text" name="E-Mail"> </td>
						</tr>
						</table> 
						<br />
						<input type="submit" name="Einschreibung" value="Einschreiben">
						<br />
						</center>
						</form>';
			} 
			else {	
				if (isset($_POST['Einschreibung'])) {
					if (($_POST['Passwort'] == "") or ($_POST['Benutzername'] == "") or ($_POST['E-Mail'] == "")){
					$_GET['page'] ="";
					echo '  <form action="index.php" method="POST">
						<center>
						<p> Registrierung </p>
						<p> Es trat ein Fehler auf </p>
						<table>
						<tr>
							<td> Benutzername : </td>
							<td> <input type="text" name="Benutzername"> </td>
						</tr>
						<tr>
							<td> Passwort : </td>
							<td> <input type="password" name="Passwort"> </td>
						</tr>
						<tr>
							<td> Passwort wiederholen: </td>
							<td> <input type="password" name="WdPasswort"> </td>
						</tr>
						<tr>
							<td> E-Mail-Adresse : </td>
							<td> <input type="text" name="E-Mail"> </td>
						</tr>
						</table> 
						<br />
						<input type="submit" name="Einschreibung" value="Einschreiben">
						<br />
						</center>
						</form>';
					}
					else
					{
						for ($I=0; $I<=$counttblUsers-1; $I++) {
							if ((($_POST['Benutzername']) === $tblUsers[$I][2]) AND ($_POST['Passwort'] === sha1($tblUsers[$I][4]))){
								$CHECK = "TRUE";
							}
						}
						if (($_POST['Passwort'] === $_POST['WdPasswort']) AND ($CHECK === "FALSE")) {
							echo ' <center> <p>Danke für die Registrierung '.$_POST['Benutzername'].' </p> <p> <a href="index.php"> Zurück zum Login </a></center> ';
							$_GET['page'] ="";
							$TEXT = " Herzlich Willkommen " . $_POST['Benutzername'];
							$WERT = 10000;
							$sql = "INSERT INTO tblUsers (Benutzername,Mail,Passwort,Kontostand,Mitteilungen) VALUES ('".$_POST['Benutzername']."','".$_POST['E-Mail']."','".sha1($_POST['Passwort'])."','".intval($WERT)."','".$TEXT."')";
							mysql_query($sql);
							$empfaenger = $_POST['E-Mail'];
							$betreff = 'Registrierung bei Trade4Money';
							$nachricht = 'Viele Danke für ihre Registration bei Trade4Money'."\r\n". ' Hier sind die angegebenen Informationen : '."\r\n".' Benutzername : '. $_POST['Benutzername'].' '."\r\n".' Passwort : '.$_POST['Passwort'].' '."\r\n".' Ihnen wurde nun als Startkapital '.$WERT.' $ gutgeschrieben. Viel Spaß beim spielen. '."\r\n".' Ihr Trade4Money-Team';
							$header = 'From: noreply@Trade4Money.lu' . "\r\n" .
   									 'Reply-To: sveni1993@hotmail.com' . "\r\n" .
    										'X-Mailer: PHP/' . phpversion();
							mail($empfaenger, $betreff, $nachricht);
						} 
						else {
							$_GET['page'] ="";
							echo '  <form action="index.php" method="POST">
							<center>
							<p> Registrierung </p>
							<p> Es trat ein Fehler auf </p>
							<table>
							<tr>
								<td> Benutzername : </td>
								<td> <input type="text" name="Benutzername"> </td>
							</tr>
							<tr>
								<td> Passwort : </td>
								<td> <input type="password" name="Passwort"> </td>
							</tr>
							<tr>
								<td> Passwort wiederholen: </td>
								<td> <input type="password" name="WdPasswort"> </td>
							</tr>
							<tr>
								<td> E-Mail-Adresse : </td>
								<td> <input type="text" name="E-Mail"> </td>
							</tr>
							</table> 
							<br />
							<input type="submit" name="Einschreibung" value="Einschreiben">
							<br />
							</center>
							</form>';
						}
						
					}
				}
			else
			{
				if (isset($_POST['Login'])) {
					$myusername = $_POST['Benutzername'];
					$mypassword = $_POST['Passwort'];
					$LOGIN = "SET";
					$sql="SELECT * FROM tblUsers WHERE (Benutzername='".$myusername."') and (Passwort='".$mypassword."')";
					$result=mysql_query($sql);

					$count=mysql_num_rows($result);
					if($count>0){
						$table[0]=mysql_fetch_row($result);
						$_SESSION['Login'] = true; 
						$LOG = 1;
						$_GET['page'] = "profil.php";
						$Online = "1";
						$_SESSION['id'] = $table[0][0];
  						$sql2="UPDATE tblUsers SET Status = '".$Online."' WHERE Benutzername = '".$myusername."'";
						$result2=mysql_query($sql2);
					}
					else {
						$_SESSION['Login'] = false;
						$LOG = 0;
						echo "Passwort oder Username falsch";
					}
				}

				if (isset($_GET['page'])) {
					echo ' <div id="menu"><center>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=profil.php" style="padding-left: 15px;"> Profil </a>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=status.php" style="padding-left: 15px;"> Statussymbole </a>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=aktien.php" style="padding-left: 15px;"> Aktien </a>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=rohstoffe.php" style="padding-left: 15px;"> Rohstoffe </a>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=chat.php" style="padding-left: 15px;"> Chat </a>
					<a href="'. $_SERVER['SCRIPT_NAME'].'?page=rangliste.php" style="padding-left: 15px;"> Rangliste </a>
					</center>
					</div>
					<div id="main2"> ';
					if (isset($_GET['page'])) {
						include 'Skripts/Includes/'.$_GET['page'];
					}
					else {
						include 'Skripts/Includes/profil.php';
					}
					echo '</div>';
				}
				else {
					if ($LOG==0){
						$_GET['page']="";
						echo'
						<center>
						<div id="login"> 
						<form action="index.php" method="post">
						<h1> Login: </h1>
						<table>
						<tr>
							<td> Benutzername : <input type="text" name="Benutzername" > </td>
						</tr>
						<tr>
							<td> Passwort : <input style="margin-left : 30px;" type="Password" name="Passwort"> </td>
						</tr>
						<tr>
							<td> <center> <input type="submit" name="Login" value="Login" maxlength="10"> <input type="submit" name="Registration" value="Registrieren" maxlength="10"> </center> </td>
						</tr>
						</table>
						</form>
						</div>
						</center>
						';
					}
					else {
						$_GET['page']="";
						echo'
						<center>
						<div id="login"> 
						<form action="index.php" method="post">
						<h1> Login: </h1>
						<table>
						<tr>
							<td> Benutzername : <input type="text" name="Benutzername" maxlength="10"> </td>
						</tr>
						<tr>
							<td> Passwort : <input type="Password" name="Passwort" maxlength="10"> </td>
						</tr>
						<tr>
							<td> <input type="submit" name="Login" value="Login" maxlength="10"> <input type="submit" name="Registration" value="Registrieren" maxlength="10"> </td>
						</tr>
						</table>
						</form>
						</div>
						</center>
						';
					}
				}
				}
			}
		?>
 
So, weil ich dieses mal zu faul bin mich durch den Code zu wühlen, bitte ich dich darum, nur die Zeilen herauszukopieren die benötigt werden. Der HTML-Code z.b. ist da schoneinmal komplett sinnlos. Am besten die Zeile um die es geht, mit maximal +/- 5 Zeilen in beiden Richtungen und ggf. woanders definierte Variablen.
Danke! :)
 

Neue Beiträge

Zurück