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

Ich habe keine Ahnung, was du machst ^^^^
Bei mir auf meinem Server (localhost) es wunderbar ...

Wird garnichts oder nur teilweise eingetragen?

Mache doch mal überall hinter das mysql_query() ein or die(mysql_error()); hintendran, damit du einen Fehler angezeigt bekommst, falls einer entseht.

Also das sähe dann so aus:

PHP:
  mysql_query($deinsql) or die(mysql_error());
 
Hi, das kuriose ist ja, ich mache gar nix...wenn ich register_... per .htaccess auf off stelle und dann alle Felder ausfülle und abschicke, leert er die Pflichfelder, macht die Fehlermeldung" bitte Felder ausfüllen" und trägt nichts ein.
Bei register on alles wunderbar ..auf meinem localhost es auch
Es gibt auch keine fehlermeldung der Db, es ist fast so als würde sie gar nicht angesprochen...probier mal selber ich habe register wieder ausgeschaltet..klick....
Gruss Didi
 
Zuletzt bearbeitet:
Nochmal dein komplettes Script bitte :)
Irgendwas stimmt mit der Formularüberprüfung auch nicht ...

Wenn ich was eingebe, dann kommt trotzdem immer "Bitte geben Sie einen Namen ein!"!
 
Hi, ist doch klar...ich habe jetzt wieder register_global auf "off" hatte ich doch oben beschrieben. Man kann im Mom nur eintragen wenn es auf "on" steht
Ich lass es auch heute nacht mal auf "off" falls du mal probieren willst..
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");

if ($_POST['submit'])  {
  // Tags entfernen
  $name		= trim($_POST["vname"]); 
  $ort     	= trim($_POST["ort"]); 
  $beitrag 	= trim($_POST["beitrag"]); 
  $homepage = trim($_POST["homepage"]);
  // Variablen prüfen
  if ( $vname == "" ) { $tvname = "Bitte Deinen Namen eintragen !" ; }
  else { $tvname = "" ; }
  if ( $email == "" ) { $temail = "Bitte Deine E-mail Addi !" ; }
  else {
    if(check_email($email)) { $temail = "" ; }
    else { $temail = "Das ist keine Mail Addi!" ; }
  }
  if ( $beitrag == "" ) { $tbeitrag = "Bitte schreibe etwas!" ; }
  else { $tbeitrag = "" ; }
// Mails versenden
  if ( $vname != "" && $beitrag != "" && $temail == "" ) {
    
    $be
    if ($email !=""){
      $kopf2 = "Sie haben in unser Gästebuch folgenden Eintrag vorgenommen:\n\n";
      $fuss2 = "\n\nVielen Dank für Ihren Eintrag\nDieter Treffer\nwww.so-klappt-es.de";
      $text2 = $kopf2.$eintrag.$fuss2;
      @mail($email,$betreff,$text2,$headers);
    }
//Email Ende
    // Eintraege an DB gaestebuch senden
    //$query = "INSERT into gaestebuch (vname,ort,email,homepage,beitrag)
    //VALUES('$vname','$ort','$email','$homepage','$beitrag')";
    $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());
    echo "
        <strong>Eintrag gespeichert !<br /><br /></strong><br />";
    // Felder leeren
    $vname = "" ; $ort = "" ; $email = "" ; $homepage = "" ; $beitrag = "" ;
  }
}
// Ende Abfrage
?>
      <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>?section=gaestebuch">
      <fieldset>
      <legend>Dein Eintrag</legend><br/>
      <table>
      <tr>
      <td class="form">Name *:<br/>
	  <span class="rot"><strong><?php echo $tvname ; ?></strong></span>
      <input class="text" type="text" name="vname" size="40"
      tabindex="2" value="<?php echo $vname ; ?>" /></td>
      </tr>
      <tr>
      <td class="form">Ort:<br/>
      <input class="text" type="text" name="ort" size="40"
      tabindex="3" value="<?php echo $ort ; ?>" /></td>
      </tr>
      <tr>
      <td class="form">Mail *:<br/>
      <span class="rot"><strong><?php echo $temail ; ?></strong></span>
      <input class="text" type="text" name="email" size="40"
      tabindex="4" value="<?php echo $email ; ?>" /></td>
      
      </tr>
      <tr>
      <td class="form">Homepage :<br/>
      <input class="text" type="text" name="homepage" size="40"
      tabindex="4" value="<?php echo $homepage ; ?>http://" /></td>
      </tr>
      <tr>
      <td class="form">Beitrag *:<br/>
      <span class="rot"><strong><?php echo $tbeitrag ; ?></strong></span>
      <textarea class="text" rows="8" name="beitrag" cols="40"
      tabindex="5"><?php echo $beitrag;?></textarea></td>
      </tr>
      <tr>
      <td><input class="button" type="submit" name="submit"
      value="abschicken" 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>";}
else {
echo "keine homepage";
}
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>
Ich habe auch überall, wirklich überall die "error" Funktion eingebaut..und guck mal habe es sogar geschafft ne Grafik als Seitenlink einzubauen... :)
.
.
Gruss Didi
 
Zuletzt bearbeitet:
Leider weiß ich im Moment nicht weiter, aber BITTTTTTTTTTTEEEEEEEEEEEEEE
entferne sofort wieder das hier

PHP:
$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) or die (mysql_error());

=>

PHP:
$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;


das soll nur hinter die mysql_query() function ;)
</font></font>
 
Hi, joo ich habe mir gedacht, "kann ja nicht schaden" :-)
Aber Schei.. ist das mein apache nicht mehr läuft. Weiss der Henker warum..muss ich erstmal wieder ans laufen kriegen
.
.
.
Gruss didi
 
Hi, ich habe jetzt in einem anderen Beitrag gesehen, daß das
PHP:
$eintrag = "INSERT INTO test (spalte1, spalte2)  
            VALUES ('$einzutragendedaten', '$irgendeintext')

$eintragen = mysql_query($eintrag);
wohl bei "register_global=off nicht wirklich funktioniert..
Diese info könnte dann ja auch mein Problem lösen, oder ?
PHP:
... = "'.mysql_real_escape_string($_POST)...'",
Das habe ich probiert ..funktioniert aber nicht..
Falls das >problem mittlerweile untergegangen sein sollte, Es wird wie in dem anderen Thema nichts in die Db eingetragen sondern nur die entsprechenden "Eingabefelder" geleert und die dafür vorgesehene Fehlermeldung angezeigt..
.
.
.
Gruss Didi
 
Die $_POST-Variable ist auch – falls nicht geändert – ein Array der per Post-Methode übergebenen Argumente. Eigentlich sollte obigen Konstrukt auch eine Fehlermeldung verursachen, da die mysql_real_escape_string()-Funktion als ersten Parameter eine Zeichenkette erwartet.
 
Hi, ich habe das so eingetragen
PHP:
$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());
    echo "
        <strong>Eintrag gespeichert !<br /><br /></strong><br />";
Es hat sich aber an der "Funktionsstörung" nichts geändert..bei "register...on" geht es, bei "..off" gehts nicht.
ich bin eh noch nicht so firm was Scriptsprachen und mysql angeht, aber hier ist echt der Wurm drin.
Ich habe den Post Nr.#64 editiert und da den aktuellen Code reingepackt..
.
.
.
Gruss Didi
 
Zuletzt bearbeitet:
Ich hab dein Skript mal etwas überarbeitet:
PHP:
<?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 class="note"><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.sp-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 erfolgreich gespeichert.';

			echo generateNoteList('success');

		}

	}

?>
 
Zurück