Finde den Fehler nicht :( PHP-Code

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Finde den Fehler nicht :( PHP-Code

    hi. ich kann den fehler in folgendem script leider nicht finden :-( hoffe ihr könnt mir weiterhelfen. angeblich liegt er in zeile 67 oder so, also genau da wo steht: $toAddress="... Aber was soll da falsch sein? sind noch mehr fehler drin? Danke für die Hilfe, falls da wer durchblickt

    PHP-Code:
    <html> 
    <head> 
    </head> 
    <body> 

    <?php 
    /* grabs the POST variables and puts them into variables that we can use */ 

    $vorname $_POST['vorname']; 
    $nachname $_POST['nachname']; 
    $email $_POST['email']; 
    $strasse $_POST['strasse']; 
    $plz $_POST['plz']; 
    $wohnort $_POST['wohnort']; 
    $tel $_POST['tel']; 
    $fax $_POST['fax']; 
    $homepage $_POST['homepage']; 

    //---------VALIDATION--------> 
        
    if($vorname){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your first name\n";//----> ERROR if no input 
                


        if(
    $nachname){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your last name\n";//----> ERROR if no input 
                


        if(
    $email){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your e-mail address\n";//----> ERROR if no input 
                


        if(
    $tel){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your phone number\n";//----> ERROR if no input 
                


        if(
    $strasse){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your mailing address\n";//----> ERROR if no input 
                


        if(
    $wohnort){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your city name\n";//----> ERROR if no input 
                


        if(
    $plz){//----> CHECK input 
            

            else{ 
                
    $error.="Please, go back and fill out your zip code\n";//----> ERROR if no input 
                

    //-------->ERROR FREE?? 
        
    if($error == "") { 
            echo 
    "Thank you for inquiring about us! A receipt of your submission will be e-mailed to you almost immediately."
            }
    //---------------------------------- 
    $mailContent "--------CONTACT--------\n" 
                
    ."First Name: ".$vorname."\n" 
                
    ."Last Name: ".$nachname."\n" 
                
    ."E-mail: ".$email."\n" 
                
    ."Website: ".$homepage."\n\n--------PHONE--------\n" 
                
    ."Phone: ".$tel."\n" 
                
    ."Fax: ".$fax."\n" 
                
    ."Street Address: ".$strasse."\n" 
                
    ."City: ".$wohnort."\n" 
                
    ."Zip Code: ".$plz."\n\n--------INFO--------\n" 
    //---------------------------------- 
    $toAddress "meine@mail.com";
    $subject "Betreff fuer Homepagebesitzer"
    $recipientSubject "Betreff fuer Absender";
    $receiptMessage "Thank you ".$vorname." for inquiring about MyWebSite.com's Products!\n\n\nHere is what you submitted to us:\n\n" 
                
    ."--------CONTACT--------\n" 
                
    ."First Name: ".$vorname."\n" 
                
    ."Last Name: ".$nachname."\n" 
                
    ."E-mail: ".$email."\n" 
                
    ."Website: ".$homepage."\n\n--------PHONE--------\n" 
                
    ."Phone: ".$tel."\n" 
                
    ."Fax: ".$fax."\n" 
                
    ."Street Address: ".$strasse."\n" 
                
    ."City: ".$wohnort."\n" 
                
    ."Zip Code: ".$plz."\n\n--------INFO--------\n" 
    //---------------------------------- 
    mail($email$subject$receiptMessage,"From:$toAddress"); 
    //---------------------------------- 
    mail($toAddress,$recipientSubject,$mailContent,"From:$email"); 
    //--->echo $mailContent; 

    ////////////////////////////////////////  CONNECT TO MYSQL DB  //////////////////// 
    // OPEN CONNECTION ---> 
    $connection mysql_connect("mysql","YXYX""YXYXYX") or die("Unable to connect!"); /* change this! */ 

    mysql_select_db("XYZ") or die("Unable to select database!"); /* change this! */ 

    //  EXECUTE QUERY ---> 
    $query="INSERT INTO kontaktformular ( 
                vorname,
                nachname, 
                email, 
                strasse, 
                plz,
                wohnort, 
                tel, 
                fax, 
                homepage)
            VALUES( 
                '"
    .$vorname."', 
                '"
    .$nachname."', 
                '"
    .$email."', 
                '"
    .$strasse."', 
                '"
    .$plz."', 
                '"
    .$wohnort."', 
                '"
    .$tel."', 
                '"
    .$fax."', 
                '"
    .$homepage."')"
    //////-----> 
    $result mysql_query($query) or die("Error in query:".mysql_error()); 
    //if ($result) 
        //echo mysql_affected_rows()." row inserted into the database effectively."; 

    //  CLOSE CONNECTION ---> 
    mysql_close($connection); 

    /////////////////////////////////////////////////////////////////////////////////// 
            

        else{ 
                print 
    "Sorry, but the form cannot be sent until the fields indicated are filled out completely - \n"
                print 
    "$error\n"
                print 
    "\n"
                print 
    "\n"
                print 
    "Please use your \"Back\" button to return to the form to correct the omissions.  Thank you.\n"
            } 

    ?> 
    </body> 
    </html>
    Zuletzt geändert von TobiaZ; 28.09.2003, 22:08.

  • #2
    Wenn du PHP Tags legst, les ich mir das sogar duch

    Kommentar


    • #3
      bei $mailContent warst du mit den semikolons recht sparsam oder?


      für später: php-tags verwenden und die komplette fehlermeldungen posten

      achja: wenn du nen fehler in zeile 67 hast, reicht es völlig von zeile 60 bis zeile 70 zu posten
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        axo dann hab ich den button php falsch interpretiert oben, dachte man kann so php-code mit ausführen lassen. doof doof :-) ok egal. trotzdem danke für die schnelle hilfe! daß ich alles gepostet hab, lag daran, daß ich nicht weiß, ob in php "folgefehler" auftreten können oder so, die sich von einer früheren zeile nach unten schieben können. aber künftig werd ichs kürzen. das mit dem semicolon hat gestimmt. hab ich erledigt. was nun noch nicht funktioniert, ist der erhalt der post-daten durch die vorhergehende submit-form .-( das muß ich mir noch ansehen. thx nochmal für die schnelle hilfe! ein schöner php-compiler wär schon was feines :-/

        Kommentar


        • #5
          hab die tags mal reingemacht, falls noch jemand liest.

          Kommentar


          • #6
            oh naja so sieht das ganze natürlich wieder anders aus :-)

            das neue problem find ich leider im moment auch nicht.
            ich hab ne form:

            PHP-Code:
            <form method="POST" action="senden.php" name="Check">
            ...

            <
            input type="submit" name="Senden" value="Nachricht Senden" onClick="return Fehlersuche();">

            </
            form
            diese form überprüft die eingabe mit javascript und öffnet dann die senden.php. siehe oben. aber diese php-datei kriegt keine daten vom post. warum auch immer. hab dann versucht, das ganze auf get umzustellen in der form und im php mit $_GET['vorname']; z.b. müßte
            ja gehen oder? in der adressleiste seh ich die ganzen werte auch. aber das script sagt trotzdem, daß es keine daten bekommen hat? warum??

            wär schön wenn sich das wer erklären könnte.

            Kommentar


            • #7
              1. Versuch mal wieder mit POST:
              1.1. print_r($_POST);
              1.2. print_r($HTTP_POST_VARS);
              2. Versuch das ganze noch mal mit GET

              Kommentar


              • #8
                hmmm. bei post ist das array leer. bei get gehts. aber die fehlermeldung im script kommt trotzdem .-(

                Sorry, but the form cannot be sent until the fields indicated are filled out completely

                Kommentar


                • #9
                  du hast das script nicht selber geschrieben, oder?

                  Kommentar


                  • #10
                    Nimm mal die Auskommentierung in dieser Zeile wieder raus.
                    Dann sollte es gehen.
                    PHP-Code:
                    //if ($result)

                    --> wird zu

                    if ($result

                    Kommentar


                    • #11
                      @dsb: das hilft nichts. die if abfrage bezieht sich nur auf die nächste funktion und die ist auch auskommentiert.

                      sein problem ist, dass if($vorname), usw... FALSE ergibt!

                      Kommentar


                      • #12
                        nein es ist nicht mein script. aber stark abgeändert. und das original war open source. die sql statements etc. sind abgeändert. und in der html-datei hab ich ein eigenes javascript drin.

                        das auskommentierte hat mit dem fehler nix zu tun, dann müßt ich die zeile drunter auch wieder reinbringen, das is nur die ausgabe, wieviele zeilen in der datenbank verändert wurden.

                        man beachte die } klammer über dem else... das alles is ein großer block,...wenn kein fehler auftritt ( if($error == "") { ) ... dann verschick die mails und mach den db-eintrag.

                        die } klammer bei der error-abfrage oben ( if($error == "") {...) war falsch und ist wieder draußen... weil die ja eben unten erst hingehört, da wo ich sie grad angesprochen hab. aber warum springt er in den else-block? weil im error was drinsteht?? was kann da drin sein? *rätsel* darf ja nix sein...

                        aber es stehen alle oben genannten fehlermeldungen drin, daß der name fehlt, .... also als ob kein feld ausgefüllt wäre. die übergabe der parameter haut nicht hin...warum?

                        Kommentar


                        • #13
                          das ist genau das was ich gesagt habe!!! musst die an $HTTP_POST_VARS anpassen!

                          BTW: Solltest dir demnächst deine Quellen besser aussuchen, oder von vornherein ein paar Grundlagen lernen, denn mehr ist das nicht!

                          Kommentar


                          • #14
                            schon gefunden....seid nicht so hart mit mir. ich lern täglich wirklich mehr als genug in sachen programmierung. bin anwendungsentwickler von beruf. aber jedem passieren mal fehler. und php ist nicht meine heimat, nur freizeitspaß. gelegen hats an der casesensitivity von der html bzw. den form-feldern. das lag daran, daß noch ne zweite person mit am werk ist und der die namen teilweise groß geschrieben hat. gut, was solls es funktioniert... aber ihr habt mir sehr geholfen. danke an alle!

                            Kommentar


                            • #15
                              Einspruch Euer Ehren. *g*

                              Ich beziehe mich auf das erste Listing im Thread. Falls das bereits anders ist, korrigiert mich.
                              Zuerst einmal fehlt das Semikolon am Ende von $mailContent und $receiptMessage. Nachdem das behoben ist, ergibt der Block
                              PHP-Code:
                              //if ($result) 
                                  //echo mysql_affected_rows()." row inserted into the database effectively."; 

                              //  CLOSE CONNECTION ---> 
                              mysql_close($connection); 

                              /////////////////////////////////////////////////////////////////////////////////// 
                                      

                                  else{ 
                                          print 
                              "Sorry, but the form cannot be sent until the fields indicated are filled out completely - \n"
                                          print 
                              "$error\n"
                                          print 
                              "\n"
                                          print 
                              "\n"
                                          print 
                              "Please use your \"Back\" button to return to the form to correct the omissions.  Thank you.\n"
                                      } 
                              keinen Sinn, da es keine IF-Abfrage gibt, die einen else-Teil rechtfertigt und zu recht meckert PHP das an:
                              Parse error: parse error, unexpected '}' in C:\wampp2c\htdocs\ic\test.php on line 133

                              Wieso soll die Abfrage nach $nachname zwangsläufig false ergeben? Das wissen wir ja gar nicht, weil wir nicht wissen, welche Seite vorgeschaltet ist. Aber ganz abgesehen davon macht eine Abfrage in dem Stil:
                              PHP-Code:
                              if ($name) { } else { $error.="Fehler!." 
                              nun wirklich kaum Sinn. Wenn ich die Variable schon überprüfe, dann kann ich auch auf ein Mindestlänge des Strings überprüfen und auch die Überprüfung der Emailadresse könnte zumindest die syntaktische Korrektheit einschließen.
                              So wird ja bloß überprüft, ob mindestens 1 Zeichen drinsteht und das ist ja nicht sonderlich komfortabel.

                              Nachtrag:
                              Loool - während ich hier fleißig tippe und wahrheitsgemäße Aussagen machen will, habt ihr das Prob schon längst gelöst.
                              Was lerne ich daraus? Schreib schnell und nicht umständlich.
                              Ok, nächtes Mal bin ich schneller. :-)))))

                              Kommentar

                              Lädt...
                              X