Funktion gibt die Parameter nicht aus

dg87

Erfahrenes Mitglied
Hallo.

Habe schon getestet ob die Funktion überhaupt aufgerufen wird, mit einem normalen echo befehl der z.b. nur "test" ausgibt, das funktioniert. Ich wollte jedoch überprüfen ob in den Parameter ein Wert drinnen steht, jedoch die gibt er nicht aus. Vielleicht sieht ja einer den Fehler ;-)

Funktion:
PHP:
 function login_check($username,$passwort,$dinhaltname,$dinhaltpasswort)
        {
          
          echo " " .$username. "<br>";
     
        }

Aufruf:

PHP:
 while($row2=mysql_fetch_assoc($result2)) // Daten in row2 sichern
              {/**/}
              if($_POST['einloggen'])
                login_check($_POST['member'],$_POST['passwort'],$row2['username'],$row2['password'])
 
Wo kommt den
PHP:
$username,$passwort,$dinhaltname,$dinhaltpasswort
überhaut her?, kann es evtl. sein das Du die Sachen erst noch via POST oder GET holen mußt

mfg Spikaner
 
Naja der If konstrukt da oben frägt ja ab ob der Submit Button 'einloggen' geklickt wurde und somit werden die Variablen auch per Post übertragen und stehen auch drinnen, aber bei der Funktion sind sie dann weg :eek:

Hier mal ein paar Ausschnitte die relevant sind:

PHP:
$holdat2="SELECT * from usr;";

Dann:

PHP:
 $result2=mysql_query($holdat2) or die (mysql_error()); // Selektiert Daten von usr           
              
              /* ------------------------------- Login Maske ----------------------------------------------*/
              echo "Login: <br>";
              echo "<br>";
              echo "<form action=\"gb.php\" method=\"post\">";
              echo "<table border=\"1\">";
              echo "<tr>";
                echo "<td>";
                               echo "Member: ";
                               echo "<input type=\"text\" name=\"member\">";
                echo "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td>";
                               echo "Passwort: ";
                               echo "<input type=\"password\" name=\"passwort\">";
                echo "</td>";
                echo "</tr>";
                echo "</table>";
                echo "<br>";
                echo "<input type=\"submit\" name=\"einloggen\" value=\"Login\">";
              echo "</form>";
              /*--------------------------------------------------------------------------------------------------*/
              
              while($row2=mysql_fetch_assoc($result2)) // Daten in row2 sichern
              {/**/}
              if($_POST['einloggen'])
                login_check($_POST['member'],$_POST['passwort'],$row2['username'],$row2['password']

Aufruf:
PHP:
 function login_check($username,$passwort,$dinhaltname,$dinhaltpasswort)
        {
          
          echo " " .$username. "<br>";
     
        }
 
aso du willst überprüfen ob der user eingelogt ist dann würde ich das aber über SESSION lösen bsp.(nur eben herauskopiert aus ner kleinen "Asbachsache" von mir
login.php
PHP:
<?php 
// Session starten
session_start ();
require ("config.php");

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ($mysql_host, $mysql_user, $mysql_pw); 
if (!mysql_select_db ($mysql_db, $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "Id, Nickname, email, Vorname, bestaetigt, admin ". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result);
// var_dump($result);
// var_dump($data); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_email"] = $data["email"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 
  $_SESSION["user_bestaetigt"] = $data["bestaetigt"];
  $_SESSION["user_admin"] = $data["admin"];
  header ("Location: drin.php"); 
echo 'blah';
} 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>

checkuser.php
PHP:
<?php 
session_start (); 
if (!isset ($_SESSION["user_id"])) 
{ 
  header ("Location: formular.php"); 
} 
?>

drin.php
PHP:
<?php 
include ("checkuser.php"); 
?> 
<html> 
<head> 
  <title>Interne Seite</title> 
</head> 
<body> 
  BenutzerId: <?php echo $_SESSION["user_id"]; ?><br> 
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br> 
  Nachname: <?php echo $_SESSION["user_email"]; ?><br> 
  uploader: <?php echo $_SESSION["user_besteatigt"]; ?><br>
  admin: <?php echo $_SESSION["user_admin"]; ?><br>
  Vorname: <?php echo $_SESSION["user_vorname"]; ?>
 
  <hr> 
  <a href="logout.php">Ausloggen</a> 
</body> 
</html>

formular.php
PHP:
<?php session_start (); ?>
<html> 
<head> 
  <title>Login</title> 
</head> 

<body> 
<?php 
if (isset ($_REQUEST["fehler"])) 
{ 
  echo "Die Zugangsdaten waren ungültig, oder du bist noch nicht freigeschaltet worden"; 
} 
?>
<div align="center"></br>Uploader Login</br></br></br>
	</p>
	<table border="1" width="160" bordercolorlight="#808080" bgcolor="#C0C0C0">
		<tr>
			<td><form action="login.php" method="post"> Name: <input type="text" name="name" size="20"></td>
		</tr>
		<tr>
			<td> Kennwort: <input type="password" name="pwd" size="20"></td>
		</tr>
		<tr>
			<td><input type="submit" value="Login"></form></td>
		</tr>
	</table>
</div>
</body> 
</html>

logout.php
PHP:
<?php 
// Wird ausgeführt um mit der Ausgabe des Headers zu warten. 
ob_start (); 

session_start (); 
session_unset (); 
session_destroy (); 

header ("Location: formular.php"); 
ob_end_flush (); 
?>

Habe das so zum nachschauen herumliegen.. (sowas kann man ja immerwieder mal gebrauchen) ^^

mfg Spikaner

Und wenn du es mit "einmaligen login" lösen willst musst du mit $_POST[] arbeiten..

mfg Spikaner
 
hey danke. jo das will ich schon mit ner session machen.
naja der zeigts nur nicht an, weil bei mir row2[] nicht in der while schleife war, nur da drinnen gibt er die daten raus, jetzt weiß ich auch warum.
jetzt hab ich halt nur das problem, dass ich alles in einer datei schreiben muss, das heißt ich muss die dateien die du hast in funktionen umschreiben oder?
ich muss das machen, weil das mein arbeitsauftrag ist...

und vielleicht noch folgende sql anweisung erklären und wo das $_REQUEST herkommt
PHP:
$sql = "SELECT ".  
    "Id, Nickname, email, Vorname, bestaetigt, admin ".  
  "FROM ".  
    "benutzerdaten ".  
  "WHERE ".  
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
 
Zuletzt bearbeitet:
Im Prinzip kannst du in die "drin.php" reinschreiben und machen was du willst (ich hab hier einfach nur die ausgabe damals reingeschrieben mit ID benutzernamen etc ob auch alles funktioniert) wichtig ist nur am Anfang der Aufruf der checkuser.php sprich ist Er angemeldet oder net... ansonsten kannst du da reinschreiben was du willst du kannst auch die checkuser ausweiten.. nur bestimmte "Ränge" dürfen was schreiben... und du kannst auch später jeden wert wie benutzer.. über $_SESSION["wert"] jederzeit und überall abrufen/ändern

ahja die register.php hab ich vergessen aber die hasste ja bestimmt schon ^^

$_REQUEST ist veraltet... heißt jetzt eigendlich $_POST.. sag ja "asbach" das sind die daten aus der formular.php

mfg Spikaner
 
Zuletzt bearbeitet:
sind die data[] variablen auch wieder so spezielle variablen.
sorry dass ich so blöd frage aber ich kau mich da grad voll durch.
die tutorials von sessions kapier ich nicht und dieses prog von hier ist ein gutes beispiel es zu verstehen.
ich will meins nicht einfach einbauen, wills auch verstehen.
ne kleine nette erklärung zu jeder datei (nur ne kleine)
wäre sehr sehr nett
 
Zurück