Ich hab in meiner Datei gb (Gästebuch) bei einem Problem gelandet. Ich muss das leider alles in eine Datei schreiben anders gehts ned, is arbeitsanweisung.
Jedes mal wenn ich jetzt meine Seite aktualisieren tu, zeigt es ganz oben (befehl ist auch ganz oben) schon den Inhalt der Variable $_SESSION['member'] obwohl sie eigentlich noch nicht defeniert sein soll. Sorry dass ich die ganze seite reinkopier aber sonst weiß ich nicht wo der fehler legen könnte.
Ich wäre für Tipps sehr dankbar, hier ist z.B. meine Arbeitsanweisung die ich bekommen habe:
also du kannst mal ein gästebuch in php mit ner mysqldb dahinter schreiben.
legst dir mit phpmyadmin die tabelle (id, betreff, nachricht, datum) an und dann gehts los. aber kopier nicht alles ausm netz
eine funktion zum löschen und bearbeiten kannst dann auch noch einbauen. und wennst des hast legs dir noch ne user-tabelle an mit den feldern id, username, password
dann im gästebuch ein loginfeld und jetzt kommts: nach dem login soll ne session gestartet werden, anhand der du abfragen kannst ob der benutzer eingeloggt ist und somit die funktionen zum editieren und löschen freischaltest.
wenn kein benutzer eingeloggt ist -> kein edit und delete.
mach des ganze in einer einzigen php-datei und mit funktionen strukturieren, nicht anhand von unendlich vielen if abfragen
Vielen Dank
Jedes mal wenn ich jetzt meine Seite aktualisieren tu, zeigt es ganz oben (befehl ist auch ganz oben) schon den Inhalt der Variable $_SESSION['member'] obwohl sie eigentlich noch nicht defeniert sein soll. Sorry dass ich die ganze seite reinkopier aber sonst weiß ich nicht wo der fehler legen könnte.
PHP:
<?php echo "ID --> ". $_SESSION['member']; ?>
<html>
<head><title>Gaestebuch</title>
<?php
//Funktionen
function con_sel()
{
// Diese Funktion verbindet zu MYSQL Server und wählt anschließend die Datenbank aus
$dbconnection = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD) or die("Verbindung konnte leider nicht aufgebaut werden <br>");
if($dbconnection)
{
echo " Die Verbindung wurde aufgebaut <br>";
$erfolg = mysql_select_db(MYSQL_DATABASE);
if($erfolg)
{ echo "Datenbank ". MYSQL_DATABASE . " wurde ausgewählt <br>";
return 1;
}
}
}
/////////////////////////////////////////////////////////////////
function formular_eing($eingeloggt) // Eingabe Formular
{
echo "<form action=\"gb.php\" method=\"post\">";
echo "Betreff*:". "<input type=\"text\" name=\"betreff\">";
echo "Name*:" . "<input type=\"text\" name=\"name\">";
echo "<input type=\"submit\" name=\"eintragen\" value=\"Eintragen\"><br>";
echo "Eintrag*:". "<textarea name=\"eintrag\" rows=\"10\" cols=\"50\"></textarea><br>";
if($eingeloggt==1) // Nur wenn er eingeloggt ist, sollen die Buttons zur Verfügung stehen
{
echo "<input type=\"submit\" name=\"aen\" value=\"Ändern\">";
echo "<input type=\"submit\" name=\"loesch\" value=\"Löschen\"><br>";
echo "<br>";
echo "GB-Eintrags nummer*: <input type=\"text\" name=\"zahl\"><br>";
}
echo "<br>";
echo "<br>";
echo "<br>";
echo("Felder mit * sind Eingabepflicht, durch Login stehen Ihnen weitere Funktionen zur Verfügung<br>");
echo "</form>";
}
/////////////////////////////////////////////////////////////////////////////////
function pflicht_eing( $eing_name, $eing_betreff, $eing_eintrag) // Funktion die Eingabedaten an die Datenbank verschickt
{
if( empty($eing_name) || empty($eing_betreff) || empty($eing_eintrag) ) {
return false;
}
$neu_datensatz = "INSERT INTO `eintr` (`betreff`, `nachricht`, `datum`, `name`) VALUES ('".mysql_real_escape_string($eing_betreff)."', '".mysql_real_escape_string($eing_eintrag)."', NOW(), '".mysql_real_escape_string($eing_name)."')";
mysql_query($neu_datensatz) or die(mysql_error());
}
//////////////////////////////////////////////////////////////////////////////////
function login_check($username,$passwort,$dinhaltname,$dinhaltpasswort,$id)
{ //Soll nur ausgeführt werden, wenn Benutzername und Passwort dem der Datenbank entsprechen
if($username == $dinhaltname && $passwort == $dinhaltpasswort)
{
echo "Der Login war erfolgreich<br> ";
$_SESSION['id'] = $id;
$_SESSION['member'] = 'paul';
return $mkay; // Sagt dass man eingeloggt ist.
echo "<br>";
echo "<br>";
echo "<br>";
// echo "<a href=\"logout()\">Ausloggen</a>";
}
}
/////////////////////////////////////////////////////////////////////////////////
function checkuser()
{
if(!isset($_SESSION['id']))
{
formular_eing(0);
}
else
{
formular_eing(1);
}
}
//////////////////////////////////////////////////////////////////////////////////
function logout()
{
echo "palast<br>";
}
?>
</head>
<body>
<?php
//Deklarationen
define('MYSQL_HOST', 'localhost'); // Konstanten zum Verbinden mit MySQL
define('MYSQL_USER', 'root');
define('MYSQL_PASSWORD', 'start');
define('MYSQL_DATABASE', 'gb');
//Variablen
$holdat1 = "SELECT * from eintr ORDER BY datum DESC;";
$holdat2 = "SELECT * from usr;";
// Wert der den GB eintrag herholt, fürs ändern
/************************ Testdaten in Tabellle einfügen ****************************************************/
$gibdat = "INSERT INTO eintr
(betreff,nachricht,datum,name)
VALUES
('Solala','Das ist eine Nachricht von einem Spaceshuttle zur Erde',NOW(),'Hans');";
$gibuser = "INSERT INTO usr
(username,password)
VALUES
('dg87','test');";
con_sel(); //Funktion zum Verbinden und auswählen der Datenbank
?>
<table>
<tr>
<td bgcolor="orange">
<?php // Hier kommt das Login hin
$result=mysql_query($holdat1) or die (mysql_error()); // Selektiert werden geholt
$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>";
/*--------------------------------------------------------------------------------------------------*/
$row2=mysql_fetch_assoc($result2); // Daten in row2 sichern
// Wenn der Login Button betätigt wurde
if($_POST['einloggen'])
login_check($_POST['member'],$_POST['passwort'],$row2['username'],$row2['password'],$row2['id'])
?>
</td>
<td width="200%" bgcolor="yellow">
<?php // Hier kommt das Gästebuch ////////////////////////////////////////////////////////
echo "<div align=\"center\">";
echo "<h1>Gästebuch</h1> <br>";
echo "<br>";
echo "<br>";
echo "Anzahl der GB Einträge: ".mysql_num_rows($result). "<br>"; // Gibt die Anzahl der Einträge aus
echo "Anzahl der Registrierten User: ".mysql_num_rows($result2)."<br>"; // Anzahl der enthaltenen User
?>
</td>
</tr>
</tr>
<td bgcolor="orange">
</td>
<td bgcolor="yellow">
<?php
/////////////////////////////////////Haupt Gästebuch Teil /////////////////////////////////
echo "<div align=\"center\">";
//mysql_query($gibdat) or die(mysql_error()); // Daten werden an die Tabelle geschickt
// $user_result=mysql_query($gibuser) or die (mysql_error()); // Login Daten werden an die Datenbank geschickt
echo "-----------------------------------------------------------------";
while($row = mysql_fetch_assoc($result)) // In $row werden die Inhalte geholt und gesichert
{
//$eing_aen=$eing_aen+1;
echo "<br>";
echo "GB Eintrag nummer: ".$row['id']."<br>";
echo "Betreff: ".$row['betreff']. "<br>";
echo " ". $row['name'] . " schrieb um ".$row['datum'] . " folgendes: <br>";
echo "<br>";
echo "<br>";
echo " ". $row['nachricht']. "<br>";
echo "----------------------------------------------------------------- <br>";
}
checkuser($check);
if($_POST['aen'])
{
$_POST['eintrag']='Du willst aendern du spast<br>';
}
echo "</div>";
?>
</td>
</tr>
</table>
</body>
</html>
Ich wäre für Tipps sehr dankbar, hier ist z.B. meine Arbeitsanweisung die ich bekommen habe:
also du kannst mal ein gästebuch in php mit ner mysqldb dahinter schreiben.
legst dir mit phpmyadmin die tabelle (id, betreff, nachricht, datum) an und dann gehts los. aber kopier nicht alles ausm netz
eine funktion zum löschen und bearbeiten kannst dann auch noch einbauen. und wennst des hast legs dir noch ne user-tabelle an mit den feldern id, username, password
dann im gästebuch ein loginfeld und jetzt kommts: nach dem login soll ne session gestartet werden, anhand der du abfragen kannst ob der benutzer eingeloggt ist und somit die funktionen zum editieren und löschen freischaltest.
wenn kein benutzer eingeloggt ist -> kein edit und delete.
mach des ganze in einer einzigen php-datei und mit funktionen strukturieren, nicht anhand von unendlich vielen if abfragen
Vielen Dank