IP Adresse + Zeit
Claudia
- php
Hallo,
1. Frage
wie kann ich beim Eintrag in die Datenbank gleich die IP Adresse mit eintragen?
2. Frage
Wie kann ich nur die Zeit in ein Feld schreiben lassen. Also das Datum mache ich mit NOW() wie kann ich das mit der Zeit machen? Also ich will nicht das Datum mit der Zeit machen es soll wirklich beides in einer extra Tabelle Spalte in der Tabelle in der DB stehen :-)
Gruß Claudia
Hi Claudia,
- Frage
wie kann ich beim Eintrag in die Datenbank gleich die IP Adresse mit eintragen?
Mache dir eine Spalte für die IP (Varchar 15) und schreibe dort den Wert aus $_SERVER['REMOTE_ADDR'] rein.
- Frage
Wie kann ich nur die Zeit in ein Feld schreiben lassen. Also das Datum mache ich mit NOW() wie kann ich das mit der Zeit machen? Also ich will nicht das Datum mit der Zeit machen es soll wirklich beides in einer extra Tabelle Spalte in der Tabelle in der DB stehen :-)
Was bringt dir das? Mache eine Spalte DATETIME, in die lässt du mit NOW() den Zeitpunkt reinschreiben. Beim Auslesen kannst du das dann mittels DATE_FORMAT (weiter unten auf der Seite) mal in ein Datum oder mal in eine Zeit umwandeln - ganz nach belieben.
MfG, Dennis.
Hi Dennis,
Mache dir eine Spalte für die IP (Varchar 15) und schreibe dort den Wert aus $_SERVER['REMOTE_ADDR'] rein.
danke für deine Hilfe werde das gleich mal versuchen ob das auch geht, wenn nicht dann melde ich mich nochmals :-)
Was bringt dir das? Mache eine Spalte DATETIME, in die lässt du mit NOW() den Zeitpunkt reinschreiben. Beim Auslesen kannst du das dann mittels DATE_FORMAT (weiter unten auf der Seite) mal in ein Datum oder mal in eine Zeit umwandeln - ganz nach belieben.
Na ja was bringt mir das das kann ich dir sagen, dann habe ich einfach alles in einer Extra spalte denn ich will wirklich das Datum und auch die Zeit in einer Extra spalte haben denn ich will dann damit auch noch mehr machen und dafür brauch ich das :-(
Gruß Claudia
Hi Claudia,
Was bringt dir das? Mache eine Spalte DATETIME, in die lässt du mit NOW() den Zeitpunkt reinschreiben. Beim Auslesen kannst du das dann mittels DATE_FORMAT (weiter unten auf der Seite) mal in ein Datum oder mal in eine Zeit umwandeln - ganz nach belieben.
Na ja was bringt mir das das kann ich dir sagen, dann habe ich einfach alles in einer Extra spalte denn ich will wirklich das Datum und auch die Zeit in einer Extra spalte haben denn ich will dann damit auch noch mehr machen und dafür brauch ich das :-(
Ich bin mir sicher, dass du das alles auch mit einer Spalte machen könntest. Du solltest sowieso immer schauen, dass du nicht mehr Spalten als nötig hast - braucht alles nur Speicherplatz und raubt bei größeren Sachen Performance.
Hier mal ein Beispiel wie du an Datum und Uhrzeit aus einem DATETIME Feld kommst:
SELECT
DATE_FORMAT(datumsspalte, "%Y-%m-%d") AS datum
DATE_FORMAT(datumsspalte, "%H:%I") AS uhrzeit
FROM
meinetabelle
Nutzt du dann z.B.
$_data = mysql_fetch_assoc(...)
So solltest du in $_data['datum'] das Datum und in $_data['uhrzeit'] die Uhrzeit haben.
MfG, Dennis.
Hi Dennis,
Ich bin mir sicher, dass du das alles auch mit einer Spalte machen könntest. Du solltest sowieso immer schauen, dass du nicht mehr Spalten als nötig hast - braucht alles nur Speicherplatz und raubt bei größeren Sachen Performance.
hmm ich denke wir haben so ca. 1500 Einträge dann drin wenn alles fertig ist. Das dürfte ja für eine DB noch nicht groß sein oder?
Hier mal ein Beispiel wie du an Datum und Uhrzeit aus einem DATETIME Feld kommst:
SELECT
DATE_FORMAT(datumsspalte, "%Y-%m-%d") AS datum
DATE_FORMAT(datumsspalte, "%H:%I") AS uhrzeit
FROM
meinetabelleNutzt du dann z.B.
$_data = mysql_fetch_assoc(...)So solltest du in $_data['datum'] das Datum und in $_data['uhrzeit'] die Uhrzeit haben.
Danke für das Beispiel. Hmm muss ich mal mit meinem Kollegen reden ob ich das so machen kann oder ob er wirklich zwei Spalten braucht. Ach ja aber wenn ich das so mache wie du mir das gerade mit der IP gesagt hast dann kommt eine Felhermeldung siehe Oben in einem anderen Posting im gleichen Tread
Gruß Claudia
Hallo,
ich habe das nun mal so geamcht, wie Dennis mir das gerade geschrieben hat, aber leider geht das nicht. Wenn ich das so mache, dann kommt folgende Meldung:
Parse error: parse error, unexpected '%' in /www/htdocs/v148718/Test/interaktiv/gaestebuch.php on line 183
So meine Abfrage mich ich nun so:
<?php // auslesen der Daten//
$sql = "SELECT
name,
email,
url,
text,
betreff,
DATE_FORMAT(datum, "%Y-%m-%d") AS datum,
DATE_FORMAT(datum, "%H:%I") AS uhrzeit
FROM
gastebuch
ORDER BY
datum DESC
";
$return = mysql_query($sql) OR die(mysql_error());
?>
<?php
while($_data = mysql_fetch_assoc($return))
{
?>
wo mache ich denn was falsch?
Gruß Claudia
wo mache ich denn was falsch?
Du stolperst immer wieder über die gleichen einfachen Fehler
$string = "bla "fasel" bla";
Lerne endlich, wie man mit String in PHP umgeht!
Was meinst du denn damit wo habe ich das was vergessen? also wenn ich das oben drüber ansehen dann habe ich doch nichts falsch gemacht :-(
Ok hab es hin bekommen, danke für eure Hilfee :-)
Hi Claudia,
Was meinst du denn damit wo habe ich das was vergessen? also wenn ich das oben drüber ansehen dann habe ich doch nichts falsch gemacht :-(
Ein einfacher Syntax Highlighter würde dir das Problem doch schon zeigen - mit welchem Editor arbeitest du denn? Ein kostenloser, zu empfehlender wäre Weaverslave.
Was diesmal dein Fehler war, du hast geschrieben:
$sql = "blabla DATE_FORMAT("%Y") blabla";
^ Hier fängt ^ Hier hört er
ein String wieder auf
an ^ und hier fängt
wieder ein ganz
neuer an.
Also es wäre genau das gleiche wie:
$sql = "blablabla" % "blablabla";
Da % aber ein mathematisches Rechenzeichen ist, welches hier natürlich nicht angewandt werden kann, da man mit Zeichenketten (Buchstaben) ja nicht rechnen kann, beschwert sich PHP.
Sag mal, du kennst aber schon die offizielle PHP Seite und das deutsche PHP Handbuch?
Warum kannst du dann nicht einfach da nachlesen??
Vielleicht solltest du mal anfangen mit Grundlagen der PHP Syntax, dann Grundlagen der Variablendefinition und jetzt ganz speziell für diesen Fall: Strings und Zeichenketten - früher oder später wirst du dann auch noch die Operatoren, Kontrollstrukturen und selbstdefinierte Funktionen benötigen.
Dann fängst du mal mit einem einfachen Script an:
<?php
//Definition einer Variablen
$name = "Dennis";
//Verschiedene Ausgaben
echo "Hallo" . $name . "<br>\n";
echo "Hallo $name" . "<br>\n";
echo 'Hallo' . $name . "<br>\n";
echo 'Hallo $name' . "<br>\n";
?>
Lasse dieses Script mal laufen und versuche zu begreifen was, wie und warum das passiert, was du siehst.
<?php
echo "<span style=\"color:blue;\">Blauer Text</span><br>\n";
echo '<span style="color:green">Grüner Text</span><br>\n";
?>
Verdeutliche dir die beiden Methoden hier so etwas ausgeben zu lassen - überlege dir, was du besser bzw. praktischer findest - was haben die verschiedenen zwei Arten für Vor- und Nachteile?
So, wenn du mein Posting jetzt aufmerksam gelesen hast und dir auch alle verlinkten Seiten zu Gemüte geführt hast, bist du bestimmt ein ganzen Stück schlauer als vorher. ;-)
MfG, Dennis.
Hi Claudia,
<?php
echo "<span style="color:blue;">Blauer Text</span><br>\n";
echo '<span style="color:green">Grüner Text</span><br>\n";
?>
Und jetzt sag mir noch, was ich hier für einen Fehler gemacht habe ;-)
So wäre es richtig:
~~~php
<?php
echo "<span style=\"color:blue;\">Blauer Text</span><br>\n";
echo '<span style="color:green">Grüner Text</span><br>\n';
?>
MfG, Dennis.
hi,
So wäre es richtig:
echo '<span style="color:green">Grüner Text</span><br>\n';
wenn man am ende hinter dem <br> die beiden zeichen \ und n ausgeben wollte - ja, _dann_ wäre das als richtig anzusehen ;-)
gruß,
wahsaga
Hi wahsaga,
So wäre es richtig:
echo '<span style="color:green">Grüner Text</span><br>\n';wenn man am ende hinter dem <br> die beiden zeichen \ und n ausgeben wollte - ja, _dann_ wäre das als richtig anzusehen ;-)
Stimmt, ich habs nur kopiert *g*
echo '<span style="color:#0000ff;">Hallo!!</span><br>' . "\n";
Der Vollständigkeit halber ;-)
MfG, Dennis.
Hallo,
so wenn ich das so mache, wie Dennis das gerade geschrieben habe, dann kommt folgende Meldung:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
An was liegt das denn?
So habe ich das geamcht:
$sql = "INSERT INTO buch_gaeste
(
name,
IP
)
VALUES
(
addslashes($_POST["name"]) . "',
$_SERVER['REMOTE_ADDR'],
NOW()
)
";
mysql_query($sql) OR die(mysql_error());
Gruß Claudia
$_SERVER['REMOTE_ADDR'],
Versuchs mal mit "$REMOTE_ADDR"
Hallo,
Versuchs mal mit "$REMOTE_ADDR"
Wenn ich das so mache, wie du mir das gerade gesagt hast, dann kommt folgende Meldung:
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in
Gruß Claudia
Ⓗⓐⓛⓛⓞ Bummi!
Versuchs mal mit "$REMOTE_ADDR"
Nö. Das ist falsch.
℆, ℒacℎgas
Versuchs mal mit "$REMOTE_ADDR"
Wieso? Ich benutz es doch auch...
Hi!
Versuchs mal mit "$REMOTE_ADDR"
Wieso? Ich benutz es doch auch...
Weil bei dir vielleicht noch register_globals auf on steht, was man tunlichst unterlassen sollte.
Grüße,
Fabian St.
Ⓗⓐⓛⓛⓞ Claudia!
$sql = "INSERT INTO buch_gaeste
(
name,
IP
)
VALUES
(
addslashes($_POST["name"]) . "',
***** ****
$_SERVER['REMOTE_ADDR'],
***************************
Konterkariere!
℆, ℒacℎgas
Hi,
nee auch wenn ich das hin mache, dann kommt immer noch diese Meldung:
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in
Gruß Claudia
Ⓗⓐⓛⓛⓞ Claudia!
So ist es richtig:
$sql = "INSERT INTO buch_gaeste (name, IP) VALUES ('".mysql_escape_string($_POST['name'])."', ". $_SERVER['REMOTE_ADDR'].", NOW())";
℆, ℒacℎgas
$sql = "INSERT INTO buch_gaeste (name, IP) VALUES ('".mysql_escape_string($_POST['name'])."', ". $_SERVER['REMOTE_ADDR'].", NOW())";
Wenn du den String schon in doppelte Anführungszeichen einschließt, dann kannst du auch gleich im String drinbleiben, wenn du nur eine einfache Variable einfügen willst.
$string = "bla $foo fasel";
und wenns doch etwas komplexer werden soll:
$string = "bla {$foo['bar']} fasel";
Und
192.168.0.1
ist auch kein gültiger MySQL-Ausdruck...
So habe ich das geamcht:
$sql = "INSERT INTO buch_gaeste
(
name,
IP
)
VALUES
(
addslashes($_POST["name"]) . "',
Du bist hier immer noch innerhalb des Strings, der erst am " eingeschlossen von [ und name endet...
Zum maskieren von innerhalb von MySQL-Statements ist mysql_real_escape_string() besser geeignet als addslashes()
$_SERVER['REMOTE_ADDR'],
Hier fehlen auch noch ein paar '' drumherum
Hallo,
$_SERVER['REMOTE_ADDR'],
Hier fehlen auch noch ein paar '' drumherum
ach danke nun geht das ist mir gerade so gar nicht aufgefallen :-)
Gruß Claudia
Ich nehme an, du meinst MySQL.
wie kann ich beim Eintrag in die Datenbank gleich die IP Adresse mit eintragen?
Wessen IP? Die vom Webserver, die vom Datenbankserver, die vom User, die vom Proxy des Users, ...?
Schau dir phpinfo() an, ganz unten den Abschnitt "PHP Variables".
Wie kann ich nur die Zeit in ein Feld schreiben lassen. Also das Datum mache ich mit NOW() wie kann ich das mit der Zeit machen? Also ich will nicht das Datum mit der Zeit machen es soll wirklich beides in einer extra Tabelle Spalte in der Tabelle in der DB stehen :-)
NOW() liefert Datum und Zeit und kann auch einem Feld vom Typ TIME zugewiesen werden. Ansonsten gibt's noch:
CURTIME()
CURRENT_TIME
CURRENT_TIME()