php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 17.04.2006, 19:01  
Benutzer
 
Registriert seit: 11.04.2006
Beiträge: 95
winki
winki eine Nachricht über ICQ schicken
Standard Fehler beim Include

Hi ich habe ein Problem.
Folgendes:
Auf meiner Index-Seite include ich alle anderen Seiten mit folgendem Code.
PHP-Code:
 <?php 
    $include_sites 
= array("home" => "welcome.php",
    
"guestbook add" => "addentry.php"
    
); 
    if (empty(
$_GET['show'])) 
        { 
        
$include_site "home"
        } 
    else 
        { 
        
$include_site $_GET['show']; 
        } 
    if (!
file_exists($include_sites[$include_site])) 
        { 
        echo 
"Es ist leider ein Fehler aufgetreten!"
        }
    else 
        { 
        include(
$include_sites[$include_site]); 
        }  
?>
Auf der Seite "guestbook add" können die User meiner Website einen
Gästebucheintrag hinerlassen. Jedoch sobald man auf Absenden klickt,
trägt die Seite die Informationen nicht in die Datenbank ein, sondern geht
auf home.php zurück. Ich poste mal noch den Code von addentry.php.

PHP-Code:
<?php
//Pr&uuml;fen, ob alle Felder ausgef&uuml;llt sind
if(!$_POST['name']){$fehler="Bitte achte darauf, dass alle Felder mit einem Stern (*) ausgef&uuml;llt sind.
"
;}
if(!
$_POST['email']){$fehler="Bitte achte darauf, dass alle Felder mit einem Stern (*) ausgef&uuml;llt sind.
"
;}

/*
Wenn Fehler vorhanden, die Textausgabe vormatieren und $_POST['flag']
zur&uuml;cksetzen, damit das Formular erneut angezeigt wird
*/
    
if($fehler)
    {
    
$meldung="<div class=\"alert\">".$fehler."</div>";
    unset(
$_POST['flag']);
    }
else
    
/*
Es liegt kein Fehler vor, also Speichern der Informationen in der
Datenbank
*/
        
    
{
    
//sql-String zusammenbauen
    
$tabelle="br_guestbook";
    
$sql="INSERT INTO $tabelle (name, email, homepage, message, datum, zeit)
    values ('"
.$_POST['name']."', '".$_POST['email']."', '".$_POST['homepage']."',
    '"
.$_POST['message']."', now(), now())";
    
//Verbindung zur Datenbank herstellen
    
$link mysql_connect("localhost""root""");
    
mysql_select_db(""$link);
    
mysql_query($sql$link);
    
$meldung="<div class=\"alert\">Deine Angaben wurden aufgenommen und werden
    in K&uuml;rze in meinem G&auml;stebuch zu sehen sein.</div>"
;
    }
?>
...
PHP-Code:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      <input type="hidden" name="flag" value="1">
      <table class="table" align="center" border="0" cellpadding="5" cellspacing="1">
        <tbody>
          <tr bgcolor="#ffffff">
            <td class="td" width="200">
</td>
            <td class="td"><?php echo $meldung?></td>
          </tr>
          <tr>
            <td class="td" width="200">Name:*</td>
            <td class="td"><input name="name" maxlength="100" value="<?php echo $_POST['name']; ?>" class="field" type="text"></td>
          </tr>
          <tr>
            <td class="td" width="200">E-Mail:*</td>
            <td class="td"><input name="email" maxlength="100" value="<?php echo $_POST['email']; ?>" class="field" type="text"></td>
          </tr>
          <tr>
            <td class="td" width="200">Homepage:</td>
            <td class="td"><input name="homepage" value="<?php echo $_POST['homepage']; ?>" maxlength="100" class="field" type="text"></td>
          </tr>
          <tr>
            <td class="td" width="200">Comment:*</td>
            <td class="td"><textarea name="message" wrap="virtual" class="area"><?php echo $_POST['message']; ?></textarea></td>
          </tr>
          <tr>
            <td class="td" width="200">[ * = required fields ]</td>
            <td class="td"><input name="submit" type="submit" class="button" value="psot">
              
              <input name="reset" type="reset" class="button" value="reset"></td>
          </tr>
        </tbody>
      </table>
    </form>
Was sperrt oder stört sich da in den beiden Scripts?

Gruß Berti
winki ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.04.2006, 19:33  
Gast
 
Beiträge: n/a
Standard

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Wenn das Formular abgeschickt wird, trifft dies zu: if (empty($_GET['show']))

Gruß
phpfan
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Include fehler abfangen? fadass PHP Tipps 2005-2 16 23.12.2008 13:07
hinter include wird eine 1 angezeigt |~Râdîant~| PHP Tipps 2008 8 19.09.2007 13:52
Fehler in DB-Abfrage pullox PHP Tipps 2006 5 23.03.2006 10:08
fehler bei Include PHP Tipps 2006 20 15.02.2006 11:35
Fehler beim include PHP Tipps 2005-2 4 20.10.2005 12:47
include fehler PHP Tipps 2005-2 1 30.09.2005 09:30
XAMPP include fehler Server, Hosting und Workstations 2 04.08.2005 10:30
Fehler bei var übergabe in include datei JEGO PHP Tipps 2005-2 9 16.06.2005 15:28
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Include fehler PHP Tipps 2004 9 02.08.2004 22:51
fehler include oder so was PHP Tipps 2004 1 14.07.2004 14:00
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
alert(\<?php echo $meldung; ?>\);, xampp include nicht ausgeführt, url bei include unstimmig

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.