Sponsor-Board.de

Normale Version: Warum wird mein Benutzer nicht übergeben?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Habe hier dieses Script

PHP-Code:
if ($_POST[submit]){
$usernick '';
if (isset (
$_POST['usernick'])) {
    
$usernick $_POST["usernick"];
}
else
{
    echo 
"$usernick";
    die(
'Kein Benutzer Übergeben');
}
$sqlSecureUsernick mysql_real_escape_string($usernick);

$emailnick '';
if (isset (
$_POST['emailnick'])) {
    
$emailnick $_POST["emailnick"];
}
else
{
    die(
'Kein Benutzer Übergeben');
}
$sqlSecureEmailNick mysql_real_escape_string($emailnick);

$kommentar '';
if (isset (
$_POST['kommentar'])) {
    
$kommentar $_POST["kommentar"];
}
else
{
    die(
'Kein Benutzer Übergeben');
}
$sqlSecureKommentar mysql_real_escape_string($kommentar);

$ip=getenv("REMOTE_ADDR");
$timeget time();
$datum date("d.m.Y",$timeget);
$timeget time();
$uhrzeit date("H:i",$timeget); 

$eintrag "INSERT INTO kommentar (username, usernick, email, ip, uhrzeit, datum, kommentar) VALUES ('$username', '$sqlSecureUsernick', '$sqlSecureEmailNick', '$ip', '$uhrzeit', '$datum', '$sqlSecureKommentar')";
$eintragen mysql_query($eintrag);
echo 
"Ihr Kommentar wurde gespeichert!";
}else{
echo 
"Gebe deinen Kommentar zu dem Auto von $username ab!";
 echo 
'<form action="'.htmlentities($_SERVER['PHP_SELF']).'" method="post">';
echo 
'Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="usernick"><br>

Deine Email Adresse:<br>
<input type="text" size="24" maxlength="50"
name="emailnick"><br>

Dein Kommentar:<br>
<textarea name="kommentar" cols="50" rows="10"></textarea><br>'
;

 echo 
'<input type="submit" name="submit" value="Abschicken" />';
 echo 
'</form>';

jedoch wird mir immer nur angezeigt es wird kein benutzer übergeben..
Wieso?

Es wäre vielleicht hilfreich nicht immer die selbe Meldung rauszugeben, egal, was fehlt Biggrin
Habe ich bearbeitet ^^ Nachdem ich es auch gesehen habe xD
Fehler bleibt aber
Ich würde auch anstatt mit real_escape_string mit Prepared Statements arbeiten, um die Sicherheit zu erhöhen. Und wegen dem eigentlichen Problem muss ich Buchstabensalat zustimmen, verschiedene Meldungen würden helfen, das Problem zu lokalisieren.
Habe ja bereits geschrieben das ich es geändert habe aber trotzdem der gleiche Fehler bleibt der gibt mir nicht die Daten aus dem Formular aus
Könntest du einmal das neue Skript posten und vllt auch einen Demolink bereitstellen, damit ich mir ein Bild machen kann?
Mal davon abgesehen, dass ich mir nicht sicher bin, ob die erste zeile nicht eher $_POST['submit'] lauten muss.

Sicher, dass der Fehler in diesem teilabschnitt liegen muss? Weil das scheint ja nicht das komplette script zu sein. (irgendwo wird ja auch noch $username gesetzt z.b.)

PHP-Code:
if ($_POST[submit]){
$user '';
if (isset (
$_POST['user'])) {
    
$user $_POST["user"];
}
else
{
    echo 
"$user";
    die(
'Kein Benutzer Übergeben');
}
$sqlSecureUser mysql_real_escape_string($user);

$emailnick '';
if (isset (
$_POST['emailnick'])) {
    
$emailnick $_POST["emailnick"];
}
else
{
    die(
'Keine Email Übergeben');
}
$sqlSecureEmailNick mysql_real_escape_string($emailnick);

$kommentar '';
if (isset (
$_POST['kommentar'])) {
    
$kommentar $_POST["kommentar"];
}
else
{
    die(
'Kein Kommentar Übergeben');
}
$sqlSecureKommentar mysql_real_escape_string($kommentar);

$ip=getenv("REMOTE_ADDR");
$timeget time();
$datum date("d.m.Y",$timeget);
$timeget time();
$uhrzeit date("H:i",$timeget); 

$eintrag "INSERT INTO kommentar (username, usernick, email, ip, uhrzeit, datum, kommentar) VALUES ('$username', '$sqlSecureUser', '$sqlSecureEmailNick', '$ip', '$uhrzeit', '$datum', '$sqlSecureKommentar')";
$eintragen mysql_query($eintrag);
echo 
"Ihr Kommentar wurde gespeichert!";
}else{
echo 
"Gebe deinen Kommentar zu dem Auto von $username ab!";
 echo 
'<form action="'.htmlentities($_SERVER['PHP_SELF']).'" method="post">';
echo 
'Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="user"><br>

Deine Email Adresse:<br>
<input type="text" size="24" maxlength="50"
name="emailnick"><br>

Dein Kommentar:<br>
<textarea name="kommentar" cols="50" rows="10"></textarea><br>'
;

 echo 
'<input type="submit" name="submit" value="Abschicken" />';
 echo 
'</form>';


Online Demo leider nicht da es aktuell nur offline läuft also auf meinem Rechner

alternativ kannst du die ja auch mal $_POST komplett ausgeben lassen (print_r($_POST)Wink (dabei würde ich dann empfehlen in den seiten quelltext zu gucken, da der browser die print_r ausgabe natürlich formatiert Tongue)
@Buchstabensalat: die Prüfung einer POST-Variablen ist auch in der von Fredix genannten Form machbar, daran liegt es nicht :/
@Fredix: wird nur der fehlende Username oder auch andere Formularelemente bemängelt?
Der Rest des Scripts bzw. andere Dateien wären hier wie Salat schon sagte hilfreich.
Seiten: 1 2
Referenz-URLs