tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
445
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vekTorbln
    vekTorbln vekTorbln ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    25
    hallo,
    ich möchte auf einer webseite ein ganz simples gästebuch einrichten. den php code habe ich mir dazu aus dem internet geholt. auf einem 1&1 account funktioniert das script auf einem anderen account von 8ung funktioniert er nicht? woran kann das liegen?

    so sieht meine datei eintragen.php aus

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    <?php
    if ($action == "add"){
    if ($name == "" || $mail == "" || $text == ""){
    echo "<b>Du hast nicht alle Felder ausgef&uuml;llt !</b></br>";
    echo "Klicke auf den Backbutton deines Browsers";
    }
    else{
     
    $fp = fopen("gaestebuch.txt","r+"); 
    $inhalt= fread($fp,filesize("gaestebuch.txt"));
    fclose($fp);
     
    if ($www == ""){
    $eintrag = "$inhalt<a href=\"mailto:$mail\">$name</a><br>$text";
    }
    else{
    $eintrag = "$inhalt<a href=\"mailto:$mail\">$name</a><br><a href=\"$www\">$www</a>$text<hr><br><br>";
    }
     
    $datei = fopen("gaestebuch.txt","w+");
    fputs($datei,$eintrag);
    fclose($datei);
    echo "Danke <i>$name</i> f&uuml;r deinen Eintrag";
     
    }
     
    }
    else{
    ?>
    <form action="eintragen.php?action=add" method="post" name="add">
    Dein Name: <input type="text" name="name" size="24"><br>
    E-Mail: <input type="text" name="mail" size="24"><br>
    Homepage: <input type="text" name="www" size="24"><br>
    <br>
    Dein Eintrag:<br>
    <textarea name="text" cols="35" rows="5"></textarea><br>
    <input type="submit" value="Abschicken">
    </form>
                                    
    <?php
    }
    ?>

    mit diesem befehl..füge ich die gästebuch(txt) datei auf einer seite ein
    Code :
    1
    2
    3
    
    <?php
    include("gaestebuch.txt");
    ?>

    und das ist die baustelle:
    http://www.8ung.at/bastiyxc/brian2006/h/eintragen.php

    die datei rechte habe ich auf 777 eingestellt, ich muss gestehen daß ich mich damit aber nicht so gut auskenne.

    wenn ich nun auf "abschicken" klicke wird nur die seite eintragen.php neugeladen und es passiert nichts. ich habe schon überlegt das es vielleicht doch am php-server liegt, denn auf einen anderen eines freundes funktioniert diese einfache gästebuch-idee einwandfrei.

    kann mir jemand helfen, meinen fehler den ich anscheinend mache, zu finden?
    vielen dank
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Wahrscheinlich ist der 8ung-Webserver anders eingestellt als der 1&1-Webserver. Prüfe mal beide Servereinstellungen, indem du ein Skript mit der phpinfo()-Funktion aufrufst. Mein Tipp: Auf dem 8ung-Server wird ohne die so genannten Register Globals gearbeitet.
     
    Markus Wulftange

  3. #3
    Avatar von vekTorbln
    vekTorbln vekTorbln ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    25
    vielen dank gumbo für die schnelle antwort.

    ich habe herrausgefunden das beide server mit php 4.4.1 arbeiten..

    irgendwie denke ich das du aber mit deinem tip richtig liegst. es hat was mit den
    register globals zu tun.. leider versteh ich nur bahnhof.. die php.de seite ist echt nur etwas
    für fortgeschrittene.. ich kann mir nicht erklären was super_globals sind

    in meinem php5 buch steht auch noch nichts darüber, das gaestebuch-script aus diesem buch funktioniert übrigens auch nicht. das buch ist schon ein halbes jahr alt.

    sehr merkwürdig..
     

  4. #4
    redX redX ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    464
     
    Es gibt ein leben vor dem Tod

  5. #5
    Avatar von vekTorbln
    vekTorbln vekTorbln ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    25
    ja danke frau rieger.. nun weiß ich was globale variablen sind..

    aber wie ich mein script logisch umschreibe auch nicht. dafür versteh ich noch zu wenig.
    und ich weiß auch nicht ob ich es mit Post oder als link übergebe..
    hat jemand eine ahnung was ich am script ändern muss damit das php-script?

    danke
     

  6. #6
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Obiges Skript könnte umgeschrieben und etwas optimiert etwa wie folgt aussehen:
    PHP-Code:
    <?php

        $_errors 
    = array();
        
    $_requiredFields = array(
            
    'name' => 'Bitte geben Sie Ihren Namen an.',
            
    'mail' => 'Bitte geben Sie Ihre E-Mail-Adresse an.',
            
    'text' => 'Bitte geben Sie einen Text ein.'
        
    );


        if( isset(
    $_GET['action']) && $_GET['action'] == 'add' ) {
            
    // alle als erforderlich eingestuften Argumente werden geprüft
            
    foreach( $_requiredFields as $key => $value ) {
                if( !isset(
    $_POST[$key]) || trim($_POST[$key])=='' ) {
                    
    $_errors[] = $value;
                } else {
                    
    $_POST[$key] = trim($_POST[$key]);
                }
            }

            if( !empty(
    $_errors) ) {

                echo 
    '<div class="note error"><ul>';
                foreach( 
    $_errors as $error ) {
                    echo 
    '<li>'.$error.'</li>';
                }
                echo 
    '</ul></div>';

            } else {

                
    $fp fopen('gaestebuch.txt''a');
                if( !isset(
    $_POST['www']) || trim($_POST['www'])=='' ) {
                    
    $newEntry '<div class="entry"><div class="meta"><a href="mailto:'.htmlspecialchars($_POST['mail']).'">'.htmlspecialchars($_POST['name']).'</a></div><div class="content"><p>'.nl2br(htmlspecialchars($_POST['text'])).'</p></div>';
                } else {
                    
    $newEntry '<div class="entry"><div class="meta"><a href="mailto:'.htmlspecialchars($_POST['mail']).'">'.htmlspecialchars($_POST['name']).'</a><br><a href="'.htmlspecialchars($_POST['www']).'">'.htmlspecialchars($_POST['www']).'</a></div><div class="content"><p>'.nl2br(htmlspecialchars($_POST['text'])).'</p></div>';
                }
                
    fputs($fp$newEntra);
                
    fclose($fp);
                echo 
    'Danke <i>'.htmlspecialchars($_POST['name']).'</i> f&uuml;r deinen Eintrag.';

            }

        } else {

    ?>
    <form action="eintragen.php?action=add" method="post">
        Dein Name: <input type="text" name="name" size="24"><br>
        E-Mail: <input type="text" name="mail" size="24"><br>
        Homepage: <input type="text" name="www" size="24"><br>
        <br>
        Dein Eintrag:<br>
        <textarea name="text" cols="35" rows="5"></textarea><br>
        <input type="submit" value="Abschicken">
    </form>

    <?php

        
    }

    ?>
     
    Markus Wulftange

  7. #7
    Avatar von vekTorbln
    vekTorbln vekTorbln ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    25
    vielen dank für deine zeit gumbo, es funktioniert. beeindruckend wie du die <li>stentags benutzt hast, das gefällt mir.
     

Ähnliche Themen

  1. Anfänger-Problem
    Von IFIllusion im Forum C/C++
    Antworten: 13
    Letzter Beitrag: 13.05.07, 20:01
  2. Anfänger I/O-problem
    Von zwob im Forum C/C++
    Antworten: 8
    Letzter Beitrag: 05.04.05, 08:49
  3. anfänger problem mit if
    Von Germanterminaotr im Forum PHP
    Antworten: 17
    Letzter Beitrag: 12.01.05, 09:51
  4. Anfänger Problem
    Von igfas im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 07.09.03, 19:40
  5. Anfänger Problem!
    Von Dark Dämon im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 09.06.03, 10:22