WinFuture-Forum.de: Gästebuch... - WinFuture-Forum.de

Zum Inhalt wechseln

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

Gästebuch... wieder Probleme


#1 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 11. August 2011 - 20:42

Hallo alle zusammen,

ich hab wieder mal ein kleines Problem mit meinem Gästebuch:

<?php
			$user = $_POST["name"];
			/*$user = htmlentities($user);*/
				$user = str_replace ("ü", "ü", $user);
 				$user = str_replace ("Ãœ", "Ü", $user);
 				$user = str_replace ("ö", "ö", $user);
 				$user = str_replace ("Ö", "Ö", $user);
 				$user = str_replace ("ä", "ä", $user);
 				$user = str_replace ("Ã\"", "Ä", $user);
 				$user = str_replace ("ß", "ß", $user);
			$inhalt = $_POST["inhalt"];
			/*$user = htmlentities($user);*/
				$inhalt = str_replace ("ü", "ü", $inhalt);
 				$inhalt = str_replace ("Ãœ", "Ü", $inhalt);
 				$inhalt = str_replace ("ö", "ö", $inhalt);
 				$inhalt = str_replace ("Ö", "Ö", $inhalt);
 				$inhalt = str_replace ("ä", "ä", $inhalt);
 				$inhalt = str_replace ("Ã\"", "Ä", $inhalt);
 				$inhalt = str_replace ("ß", "ß", $inhalt);
			$inhalt = str_replace("\n", "<br>", $inhalt);
  			$datum= date("d.m.Y H:i");
   			$eintrag="|$user|$datum|$inhalt";
   			$datei = fopen("gaestebuch.txt", "a");
   			fwrite($datei, "\n".$eintrag);
   			fclose($datei);
   			echo 'Ihr Eintrag wurde erfolgreich gespeichert.';
		?>
<!--- Jetzt die Ausgabe --->

<?php
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

foreach($beitrag as $ausgabe)
	{
		$ausgabe = stripslashes($ausgabe);
		$zerlegen = explode("|", $ausgabe);
		
		echo "
		<table class=\"form\" align=\"center\" cellspacing=\"0\" cellpadding=\"5\" width=\"75%\">
		<tr>
		<td>
		Von <b>$zerlegen[1]</b>
		am $zerlegen[2]Uhr:
		</td>
		</tr>
		<tr>
		<td>
		$zerlegen[3]
		</td>
		</tr>
		</table><br>
		";
	}
?>

<!---Eingabe im Formular--->

<form action="neuerbeitrag.php" method="post" name="Formular" onsubmit="return chkGaestebuch()">
		Ihr Name:*<br />
		<input class="form" name="name" size="40"><br /><br />
		Inhalt:*<br />
        <input type="text" name="zeichen" value="150" size="2" />
        <br />
		<textarea class="form" name="inhalt" cols="40" rows="12" wrap="physical" onKeyDown="zeichenkontrolle()"></textarea>
        <br />
        <input type="submit" value="Absenden"><input type="reset" value="Zurücksetzen" /> 
		<p class="regel">*Pflichtfeld</p>
		</form>



und zwar erzeugt mir firefox bei einem neuem Beitrag 1x den Beitrag mit Name, Datum, Inhalt und 1x eine leere Box mit... nix:

Angehängtes Bild: Unbenannt-2.jpg
Das entsteht in FF bei einem Beitrag. Im IE ist die obere Box weg. Es hat ne Zeitlang immer funktioniert...


Kann mir einer den Fehler nennen? Oder mir evtl. sogar zeigen wie es mit ner Datenbank funktioniert? Mit ner Datenbank hab ich es noch nicht hinbekommen <_< Da steht dann immer "Von am 01.01.1970 01:00 " :lol:
0

Anzeige



#2 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 11. August 2011 - 21:04

Wenn bei der Datenbankvariante 1.1.1970 steht, dann liegt der Fehler beim Wert eintragen oder auslesen. Also entweder läuft was schief und es wird 0 in die Datenbank geschrieben oder, wenn in der Datenbank der Wert richtig steht, dann ist der Fehler irgendwo beim Auslesen und es wird einfach nichts übergeben und die Variable ist 0. Der 1.1.1970 ist einfach nur das Datum für den Unix-Timestamp 0.
Das ist meist nur ein ganz kleiner Fehler, irgendwo in der Berechnung ein falscher Buchstabe in der Variable oder sowas.

Dieser Beitrag wurde von Holger_N bearbeitet: 11. August 2011 - 21:06

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#3 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 11. August 2011 - 21:28

Vllt. knnst du dir das ja mal anschauen:

Angehängte Datei  gaestebuch2.rar (3,41K)
Anzahl der Downloads: 109
0

#4 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 11. August 2011 - 21:52

probier mal in der Abfrage statt

$datum = date("d.m.Y H:i", $row->datum);



mit

$datum = date("d.m.Y H:i", $row['datum']);





Wobei ich das aber auch anders mache. Ich schreib in der Abfrageschleife erst alle Datensätze in ein Array und mache dann die eigentliche Ausgabe in einer neuen Schleife.

Dieser Beitrag wurde von Holger_N bearbeitet: 11. August 2011 - 21:55

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#5 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 11. August 2011 - 22:03

Fatal error: Cannot use object of type stdClass as array in W:\htdocs\scripts\gaestebuch2\beitrag.php on line 48


Kann ich jetzt irgendwie wenig mit anfangen, mit der Meldung... das Bezieht sich aber auf das o.g., was ich ändern sollte. :unsure:


EDIT:

für name und inhalt ist das auch noch mit $row->inhalt; bzw. $row->name;
soll ich das auch anpassen?

Dieser Beitrag wurde von J000S bearbeitet: 11. August 2011 - 22:05

0

#6 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 11. August 2011 - 22:25

Beitrag anzeigenZitat (J000S: 11. August 2011 - 22:03)

Fatal error: Cannot use object of type stdClass as array in W:\htdocs\scripts\gaestebuch2\beitrag.php on line 48


Kann ich jetzt irgendwie wenig mit anfangen, mit der Meldung... das Bezieht sich aber auf das o.g., was ich ändern sollte. :unsure:


EDIT:

für name und inhalt ist das auch noch mit $row->inhalt; bzw. $row->name;
soll ich das auch anpassen?



Also ich schreib das immer so. Um dass es einheitlich ist würd ich sagen ja, aber wenn es funktioniert isses im Prinzip egal. Ich weiß auch nicht, welche Variante moderner ist. Manchmal veraltet ja auch was und wenn man da nicht auf dem Laufenden ist, funktioniert irgendwas plötzlich nicht mehr, wenn der Provider die PHP-Version aktualisiert.

Achso, vielleicht geht auch die ganze Abfrage so nicht, dann teil das ruhig auf in zwei Schritte


$datum1 = $row['datum'];
$datum = date("d.m.Y H:i", $datum1);



Dieser Beitrag wurde von Holger_N bearbeitet: 11. August 2011 - 22:30

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#7 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 11. August 2011 - 22:34

mit den [] geht gar nicht. Dreamweaver sagt mir direkt das der Code nicht funktioniert :(


EDIT:

mit dem
$datum1 = $row['datum'];
$datum = date("d.m.Y H:i", $datum1);


meckert DW zwar nicht, aber ich bekomme wieder die php Error msg:
Fatal error: Cannot use object of type stdClass as array in W:\htdocs\scripts\gaestebuch2\beitrag2.php on line 26

Dieser Beitrag wurde von J000S bearbeitet: 11. August 2011 - 22:38

0

#8 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 11. August 2011 - 22:47

Beitrag anzeigenZitat (J000S: 11. August 2011 - 22:34)

mit den [] geht gar nicht. Dreamweaver sagt mir direkt das der Code nicht funktioniert :(


EDIT:

mit dem
$datum1 = $row['datum'];
$datum = date("d.m.Y H:i", $datum1);


meckert DW zwar nicht, aber ich bekomme wieder die php Error msg:
Fatal error: Cannot use object of type stdClass as array in W:\htdocs\scripts\gaestebuch2\beitrag2.php on line 26



Och dann mach doch mal als Array


$datum1[0] = $row['datum'];
$datum = date("d.m.Y H:i", $datum1[0]);



Wobei das aber ganz (vorsichtig gesagt) ungewöhlich programmiert ist so.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#9 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 11. August 2011 - 22:55

wieder das gleiche Ergebnis :angry:


EDIT:

In der DB Tabelle steht aber alles korrekt drin :mellow:

Dieser Beitrag wurde von J000S bearbeitet: 11. August 2011 - 22:56

0

#10 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.666
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 18. August 2011 - 09:42

probiers mal mit den mysql datumsfunktionen und ner subquery

SELECT ID as eID, Name, Inhalt, (SELECT DATE_FORMAT(Datum,'%d.%m %Y %H:%i') FROM Gaestebuch where ID=eID) as Datum FROM Gaestebuch WHERE aktiv = '1' ORDER BY id DESC LIMIT $start, $eintraege_pro_seite

Dieser Beitrag wurde von Ludacris bearbeitet: 18. August 2011 - 09:44

0

#11 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 18. August 2011 - 10:00

Könnte es sein, dass in der Datenbank die Timecodespalte als Text und nicht als Zahl definiert ist?
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#12 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 18. August 2011 - 10:02

Das werde ich mal alles machen, wenn ich heute Nachmittag wieder zu Hause bin :)
0

#13 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.666
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 19. August 2011 - 15:41

Beitrag anzeigenZitat (Holger_N: 18. August 2011 - 10:00)

Könnte es sein, dass in der Datenbank die Timecodespalte als Text und nicht als Zahl definiert ist?


Ein Datum sollte nicht als zahl sondern als datetime oder Date angegeben werden
0

#14 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 19. August 2011 - 18:53

Beitrag anzeigenZitat (Ludacris: 18. August 2011 - 09:42)

probiers mal mit den mysql datumsfunktionen und ner subquery

SELECT ID as eID, Name, Inhalt, (SELECT DATE_FORMAT(Datum,'%d.%m %Y %H:%i') FROM Gaestebuch where ID=eID) as Datum FROM Gaestebuch WHERE aktiv = '1' ORDER BY id DESC LIMIT $start, $eintraege_pro_seite


Undeclared variable: $start :unsure:
0

#15 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.666
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 19. August 2011 - 21:32

komisch, das start und eintraege_pro_seite steht in deinem code drinenn.. egal: las das limit $start, $eintraege_pro_seite weg
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

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