PHP Fehler

11/27/2011 14:14 DerSaboteur#1
Hey

Ich finde meinen eigenen Fehler hier nicht... Ich bin wirklich blind heute ô.ô
Hoffe einer von euch kann mir helfen?

PHP Code:
<?php

$verbindung 
mysql_connect("localhost""Benutzername""Passwort")
or die (
"Fehler beim Einloggen in MySql");

mysql_select_db("DatenbankName")
or die (
"Verbindung zur Datenbank ist nicht erfolgreich..");

$Vorname $_POST["Vorname"];
$Name $_POST["Name"];
$SName $_POST["SName"];
$Homepage $_POST["Homepage"];
$Info $_POST["Info"];
$BTeam $_POST["BTeam"];
$BLagg $_POST["BLagg"];
$BHomepage $_POST["BHomepage"];

if(
$Vorname == "" or $Name == "" or $SName == "" or $Homepage == "" or $Info == "" or $BTeam == "" or $BLagg == "" or $BHomepage == "")
{
    echo 
"Bitte fuelle die Felder aus!";
}
else
{
    
$eintrag "INSERT INTO bewertung
    (Vorname, Name, SName, Homepage, Info, BTeam, BLagg, BHomepage)

    VALUES
    ('
$Vorname', '$Name', '$SName', '$Homepage', '$Info', '$BTeam', '$BLagg', '$BHomapage')";

    
$eintragen mysql_query($eintrag);
    if (
$eintragen == true)
    {
        echo 
"Deine Bewertung wurde eingetragen!"
    
}
    else
    {
        echo 
"Fehler im System. Konnte nicht gespeichert werden..."
    
}
}

mysql_close($verbindung);

?>
ich bekomme immer diese Fehlermeldung..

PHP Code:
Parse errorsyntax errorunexpected '}'expecting ',' or ';' in /var/www/web127218/html/Bewertung/Bewertung.php on line 34 
Ich kann mein kopf gegen die Wand klatschen wenn es ein einfacher Fehler ist.....

Mfg DerSaboteur
11/27/2011 14:55 Fratyr#2
Wie wärs wenn du hinter deine echos mal ; packst?
11/27/2011 14:56 .exTremez™#3
Bei Zeile 33 fehlt am ende ein ;
Code:
echo "Deine Bewertung wurde eingetragen!"[COLOR="Red"][B][U];[/U][/B][/COLOR]
Bei Zeile 37 das gleiche
Code:
echo "Fehler im System. Konnte nicht gespeichert werden..."[B][COLOR="Red"][U];[/U][/COLOR][/B]
EDIT://

Zeile 28(Du hast BHomapage anstatt BHomepage geschrieben ^^):
Code:
    ('$Vorname', '$Name', '$SName', '$Homepage', '$Info', '$BTeam', '$BLagg', '[B][COLOR="Red"][U]$BHomepage[/U][/COLOR][/B]')";
11/27/2011 15:01 Whoknowsit#4
Hinter deinen echo-Anweisungen fehlt das Semikolon ;)

Ich würde es übrigens in etwa so machen:

PHP Code:
<?php 
$verbindung 
mysql_connect("localhost""Benutzername""Passwort") or die ("Fehler beim Einloggen in MySql"); 
mysql_select_db("DatenbankName") or die ("Verbindung zur Datenbank ist nicht erfolgreich.."); 

function 
cleanUp($data) {
    
$data stripslashes($data);
    
$data strip_tags($data);
    
$data mysql_real_escape_string($data);
    return 
$data;
}

$_POST array_map('cleanUp'$_POST);

$Vorname $_POST['Vorname']; 
$Name $_POST['Name']; 
$SName $_POST['SName']; 
$Homepage $_POST['Homepage']; 
$Info $_POST['Info']; 
$BTeam $_POST['BTeam']; 
$BLagg $_POST['BLagg']; 
$BHomepage $_POST['BHomepage']; 

if(
$Vorname == ""|| $Name == ""|| $SName == ""|| $Homepage == ""|| $Info == ""|| $BTeam == ""|| $BLagg == ""|| $BHomepage == "") { 
    echo 
"Bitte fuelle die Felder aus!"

else { 
    
$eintrag "INSERT INTO bewertung (Vorname, Name, SName, Homepage, Info, BTeam, BLagg, BHomepage) VALUES ('".$Vorname."', '".$Name."', '".$SName."', '".$Homepage."', '".$Info."', '".$BTeam."', '".$BLagg."', '".$BHomepage."')"

    
$eintragen mysql_query($eintrag); 
    
    if (
mysql_affected_rows() >= 1) { 
        echo 
"Deine Bewertung wurde eingetragen!";
    } 
    else { 
        echo 
"Fehler im System. Konnte nicht gespeichert werden...";
    } 
}
11/27/2011 15:21 DerSaboteur#5
Quote:
Originally Posted by .exTremez™ View Post
Bei Zeile 33 fehlt am ende ein ;
Code:
echo "Deine Bewertung wurde eingetragen!"[COLOR="Red"][B][U];[/U][/B][/COLOR]
Bei Zeile 37 das gleiche
Code:
echo "Fehler im System. Konnte nicht gespeichert werden..."[B][COLOR="Red"][U];[/U][/COLOR][/B]
EDIT://

Zeile 28(Du hast BHomapage anstatt BHomepage geschrieben ^^):
Code:
    ('$Vorname', '$Name', '$SName', '$Homepage', '$Info', '$BTeam', '$BLagg', '[B][COLOR="Red"][U]$BHomepage[/U][/COLOR][/B]')";
Danke. werds gleich umändern ;)

Quote:
Originally Posted by demologin View Post
Der 1€ Sonntag! Alles nur für 1€ Heute bis 17:00 uhr bestellen und ein beliebiges Produkt für nur 1€ im Ersten Monat bekommen. [Only registered and activated users can see links. Click Here To Register...]
dankeschoen für deinen hilfreichen Post <3
echt nett danke ;)

Quote:
Originally Posted by Whoknowsit View Post
Hinter deinen echo-Anweisungen fehlt das Semikolon ;)

Ich würde es übrigens in etwa so machen:

PHP Code:
<?php 
$verbindung 
mysql_connect("localhost""Benutzername""Passwort") or die ("Fehler beim Einloggen in MySql"); 
mysql_select_db("DatenbankName") or die ("Verbindung zur Datenbank ist nicht erfolgreich.."); 

function 
cleanUp($data) {
    
$data stripslashes($data);
    
$data strip_tags($data);
    
$data mysql_real_escape_string($data);
    return 
$data;
}

$_POST array_map('cleanUp'$_POST);

$Vorname $_POST['Vorname']; 
$Name $_POST['Name']; 
$SName $_POST['SName']; 
$Homepage $_POST['Homepage']; 
$Info $_POST['Info']; 
$BTeam $_POST['BTeam']; 
$BLagg $_POST['BLagg']; 
$BHomepage $_POST['BHomepage']; 

if(
$Vorname == ""|| $Name == ""|| $SName == ""|| $Homepage == ""|| $Info == ""|| $BTeam == ""|| $BLagg == ""|| $BHomepage == "") { 
    echo 
"Bitte fuelle die Felder aus!"

else { 
    
$eintrag "INSERT INTO bewertung (Vorname, Name, SName, Homepage, Info, BTeam, BLagg, BHomepage) VALUES ('".$Vorname."', '".$Name."', '".$SName."', '".$Homepage."', '".$Info."', '".$BTeam."', '".$BLagg."', '".$BHomepage."')"

    
$eintragen mysql_query($eintrag); 
    
    if (
mysql_affected_rows() >= 1) { 
        echo 
"Deine Bewertung wurde eingetragen!";
    } 
    else { 
        echo 
"Fehler im System. Konnte nicht gespeichert werden...";
    } 
}

Was ist an dein .php besser? ich bin anfänger und weiß noch net alles ;)
11/27/2011 15:33 Whoknowsit#6
Sagen wir so: Wenn du wirklich noch Anfänger bist, gewöhn dir am Besten direkt einen halbwegs ordentlichen Codingstil an. An meinem Beispiel (ist ungetestet) ist u.A. "besser", dass Formulareingaben (meiner Meinung nach) bestmöglichst gefiltert werden, bevor sie in die Datenbank geschrieben werden. Es sollte dadurch nicht mehr möglich sein, Schadcode einzuschleusen (Stichwort SQL-Injection und auch XSS).

Das geht auch alles noch "schöner", aber für den Anfang reichts ^^

Im Übrigen ist das reine Abfragen der Rückgabe von mysql_query nicht unbedingt aussagekräftig nzw. ich persönlich verlasse mich ungerne darauf. Daher habe ich mysql_affected_rows verwendet.

An für sich ist alles bis auf die cleanUp()-Funktion, die ich eingebaut habe, Geschmackssache. Soll jeder machen, wie er meint :)