4.9k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von tomham Mitglied (407 Punkte)
Hallo Leute.
Das mit meinem Gästebuch will nicht hinhaun ...

Habe ein Formular mit Post-Methode, action ist das php-Script.
Soweit klappt das verschicken der Daten, allerdings sind die Felder nachher auf einmal leer, sprich mit
echo $_POST['name'];
bekomme ich eine leere Zeichenkette, wenn ich mit isset() prüfe, meint der auch dass das leer ist.
Hab den Code mal der Übersicht wegen als txt auf meinen Server hochgeladen: Code
Über "get" will ich es nicht machen, da man die Feldbezeichnungen etc. nicht sehen soll (wenn die dann im Query-String übergeben werden)

Würd mich freuen wenn da mal einer nen Blick drauf werfen könnte.
Gruß
tomham

9 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Groß- und Kleinschreibung beachten!
0 Punkte
Beantwortet von tomham Mitglied (407 Punkte)
Hallo son_quatsch.

Ich weiß ja nicht ob du das method="POST" meintest, aber groß geschrieben funktioniert das auch nicht.

Gruß
tomham
0 Punkte
Beantwortet von tomham Mitglied (407 Punkte)
Hallo son_quatsch ...
Hab jetzt entdeckt was du gemeint hast ...
es waren die Felder im Formular die falsch benannt waren, daher auch der Hinweis auf Groß-/Kleinschreibung ...

Habs jetzt ausgebessert, allerdings wird mir noch immer nichts übergeben :-(
aktueller Quelltext ist wieder als txt aufm Server (siehe obiger Link).

Gruß
tomham
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Ok, war etwas wortkarg von mir ;-)

Also, zunächst mal: in dieser Zeile
<form name="Formular" method="post" action=<?php echo $_SERVER['PHP_SELF']; ?>>
...würde ich selbstverständlich die action auch wieder in Anführungsstriche setzen, genauso wie du es mit name und method machst.

Und außerdem kannst du zu Testzwecken ganz am Anfang folgendes einfügen:

<h1>G&auml;stebuch</h1>

<?php

print_r( $_POST );
0 Punkte
Beantwortet von tomham Mitglied (407 Punkte)
Hallo son_quatsch.

Hab das mitm print_r probiert, da gibt er mir die Felder richtig aus, kann aber dennoch die einzelnen Felder nicht rausholen dass ich die überprüfe ...

Danke für deine Bemühungen !!
Gruß
tomham
0 Punkte
Beantwortet von tomham Mitglied (407 Punkte)
Hallo nochmals.
Hab jetzt folgendes probiert:
if($_POST['name']==""){
echo "Name fehlt!";
$y=1;
}
if($_POST['mail']==""){
echo "Mail-Adresse fehlt!";
$y=2;
}
if($_POST['msg']==""){
echo "Nachricht fehlt!";
$y=3;
}
else {
$y=0;
}
if($y!=0){
// weiterführender Code
}

Das funktioniert soweit mit der Überprüfung, allerdings nur bei der Nachricht. wenn ich auf Mail und Name prüfe, meldet er zwar auch den Fehler, allerdings macht er dann den weiterführenden Code nicht.

Gruß
tomham
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Na bei den ersten beiden ist ja auch nie definiert, welchen Wert $y im Fehlerfall haben soll. Besser wäre

$y= 0;
if ( $_POST['name']== "" ) {
echo "Name fehlt!";
$y+= 1;
}
if ( $_POST['mail']== "" ) {
echo "Mail-Adresse fehlt!";
$y+= 10;
}
if ( $_POST['msg']=="" ) {
echo "Nachricht fehlt!";
$y+= 100;
}

if ( $y> 0 ) {
// mindestens ein Fehler ist aufgetreten
// ...und ich könnte jetzt sogar noch herausfinden, welche alles
}
0 Punkte
Beantwortet von tomham Mitglied (407 Punkte)
Hey son_quatsch!!

Du bist ein Genie.
Hast schon wieder richtig gelegen.

Jetzt hoffe ich dass ich das INSERT in die Datenbank noch alleine schaffe ...
Gibt es eigentlich eine Möglichkeit dass ich mir für die Statistik raushole welcher Browser mein Gästebuch benutzt hat ??
Ich weiß es geht, weiß aber nicht mehr mit welchem parameter ... ich glaube aber es war mit $_SERVER['browser'] oder so ähnlich ...
Aber für was gibt es denn google ;-)

Gruß
tomham
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Nein, das ist
$_SERVER['HTTP_USER_AGENT']
siehe auch de3.php.net/manual/en/reserved.variables.server.php

Das ist allerdings schon wieder eine Wissenschaft für sich. Erstmal einfacher wäre folgende Variante:

$browser_alles= get_browser( null, true );
echo "Dein Browser ist ". $browser_alles['browser'];

siehe auch de3.php.net/manual/en/function.get-browser.php
...