PHP Script funktioniert mit Xampp nicht, mit Webserver schon

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP Script funktioniert mit Xampp nicht, mit Webserver schon

Postby eumelhans » 07. February 2011 04:14

Hallo,

ich habe vor kurzem mit PHP coden angefangen, und benutze das xampp basic packet. win7 uac ist aus.

wenn ich das script mit xampp über localhost aufrufe kommt in den textboxen immer die fehlermeldung: Undefined variable: vorname in <b>C:\xampp\htdocs\Kapitel03\lektion05.php

lade ich es auf meinen webserver hoch geht es einwandfrei, ich habe schon viel gegooggled aber nix diesbezüglich gefunden. und da man den code schnell im browser sehen möchte ist das sehr umständlich alles erst hochzuladen.

hier noch das script:

Code: Select all
<html>
<head>
<title>Lektion05</title>
</head>
<body>
   <?php
      $fehler = '';
      
      if (isset($_POST['vorname'])){
         if (trim($_POST['vorname']) != ''){
            $vorname = $_POST['vorname'];
         }else{
            $fehler = $fehler . 'Vorname angeben!<br/>';
         }
         
         if (isset($_POST['nachname']) && trim($_POST['nachname']) != ''){
            $nachname = $_POST['nachname'];
         }else{
            $fehler = $fehler . 'Nachname angeben!<br/>';    
         }
      
         if ($fehler != ''){
            echo $fehler;
         }else{   
            echo 'Daten verschicken: ' . $_POST['vorname'] . ' ' . $_POST['nachname'];   
         }
      }
   ?>
   
   <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] ?>">
      Vorname:</br/>
      <input type="text" name="vorname" value="<?php echo $vorname ?>" /><br/>
      Nachname:</br/>
      <input type="text" name="nachname" value="<?php echo $nachname ?>" /><br/>
      <input type="submit" value="Abschicken" />
   </form>
</body>
</html>


bin echt ratlos, danke schonmal im vorraus!
greetz
patrick
eumelhans
 
Posts: 2
Joined: 07. February 2011 04:04

Re: PHP Script funktioniert mit Xampp nicht, mit Webserver s

Postby Altrea » 07. February 2011 06:27

Hallo Patrick,

und willkommen in der wundervollen und manchmal auch wunderlichen Welt der PHP-Programmierung :D

Zuerst einmal ist zwischen all den Meldungen die PHP von sich geben kann zu unterscheiden. Da gibt es nämlich neben wirklichen Fehlermeldungen (Error) auchnoch Warnungen (Warning) und Hinweise (Notice) - um nur mal die geläufigsten zu nennen. Jede Meldung gibt zu erkennen, von welchem Typ sie ist.

Der Grund warum deine Meldung in deiner lokalen Testumgebung angezeigt wird online aber nicht ist der, dass Online meist die Fehlerausgabe auf die wichtigen Fehler beschränkt wird, um nach Möglichkeit so viele Scripte wie möglich zum Laufen zu bringen, selbst die die vielleicht nicht ganz so sauber programmiert wurden (im Produktivbetrieb ist es sogar anzuraten die Klartext Fehlerausgabe ganz auszuschalten und Fehler nur in Log-Dateien zu schreiben).

In deinem Fall wird eine Notice ausgegeben. Eine Notice ist nichts schlimmes, denn PHP weiß damit in aller Regel umzugehen. Notices sind dafür da den Programmierer auf kleine Unsauberkeiten im Code hinzuweisen, in deinem Fall darauf, dass du eine Variable verwendest ohne sie vorher definiert zu haben.

Und zwar ist das bei deinen Value-Werten im Formular der Fall:
<input type="text" name="vorname" value="<?php echo $vorname ?>" /><br/>
Nachname:</br/>
<input type="text" name="nachname" value="<?php echo $nachname ?>" /><br/>


$vorname und $nachname sind nicht gesetzt, wenn das Formular nicht abgeschickt wurde (sie sind übrigens auch dann nicht gesetzt, wenn das Formular abgeschickt wurde aber das jeweilige Feld leer gelassen wurde).

Um dein Problem zu lösen musst du einfach nur sicherstellen, dass die Variablen in JEDEM Fall (also sowohl dann wenn das Formular garnicht abgeschickt wurde als auch wenn das Formular fehlerhaft/unvollständig abgeschickt wurde) mit einem Wert gefüllt sind, und wenn es auch nur ein leerer String ist.

Eine andere Möglichkeit wäre es, das error_reporting auf einen ähnlichen Wert zu stellen wie auf deinem Onlineserver, so dass nurnoch wichtige Meldungen ausgegeben werden. Ich würde dir aber nicht dazu raten. Sauberer ist es in jedem Fall, wenn dein Script auch unter den striktesten error_reporting Einstellungen fehlerfrei funktioniert.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: PHP Script funktioniert mit Xampp nicht, mit Webserver s

Postby eumelhans » 07. February 2011 16:12

danke für die schnelle antwort, wenn ich sie mit leeren strings versehe geht es... endlich kann ich weiter machen :D
eumelhans
 
Posts: 2
Joined: 07. February 2011 04:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 6 guests