WinFuture-Forum.de: [php]problem Mit Sessions - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

[php]problem Mit Sessions


#1 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 12:06

Hallo zusammen.

Ich habe da gerade ein kleines Problem mit Sessions bei PHP und bin mir sicher, dass mir hier jemand behilflich sein kann.
Also ich habe eine kleine Seite (es handelt sich um einen Adminbereich), wenn diese aufgerufen wird, dann wird überprüft ob eine Session registriert wurde, dies mache ich so:

    if($_SESSION[adminrecht])
    {
  header("location: ?action=einstellen");
	}

    if(!$_SESSION[adminrecht])
    {
  header("location: ?action=login");
	}


Das funktioniert auch alles, ich könnte auch anstatt "$_SESSION[adminrecht]" einfach "session_is_registered("adminrecht")" schreiben.

So dann geht es weiter.
Falls keine Sessions vorhanden sind, kommt ein Login-Formular, in das ein Passwort eingegeben werden muss.
Dieses Login-Formular überprüft dann weiter...:

	$pass = mysql_real_escape_string($_POST[passwort]);

	if($pass == $adminpw)
	{
        session_register("adminrecht");
        $adminrecht = yes;

 	 header("location: ?action=einstellen");
	}

	if($pass != $adminpw or $pass == "")
	{
  echo '<b>Fehler!</b><br>Das eingegebene Passwort ist nicht richtig.<br><br>
  <a href="?action=login">Zurück zum Login</a>';
	}


Ich habe das Passwort nur mal so als Test in eine externe Datei in einer Variable gespeichert, diese wird weiter oben noch included.
Nun falls das Passwort richtig ist, wird es mit "session_register("adminrecht")" registriert.
Ich habe in einem anderen Thread hier von tobiasndw gelesen, dass man eine Session immer mit "$_SESSION["adminrecht"];" registrieren soll. Wenn ich dies aber mache, dann funktioniert es später nicht.

Nun geht es weiter, falls also das Passwort richtig ist, wird zur Admin-Seite (action=einstellen) weitergeleitet, hier wird folgendermaßen überprüft:

	if($action == "einstellen" and $_SESSION[adminrecht])


Diese Abfrage funktioniert auch, aber nur wenn ich oben "session_register("adminrecht")" benutze. Wenn ich die Session mit "$_SESSION["adminrecht"];" registriere, klappt es nicht (es kommt eine leere Seite).
Das Problem liegt also an der registrierten Session oder an der Abfrage bei action=einstellen.
Ich habe es auch schon mit isset($_SESSION[adminrecht]) probiert, klappt aber nicht.
Wenn ich das "and $_SESSION[adminrecht]" wegmache, dann geht es logischerweise. Also liegt das Problem an den Sessions.

Natürlich habe ich ganz oben auf der Seite "session_register();" und wenn action=logout kommt "session_destroy();".

Kann mir jemand sagen, wo mein Problem liegt und was ich bei Sessions sowieso besser/anders machen kann?
Ich kenne mich mit Sessions noch nicht richtig aus, habe hier eigentlich das erste Mal richtig damit gearbeitet.

Danke schon mal im Voraus für eure Hilfe!
Grüße.
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 13:33

Ich denke mal dass das nicht das Problem ist, aber wenn ich sowas sehe

... and $_SESSION[adminrecht])


dann würde ich als PHP Parser einen Fehler ausspucken. adminrecht müsste nämlich in irgendwelchen Anführungszeichen stehen.

Dieser Beitrag wurde von Floele bearbeitet: 26. März 2005 - 13:33

0

#3 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 13:49

Zitat (Floele: 26.03.2005, 13:33)

Ich denke mal dass das nicht das Problem ist, aber wenn ich sowas sehe

... and $_SESSION[adminrecht])


dann würde ich als PHP Parser einen Fehler ausspucken. adminrecht müsste nämlich in irgendwelchen Anführungszeichen stehen.
<{POST_SNAPBACK}>


Das ist nicht das Problem, habe es getestet. Egal ob ich es in irgendwelchen Anführungszeichen schreibe oder nicht, es geht und es taucht kein Fehler auf.
Aber dann mache ich eben Zeichen, wenn es besser ist :P

Aber was ist das Problem?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#4 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 13:53

Zitat

Aber dann mache ich eben Zeichen, wenn es besser ist wink.gif


Hast du das jetzt bei allen gemacht? Wenn du keine Anführungszeichen benutzt, hat der Wert nämlich eine ganz andere Bedeutung.
0

#5 Mitglied ist offline   Urza 

  • Gruppe: aktive Mitglieder
  • Beiträge: 255
  • Beigetreten: 16. September 04
  • Reputation: 0
  • Wohnort:Dominaria/Aventurien

geschrieben 26. März 2005 - 13:53

Zitat

Ich habe in einem anderen Thread hier von tobiasndw gelesen, dass man eine Session immer mit "$_SESSION["adminrecht"];" registrieren soll. Wenn ich dies aber mache, dann funktioniert es später nicht.


wenn ich mich gerade nicht falsch erinnere registrierst du damit keine session sondern nur eine variable innerhalb der session. es sähe also so aus:
$_SESSION['adminrecht'] = $wert;

edit:
hm am besten liest du dir mal
http://de.php.net/session
durch für ein allgemein besseres verständis von sessions

Zitat

Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit des Codes wird die Verwendung von $_SESSION  (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) empfohlen. Mit $_SESSION werden die Funktionen session_register(), session_unregister() und session_is_registered() nicht benötigt. Auf die Session-Variablen kann wie auf jede normale Variable zugegriffen werden.

Dieser Beitrag wurde von Urza bearbeitet: 26. März 2005 - 13:57

0

#6 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 13:57

Zitat (Floele: 26.03.2005, 13:53)

Hast du das jetzt bei allen gemacht? Wenn du keine Anführungszeichen benutzt, hat der Wert nämlich eine ganz andere Bedeutung.
<{POST_SNAPBACK}>


Also ich habe es überall mit den '-Anführungszeichen gemacht und die Session mit "$_SESSION['adminrecht'];" versucht zu registrieren.
Es geht alles, bis auf den Login. Eigentlich müsste dann bei action=einstellen der Inhalt kommen, es kommt aber eine leere Seite.
Wenn ich es wieder mit "session_register('adminrecht';" mache, geht es...
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#7 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 14:00

@Urza

Danke, aber wenn ich es mit $_SESSION['adminrecht'] = $adminrecht; mache, dann geht es auch nicht...
Ist vielleicht meine Abfrage falsch?

Danke, ich werde es mal durchlesen!
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#8 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 14:06

Mein Vorschlag (nach dem Durchlesen und besserem Verständnis :P ):

if($pass == $adminpw)
{
       $_SESSION['adminrecht'] = TRUE; // 'Yes' bedeutet für PHP gar nichts
       header("Location: ?action=einstellen");
}

[...]

if($action == "einstellen" and $_SESSION['adminrecht'])
{
...
}

/* oder  if($action == "einstellen" and $_SESSION['adminrecht'] === TRUE) */

Dieser Beitrag wurde von Floele bearbeitet: 26. März 2005 - 14:06

0

#9 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 14:17

Prima @Floele ich danke dir abartig, du hilfst mir immer weiter :P
Jetzt geht es!

Noch eine Frage zu PHP (da muss ich jetzt nicht extra ein neues Thema eröffnen):
Also ich habe eine Seite (1), oben beginnt eine Function, nach der Function kommt eine while-Schleife, die den Inhalt aus der DB ausliest und in einen Array speichert. Es kommen ein paar Abfragen aus der DB auf dieser Seite und so weiter.. Später wird die Schleife beendet und die Function auch.
Auf einer anderen Seite (2) include ich die Seite (1) und führe die Function davon aus. Wenn ich jetzt einen Inhalt aus der DB ausgeben will, kann ich dann ganz normal mit dem Array der vorherigen while-Schleife, oder muss ich noch mal eine while-Schleife beginnen?
Ich habe es mal getestet: Bei meinem Apache Server geht es nur, wenn ich in der Seite (2) die while-Schleife noch mal beginne. Wenn ich das dann aber online teste, kommt eine Fehlermeldung (wegen den 2 Schleifen).
Wenn ich aber keine zweite Schleife mehr beginne, dann kommt gar kein Inhalt und kein Fehler...

Wie kann ich das beheben?!?!

Danke euch!
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#10 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 14:31

Zitat (Corey: 26.03.2005, 14:17)

Prima @Floele ich danke dir abartig, du hilfst mir immer weiter :P
Jetzt geht es!


Freut mich :P

Zitat

Also ich habe eine Seite (1), oben beginnt eine Function,


Ich würde sagen dass eine "Funktion" beginnt, im Deutschen zumindest :blink:

Also zum Problem: Deine Beschreibung ist irgendwie ein bisschen zu abstrakt. Aber wenn du darauf hinauswillst das Ergebnis einer SQL Abfrage ($result = mysql_query(...)) zweimal mit einer while-Schleife zu durchlaufen, dann wird es nicht funktionieren. Du könntest in diesem Fall die Ergebnisse beim ersten Mal zum Beispiel in einem Array speichern.
0

#11 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 14:53

Super Floele :P

Ich weiß schon, dass man Funktion mit k schreibt, schreibe es aber inzwischen automatisch mit c *gg*

So also ich versuche es mal besser zu erklären, das ist jetzt aber nur ein Testbeispiel:

Also meine Seite namens design.php hat folgenden Inhalt:

<?
	include 'functions.php';
	db_connect();

  function seite_anfang($Titel)
  {

 	 $dbsettings = mysql_query("SELECT * FROM einstellungen");

    while($set = mysql_fetch_array($dbsettings))
    {
?>

<html>

<head>
	<title><? echo $set[seitenname], ' - ', $Titel; ?></title>

    <style type="text/css">
	body
  {
  font-family:<? echo $set[schriftart]; ?>;
  font-size:<? echo $set[schriftgrad]; ?>;
  color:<? echo $set[schriftfarbe]; ?>;
  background-color:<? echo $set[hintergrundfarbe]; ?>;
	}
	a
	{
  color:<? echo $set[linkfarbe]; ?>;
  text-decoration:none;
  font-weight:bold;
	}
	a:hover
	{
  color:<? echo $set[linkfarbe_hover]; ?>;
  text-decoration:underline;
	}
    </style>
</head>

<body>

<?
  }
 	 function seite_ende()
 	 {
?>


</body>

</html>

<?
    }
 	 }
?>


Hier habe ich praktisch einen Seitenaufbau, die while-Schleife beinhaltet Einstellungen (settings -> set) aus der DB für das Aussehen!
Das ist ja nur mal so als Test...

Nun das ist der Inhalt meiner "index.php":

<?
	include 'design.php';
	seite_anfang("Einstellungen");

    $action = $_GET['action'];

  $dbsettings = mysql_query("SELECT * FROM einstellungen");

 	 while($set = mysql_fetch_array($dbsettings))
 	 {

/*
Hier befinden sich weitere Inhalte und auch Abfragen aus der DB...
*/


 	 }
	seite_ende();
?>


So das ist jetzt nur mal ein Testinhalt, eigentlich gar keiner.
Wenn ich die while-Schleife hier weglasse, dann geht es nicht.
Aber weil es doch durch eine Funktion geht, müsste es doch klappen oder?
Weil wenn ich es so lasse, dann gibt der Server eine Fehlermeldung!

Besser so?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#12 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 15:32

Also dein Konstrukt ist ja sehr merkwürdig. Zuersteinmal würde ich die Funktionen seite_anfang und seite_ende nicht ineinander verschachteln. Dann würde ich die while-Schleifen komplett durch einfache Zuweisungen ersetzen, da du ein head-Element bestimmt nicht zweimal haben willst. Außerdem benutzt du wieder die Anführungszeichen nicht, was kein guter Stil ist.
Davon abgesehen würde ich auf Funktionen hier komplett verzichten und 'normale' "Includes" daraus machen.

Bsp:

//// page_top.inc
<?php
include 'functions.php';
db_connect();

$dbsettings = mysql_query("SELECT * FROM einstellungen");
set = mysql_fetch_array($dbsettings);
?>
<html>

<head>
<title><? echo $set['seitenname'], ' - ', $Titel; ?></title>

<style type="text/css">
body
 {
 font-family:<? echo $set['schriftart']; ?>;
 font-size:<? echo $set['schriftgrad']; ?>;
 color:<? echo $set['schriftfarbe']; ?>;
 background-color:<? echo $set['hintergrundfarbe']; ?>;
}
</style>
</head>
[...]
///Ende, das Gleiche dann noch mal für das Seitenende

///normale Seite:
<?php include('page_top.inc'); ?>
Dein Seiteninhalt
<?php include('page_bottom.inc'); ?>

0

#13 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 15:49

@Floele

Danke erstmal^^
Ich dachte bisher immer, dass man den Inhalt der DB nur mit einer Schleife ausgeben kann, aber mit
 	 $dbsettings = mysql_query("SELECT * FROM einstellungen");

    $set = mysql_fetch_array($dbsettings);

ist es wesentlich einfacher :P
Aber du hast das Dollarzeichen vor dem set vergessen gehabt^^

So zu meinem komischen Aufbau, das sagen viele.
Ich mache das immer gern mit Funktionen, weil ich später mehrere Tabellen oder Container habe und an einer bestimmten Stelle der Seiteninhalt sein soll.... das tut ja auch nichts zur Sache.

Ach und bei der Aushabe von arrays brauche ich doch keine Anführungszeichen da geht beides und es spart Platz!

So nun noch mal ein Problem mit den Sessions, das mich richtig nervt...
Es kommt folgende Fehlermeldung:

Zitat

Warning: Cannot modify header information - headers already sent by (output started at /home/htdocs/web6/html/adco-cms/design.php:16) in /home/htdocs/web6/html/adco-cms/einstellungen.php on line 19


Das liegt wohl daran, dass ich die Session-Abfragen mitten in der Datei habe.
Ich gebe euch mal hier den gesamten Inhalt meiner "einstellungen.php"-Datei. Diese soll sowas wie ein Adminbereich sein, nur mal so als Test.

<?
    session_start();
	include 'design.php';
	seite_anfang("Einstellungen");

    $action = $_GET['action'];

	if(!isset($action))
	{
  $action = "pruefenobadmin";
	}


if($action == "pruefenobadmin")
{
    if($_SESSION['adminrecht'])
    {
  header("location: ?action=einstellen");
	}

    if(!$_SESSION['adminrecht'])
    {
  header("location: ?action=login");
	}
}

if($action == "login")
{
?>

	Bitte das Passwort für den Administrationsbereich eingeben:<br><br>
	<form action="?action=loginpruefen" method="post">
	Passwort:<br>
	<input type="password" name="passwort">
	<br><br>
	<input type="submit" value="Login">
	</form>

<?
}
	include 'config.php';

if($action == "loginpruefen")
{
	$pass = mysql_real_escape_string($_POST[passwort]);

	if($pass == $adminpw)
	{
  $_SESSION['adminrecht'] = TRUE;

 	 header("location: ?action=einstellen");
	}

	if($pass != $adminpw or $pass == "")
	{
  echo '<b>Fehler!</b><br>Das eingegebene Passwort ist nicht richtig.<br><br>
  <a href="?action=login">Zurück zum Login</a>';
	}
}

if($action == "einstellen" and $_SESSION['adminrecht'])
{
?>

<span style="font-size:x-large; font-weight:bold;">Einstellungen</span><br><br>
<b>Wichtig:</b> Diese Einstellungen werden auf der gesamten Seite wirksam<br>
Bitte keine Felder leer lassen, sonst werden die Standard-HTML-Werte benutzt
<br><br>

<form action="?action=speichern" method="post">

Seitenname:<br>
<input type="text" size="20" name="seitenname" value="<? echo $set[seitenname]; ?>"><br><br>

Schriftart:<br>
<select name="schriftart">
<option selected><? echo $set[schriftart]; ?></option>
<option>Verdana</option>
<option>Arial</option>
<option>Courier New</option>
<option>Times New Roman</option>
<option>Tahoma</option>
<option>Comic Sans MS</option>
<option>MS Sans Serif</option>
<option>Lucida Sans</option>
</select><br><br>

Schriftgrad:<br>
<input type="text" size="20" name="schriftgrad" value="<? echo $set[schriftgrad]; ?>"><br><br>

Schriftfarbe:<br>
<input type="text" size="20" name="schriftfarbe" value="<? echo $set[schriftfarbe]; ?>"><br><br>

Linkfarbe:<br>
<input type="text" size="20" name="linkfarbe" value="<? echo $set[linkfarbe]; ?>"><br><br>

Linkfarbe Mouseover:<br>
<input type="text" size="20" name="linkfarbe_hover" value="<? echo $set[linkfarbe_hover]; ?>"><br><br>

Schriftfarbe:<br>
<input type="text" size="20" name="schriftfarbe" value="<? echo $set[schriftfarbe]; ?>"><br><br>

Hintergundfarbe:<br>
<input type="text" size="20" name="hintergrundfarbe" value="<? echo $set[hintergrundfarbe]; ?>"><br><br>

<input type="submit" value="Speichern">
</form>

<br>
<center><a href="?action=logout">Logout</a></center>

<?
}

if($action == "speichern")
{
	$seitenname = mysql_real_escape_string($_POST[seitenname]);
	$schriftart = mysql_real_escape_string($_POST[schriftart]);
	$schriftgrad = mysql_real_escape_string($_POST[schriftgrad]);
	$schriftfarbe = mysql_real_escape_string($_POST[schriftfarbe]);
	$linkfarbe = mysql_real_escape_string($_POST[linkfarbe]);
	$linkfarbe_hover = mysql_real_escape_string($_POST[linkfarbe_hover]);
	$hintergrundfarbe = mysql_real_escape_string($_POST[hintergrundfarbe]);

  $speichern = mysql_query("UPDATE einstellungen SET
       	 seitenname = '$seitenname',
       	 schriftart = '$schriftart',
       	 schriftgrad = '$schriftgrad',
       	 schriftfarbe = '$schriftfarbe',
       	 linkfarbe = '$linkfarbe',
       	 linkfarbe_hover = '$linkfarbe_hover',
       	 hintergrundfarbe = '$hintergrundfarbe'");

  if($speichern == true)
  { echo 'Die Einstellungen wurden erfolgreich gespeichert!<br><br>
  <a href="?action=einstellen">Zurück zu den Einstellungen</a>'; }

  if($speichern == false)
  { echo 'Es ist ein <b>Fehler</b> aufgetreten!<br><br>
  <a href="?action=einstellen">Zurück zu den Einstellungen</a>'; }
}

if($action == "logout")
{
	session_destroy();
	echo 'Erfolgreich ausgeloggt!<br><br>
	<a href="?action=login">Zum Login</a>';
}



	seite_ende();
?>


So ich habe nun mehrere Abfragen für die Sessions.
Diese geben wahrscheinlich auch das oben genannte Problem.

Was wäre nun eine Lösung, wie ich diesen Aufbau auch ohne Probleme hinbekomme?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#14 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 26. März 2005 - 16:16

Zitat (Corey: 26.03.2005, 15:49)

Ich dachte bisher immer, dass man den Inhalt der DB nur mit einer Schleife ausgeben kann, aber mit ...ist es wesentlich einfacher :P


Eine Schleife braucht man nur, wenn man mehrere Zeilen ausliest, ist eigentlich logisch.

Zitat

So zu meinem komischen Aufbau, das sagen viele.
Ich mache das immer gern mit Funktionen, weil ich später mehrere Tabellen oder Container habe und an einer bestimmten Stelle der Seiteninhalt sein soll.... das tut ja auch nichts zur Sache.


Naja, wenn du damit besser klar kommst...

Zitat

Ach und bei der Aushabe von arrays brauche ich doch keine Anführungszeichen da geht beides und es spart Platz!


Doch! Die braucht man immer. Dass es auch ohne funktioniert liegt nur daran, dass PHP sehr tolerant ist.

Zitat

So nun noch mal ein Problem mit den Sessions, das mich richtig nervt...
Es kommt folgende Fehlermeldung:


Ist eindeutig wo der Fehler liegt. Zuersteinmal darf vor dem ersten <?php ( <? ist als veraltet oder "missbilligt" wie man so schön sagt einzustufen) kein einziges Leerzeichen oder eine Leerzeile stehen. Es muss ganz an den Dateianfang.

Dann darfst du "header()" auch nicht mehr benutzen, sobald ein einziges Zeichen deiner Datei ausgegeben wurde. Beispiel:

<?php
///falsch
echo 'test';
header('Location:....');
?>


<?php
///falsch
irgendeinbefehlderkeinentextausgibt();
?>
<html>und anderer text
<?php header('Location:....'); ?>


<?php
///auch falsch
header('Location:....');
?>


Folglich müssen alle Überprüfungen an den Dateianfang.

Dieser Beitrag wurde von Floele bearbeitet: 26. März 2005 - 16:18

0

#15 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 26. März 2005 - 16:18

OK und wie mache ich es dann RICHTIG?
Kannst mir ein Beispiel geben oder meinen Code bearbeiten?

THX
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0