Gb->>Navigation-->$PHP_SELF dickes Problem

Hi, boa ey..:)
Alles verstehe ich natürlich nicht. Aber ich werde dahinter kommen..
Zum Ergebnis:
Eintrag: Wunderbar sowohl bei register..."off" als auch bei "on"
Emailversand: Wunderbar.
Eigentlich alles wunderbar..
Das einzige was nicht angezeigt wird ist dein "Eintrag gespeichert!!"
PHP:
$notes['success'][] = 'Eintrag wurde gespeichert!';
muss da nicht irgendwo ein "echo" damit das angezeigt wird?
oder hängt das hiermit zusammen
PHP:
if( count($notes['error']) <= 0 ) {
        echo generateNoteList('success');
Für deine "Anpassungen" vielen Dank :+)
Ich werde den heutigen Abend wohl damit verbringen, dahinterzukommen was das alles bewirkt..
Ein paar Sätze zu den Änderungen wären ganz toll.
EDIT:::::
Hi, nochmal.. Also das mit o.g. "Fehlfunktion" check ich nicht.. Er zeigt mir das "$notes" nicht an.
Ein weiteres kleines Problem habe ich da noch mit der "Löschfunktion" hier mal der Code ..ich habe ihn mal "eingerückt" ich hoffe richtig. Es gibt da keine Fehlermeldung aber das selbe Prob wie bei dem Hauptscript. will heissen "register_global" usw...
Da ich deine doch recht heftigen Änderungen nicht ganz nachvollziehen kann, brauche ich hier nochmal Hilfe.. Wenn nicht zuviel verlangt bitte mit ein paar Kommentaren:)
Löschfunktion...
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="robots" content="noindex, nofollow" />
</head>

<body>

<?php
include ("inc.php");

    if ($_POST['submit']) 
	{
         $query = "DELETE FROM `gaestebuch` WHERE `id_gaesteb` = '$id_gaesteb'" ;
         $res = mysql_query($query,$conn);
    }
?>

			<h3>Gästebuch</h3>

<?php
// Verbindung mit db fuer Eintraege anzeigen
    $query = "SELECT *, DATE_FORMAT(tstamp,'%d.%m.%y') AS tstamp_f
        FROM gaestebuch ORDER BY tstamp DESC";
        $res = mysql_query($query,$conn);
        $num = mysql_num_rows($res);

    for ($i = 0; $i < $num; $i++)
	{
         $row = mysql_fetch_array($res);
         $id_gaesteb = $row['id_gaesteb'];
         echo '
             <table width="100%">
             <tr>
			<td width="60">Name:</td>
			<td>'.$row['vname'].'</td>
			<td width="50">Ort:</td>
			<td width="150">'.$row['ort'].'</td>
			<td width="70" rowspan="2">
			<center>
			<form action ="'.$_SERVER['PHP_SELF'].'" method ="post">
			<input type="hidden" name="id_gaesteb" value="'.$id_gaesteb.'" />
			<input class="kl" type="submit" name="submit" value="löschen" />
			</form>
			<br />'.$id_gaesteb.'
			</center>
			</td>
			</tr>
			<tr>
			<td>Homepage:</td>
			<td>'.$row['homepage'].'</td>    
			<td>Mail:</td>
			<td>'.$row['mail'].'</td>
			<td>Date:</td>
			<td>'.$row['tstamp_f'].'</td>
			</tr>
			</table>
			<p class="bgweiss">'.nl2br($row['beitrag']).'</p>';
    }
	mysql_close($conn);
?>


</body>
</html>
Danke schonmal
.
.

.
.
Gruss Didi
 
Zuletzt bearbeitet:
PHP:
<?php

	include 'inc.php';

	if( isset($_POST['submit']) ) {
		$query = '
			DELETE FROM
			        `gaestebuch`
			  WHERE
			        `id_gaesteb` = "'.mysql_real_escape_string($_POST['id_gaesteb']).'"
			';
		$result = mysql_query($query, $conn)
			or die(mysql_error());

	}

?>
            <h3>Gästebuch</h3>
<?php

	// Verbindung mit db fuer Eintraege anzeigen
	$query = '
		SELECT
		        *,
		        DATE_FORMAT(`tstamp`, "%d.%m.%y") AS `tstamp_f`
		  FROM
		        `gaestebuch`
		  ORDER BY
		        `tstamp` DESC
		';
	$result = mysql_query($query, $conn)
		or die(mysql_error());

	while( $row = mysql_fetch_array($result) ) {
		echo '
             <table width="100%">
             <tr>
            <td width="60">Name:</td>
            <td>'.$row['vname'].'</td>
            <td width="50">Ort:</td>
            <td width="150">'.$row['ort'].'</td>
            <td width="70" rowspan="2">
            <center>
            <form action ="'.$_SERVER['PHP_SELF'].'" method ="post">
            <input type="hidden" name="id_gaesteb" value="'.$row['id_gaesteb'].'" />
            <input class="kl" type="submit" name="submit" value="löschen" />
            </form>
            <br />'.$row['id_gaesteb'].'
            </center>
            </td>
            </tr>
            <tr>
            <td>Homepage:</td>
            <td>'.$row['homepage'].'</td>    
            <td>Mail:</td>
            <td>'.$row['mail'].'</td>
            <td>Date:</td>
            <td>'.$row['tstamp_f'].'</td>
            </tr>
            </table>
            <p class="bgweiss">'.nl2br($row['beitrag']).'</p>';
	}
	mysql_close($conn);

?>
Allgemein geht es beim Arbeiten unter Verwendung von aktivierter/deaktivierter register_globals-Konfigurationsoption vor allem darum, aus Sicherheitsgründen die vordefinierten EGPCS-Variablen zu verwenden.
 
Hi, Es noch nicht so ganz.
Hier mal die teile mit denen ich Probleme habe
PHP:
 $notes = array('success'=>array(), 'notice'=>array(), 'error'=>array());

    function generateNoteList($type)
    {

        global $notes;
        $return = '';

        switch( $type ) {
            case 'success':
            case 'notice':
            case 'error':
                break;
            default:
                return null;
        }
        $return .= '<div><ul class="'.$type.'">';
        foreach( $notes[$type] as $value ) {
            $return .= '<li>'.$value.'</li>';
        }
        $return .= '</ul></div>';

        return $return;

    }
die variable "notice" ist ja eigentlich gar nicht in Gebrauch, oder?
PHP:
 if( !isset($_POST['email']) || trim($_POST['email'])=='' ) {
            $notes['error'][] = 'Bitte geben Sie Ihre E-Mail-Adresse an!';
        } elseif( preg_match("<^(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+$>", $_POST['email']) ) {
            $notes['error'][] = 'Bitte geben Sie eine korrekte E-Mail-Adresse an!';
Auch bei richtig ausgefülltem Formular wird die Meldung 'Bitte geben Sie eine korrekte E-Mail-Adresse an!' ausgegeben.
Ich finde keinen Fehler.
Ich hänge unten auch nochmal meinen kompletten Code an mit all meinen Änderungen.
.
.
Gruss Dieter
PHP:
<div id="content_form">
 <h2><a href="http://www.so-klappt-es.de/secure/index.php">G&auml;stebuch</a></h2><br/>
<?php

    include 'inc.php';
    //include 'check.php';


    $notes = array('success'=>array(), 'notice'=>array(), 'error'=>array());

    function generateNoteList($type)
    {

        global $notes;
        $return = '';

        switch( $type ) {
            case 'success':
            case 'notice':
            case 'error':
                break;
            default:
                return null;
        }
        $return .= '<div><ul class="'.$type.'">';
        foreach( $notes[$type] as $value ) {
            $return .= '<li>'.$value.'</li>';
        }
        $return .= '</ul></div>';

        return $return;

    }


    
    if( isset($_POST['submit']) ) {

        if( !isset($_POST['vname']) || trim($_POST['vname'])=='' ) {
            $notes['error'][] = 'Bitte geben Sie Ihren Namen an!';
        }
        if( !isset($_POST['email']) || trim($_POST['email'])=='' ) {
            $notes['error'][] = 'Bitte geben Sie Ihre E-Mail-Adresse an!';
        } elseif( preg_match("<^(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+$>", $_POST['email']) ) {
            $notes['error'][] = 'Bitte geben Sie eine korrekte E-Mail-Adresse an!';
        } 
        if( !isset($_POST['beitrag']) || trim($_POST['beitrag'])=='' ) {
            $notes['error'][] = 'Bitte geben Sie eine Nachricht ein!';
        }

        if( count($notes['error']) > 0 ) {

            echo generateNoteList('error');

        } else {

            $additionalHeader = '';
            $additionalHeaderFields = array(
                'MIME-Version'  => '1.0',
                'Content-Type'  => 'text/plain; charset=iso-8859-1',
                'From'          => 'Dieter Treffer <dietertreffer@dietrude.de>',
                'Reply-To'      => 'dietertreffer@dietrude.de',
                'X-Sender-IP'   => $_SERVER['REMOTE_ADDR'],
                'X-Mailer'      => 'PHP/'.phpversion()
            );
            foreach( $additionalHeaderFields as $fieldName => $fieldValue ) {
                $additionalHeader .= $fieldName.': '.$fieldValue . chr(0x0D).chr(0x0A);
            }

            $text = "Name: ".$_POST['vname']."\nOrt: ".$_POST['ort']."\nE-Mail: ".$_POST['email']."\n\n".$_POST['beitrag']."\n";

            $subject = 'Gästebuch';
            $body  = "Folgender Eintrag erfolgte:\n\n";
            $body .= $text;
            $body .= "\n\nLöschen: http://www.so-klappt-es.de/didi.php\n\n";
            @mail('dietertreffer@dietrude.de', $subject, $body, $additionalHeader);

            $body  = "Sie haben in unser Gästebuch folgenden Eintrag vorgenommen:\n\n";
            $body .= $text;
            $body .= "\n\nVielen Dank für Ihren Eintrag\nDieter Treffer\nwww.so-klappt-es.de";
            @mail($_POST['email'], $subject, $body, $additionalHeader);


            // Eintraege an DB gaestebuch senden
            $query = '
                INSERT INTO
                        `gaestebuch`
                  SET
                        `vname`    = "'.mysql_real_escape_string($_POST['vname']).'",
                        `ort`      = "'.mysql_real_escape_string($_POST['ort']).'",
                        `email`    = "'.mysql_real_escape_string($_POST['email']).'",
                        `homepage` = "'.mysql_real_escape_string($_POST['homepage']).'",
                        `beitrag`  = "'.mysql_real_escape_string($_POST['beitrag']).'"
                ';
            $result = mysql_query($query, $conn)
                or die(mysql_error());
            $notes['success'][] = 'Eintrag wurde gespeichert!';

        }

    }


    if( count($notes['error']) <= 0 ) {
        echo generateNoteList('success');
    }

?> 
	<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>?section=gaestebuch">
      <fieldset>
      <legend>Dein Eintrag</legend><br/>
    <table>
      <tr>
       <td class="form">Name *:<br/>
        <input class="text" type="text" name="vname" size="40"
        tabindex="2" value="" />
	   </td>
    </tr>
      <tr>
       <td class="form">Ort:<br/>
       <input class="text" type="text" name="ort" size="40"
       tabindex="3" value="" />
	 </td>
    </tr>
      <tr>
       <td class="form">Mail *:<br/>
       <input class="text" type="text" name="email" size="40"
       tabindex="4" value="" />
	   </td>
    </tr>
      <tr>
      <td class="form">Homepage :<br/>
      <input class="text" type="text" name="homepage" size="40"
      tabindex="4" value="http://" />
	  </td>
    </tr>
      <tr>
       <td class="form">Beitrag *:<br/>
       <textarea class="text" rows="8" name="beitrag" cols="40"
       tabindex="5"></textarea>
	   </td>
    </tr>
      <tr>
       <td><input class="button" type="submit" name="submit"
       value="eintragen" tabindex="6" />
	   </td>
    </tr>
    </table>
    </fieldset>
    </form>
      <br/><br/><br/>
      <h2>Eintr&auml;ge im Gb</h2><br/>
      <?php
			// Verbindung mit DB fuer Eintragungen anzeigen
	$query = "SELECT count(*) as anz FROM gaestebuch";
	$res = mysql_query($query) or die(mysql_error());
	$row = mysql_fetch_assoc($res);
	$gesamt = $row['anz'];
		unset($row);
		$maxproseite = 5;                          
		$i = 0;
		$epp = $maxproseite;
		$seiten = ceil($gesamt/$epp);

	if (!isset($_GET['page'])) 
	{                    
		$anfang = 0;
	} 
		else 
		{                                         //Abfrage, wenn eine Seitenzahl gegeben ist.
			$anfang = ($_GET['page']-1)*$epp;
		}
	$laenge = $epp;
	$sql = "SELECT vname, ort, email, homepage, beitrag, DATE_FORMAT(tstamp,'%d.%m.%y %H:%i') AS tstamp_f 
        FROM gaestebuch 
        ORDER BY tstamp DESC
        LIMIT ".$anfang.", ".$laenge."";        
	$res = mysql_query($sql) or die(mysql_error());
	while($row = mysql_fetch_assoc($res))
	{
		#print_r($row);
		echo '
			<table width="70%">
			<tr>
			<td>Name:</td>
			<td class="gb">'.$row['vname'].'</td>
			<td>Ort:</td>
			<td class="gb">'.$row['ort'].'</td>
			</tr>
			<tr>
			<td>Mail:</td>
			<td class="gb">'.$row['email'].'</td>
			<td>Date:</td>
			<td class="gb">'.$row['tstamp_f'].'</td>
			</tr>
			<tr>
			<td>Homepage</td>
			<td class="gb">';
			if($row['homepage'])
			{
			 echo "
				<a href=\"".$row['homepage']." \" target = \"_new\">homepage</a>";
			}
					echo'</td></tr>
					</table>
					<p class="bgweiss">'.nl2br($row['beitrag']).'</p>';
	}
	echo "Zeige mir Seite&nbsp;&nbsp;";
		for($i = 1; ($i - 1)< $seiten; $i++)
		{              //Ausgabe der Linkliste
		 echo "<a href=\"index.php?section=gaestebuch&page=".$i."\">
		  <img border=\"0\" src=\"img/seite.gif\" />".$i."</a> ";
		}
	mysql_close($conn);
?>
		<br/><br/>
		<a class="top" href="">Top<img src="img/top.gif" alt="Top"/></a>
		</div>

.
.
Gruss didi
 
Zuletzt bearbeitet:
Zurück