[GastForen Programmierung/Entwicklung PHP und MySQL brauche hilfe bei define und $_server

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

brauche hilfe bei define und $_server

Excalibur80
Beiträge gesamt: 3

30. Mär 2011, 20:18
Beitrag # 1 von 4
Bewertung:
(1235 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo an alle, bin neu hier und habe auch gleich mal ein anliegen,
mit der suchfunktion bin ich leider nicht ganz weiter gekommen

und zwar ich habe ein formular und wenn alles ok ist soll auf eine zweite seite weiter geleidet werden geschrieben habe ich es so:
Code
// Seitenangabe, auf welche Seite bei erfolgreicher Übermittlung weitergeleitet werden soll 
define('LOCATION',$_SERVER['HTTP_HOST'] .'/emailok.php');
# relativer path!


und dann einige zeilen weiter unten......

Code
// Nun leite um auf die Empfangsbestätigungs-Seite emailok.php. 
header('Location: '.LOCATION); exit(); }}


aber irgend wie geht es nicht so wie ich das will.

vieleicht kann mir ja einer helfen das wäre toll, sitze jetzt scho so lang davor das ich irgend wie nicht auf den fehler komme oder ihn gar sehe :-)
X

brauche hilfe bei define und $_server

Excalibur80
Beiträge gesamt: 3

30. Mär 2011, 22:02
Beitrag # 2 von 4
Beitrag ID: #468038
Bewertung:
(1217 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
habe mal den ganzen quelltext rein gestellt vieleicht hilft das etwas mehr :-)

Code
<?php 
/** * * Dieser nun folgende PHP-Teil kommt in die Datei form.php
ganz oben oder an erster Stelle. * Er muss lediglich im ganannten Bereich "..
---- ab hier anpassen ---..." angepasst werden * * Eine Danke- oder
Mailbestätigungsseite muss noch erstellt werden. Allerdings ist in der *
Einstellungmöglichkeit schon eine URL vorbereitet und muss lediglich per
path und Dateiname * angepasst werden. * */
error_reporting(E_ALL);
/*--------------------------------------------- ab hier anpassen -------------------- */
//Errormitteilungen (entsprechende Texte anpassen)
define('ERROR_1','Ihre E-Mailadresse ist nicht vorhanden.');
define('ERROR_2','Ihre E-Mailadresse ist ungültig.');
define('ERROR_3','Ohne Mitteilung kein Kontakt.');
define('ERROR_4','Sie haben keinen Familiennamen angegeben.');
define('ERROR_5','Sie haben keinen Vornamen angegeben.');
define('ERROR_6','Ein leeres Formular nützt nichts.');
define('ERROR_7','Die ausgewählte Datei ist zu groß.');
define('ERROR_8','Die ausgewählte Datei hat nicht den erlaubten Dateitype');
// Aktionpath - diese Einstellung nur verwnden, wenn der HTML-Teil unterhalb des PHP-Teil folgt
// wie in diesem vorhandenen Beispiel
define('ACTION_PATH','form.php');
// E-Mailadresse
define ('MAIL_SENDER','tibor@brillant-design.com'); # Deine E-Mail-Adresse (From)
//Mail Betreff-Texte
define ('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular'); # Betreff für Adminmail (Mail erhält Admin)
// Mail-Betreff für User
define ('MAIL_SUBJECT_K','Ihre Kontaktmitteilung'); # Betreff für Mailkopie (Mail erhält User)
// Charset für E-Mailinhalt
define('MAILCHARSET','utf-8'); # oder z.B. iso-8859-1
// Starttext für Webmastermail
define('STARTTEXT',"Mitteilung vom Webformular:nr"); # wichtig hier die " belassen!
// mail Kopie an User und Aktivierung der Checkbox für Mailkopie
define('MAIL_KOPIE', 1); # kann mit 0 deaktiviert werden
// OPTIONAL - ermöglicht einen Dateiupload
define('FILE_UPLOAD',1); # kann mit 0 deaktiviert werden
//dateigröße für Dateiupload
define('FILE_SIZE', 1000000); # Angabe in Bytes. Ein MB entspricht 1000000 Bytes
// absoluter path für das speichern der hochzuladenden Datei
// die Variable $_SERVER['DOCUMENT_ROOT'] ist das Hauptrootverzeichnis des Server
// ergänze nun das Verzeichnis, in welches die Dateien gespeichert werden und
// hänge an das Ende ein / (Beispiel: $_SERVER['DOCUMENT_ROOT'] .'/images/
define('FILE_SAVE_PATH',$_SERVER['DOCUMENT_ROOT'] .'/images/');
define('ENCTYPE', 'enctype="multipart/form-data"');
// Seitenangabe, auf welche Seite bei erfolgreicher Übermittlung weitergeleitet werden soll
define('LOCATION',$_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!
// %s stehen für einen Platzhalter und gleichzeitig als String
$USER_MAIL_TEXT="Sehr geehrte/r %s %s %s,nnr";
$USER_MAIL_TEXT .="Ihre Mitteilung hatte folgenden Inhalt:rnntStrasse HausNr.: %s %srnntPlz Ort: %s %srntTelefon: %s %srntE-Mail: %srnnt";
$USER_MAIL_TEXT .="Mitteilung:rnt%s";
if(FILE_UPLOAD)
{$USER_MAIL_TEXT .= "rnntDateiname: %s"; }
$USER_MAIL_TEXT .= "rnnSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";
// wenn die Liste erweitert werden muss einfach ein , und dann die nächstfolgende
// Zahl. Bsp: , 4 => 'irgendwas'
// ); muss immer vorhanden sein
$htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => 'Firma');
// array mit mimeTypen für ein Dateiupload wie in diesem Beispiel mit image.// das Array kann beliebig erweitert werden. Wichtig ist nur, dass die Typen entsprechend
// deklariert werden.
$fileTypes= array('image/jpeg', 'image/jpg', 'image/png','image/gif');
/* ------------------------------- ab hier nicht ändern bzw. erst wieder ab HTML-Teil -------------------- */
/** * function _gp($var) * * @param int/string $var * @return int/string */
function _gp($var)
{
if(isset($var))
{$val = isset($_POST[$var]) ? $_POST[$var] : '';return trim($val);}
}
/** * function_selectAddress($htmlAddress, $select) * * @param array $htmlAddress * @param string $select * @return string */
function _selectAddress($htmlAddress,$select)
{
if(is_array($htmlAddress))
{
$ret = '';
foreach($htmlAddress AS $k => $v)
{
if(isset($select) && $select == $k)
{
$selected = ' selected="selected"';
}
else
{
$selected = '';
}
$ret .= "<option value=$k $selected>$v</option>";
}
return print $ret;
}
else
{
return print 'Es wurde keine Anrede definiert.';
}
return print $ret;
}


/** * function _E($int) * * @param integer $int * @return string*/
function _E($int)
{
$array = array(1 => ERROR_1,2 => ERROR_2,3 => ERROR_3,4 => ERROR_4,5 => ERROR_5,6 => ERROR_6,7 => ERROR_7,8 => ERROR_8);
if($array[$int]) return $array[$int];
}
/** * function checkMail($mailAdresse) * * @param string $mailAdresse * @return boolean*/
function checkMail($mailAdresse)
{
if(isset($mailAdresse))
{ //Prüft auf PHP-Version
if(phpversion() >= '5.2.0')
{ // prüft per filter_var und Parameter FILTER_VALIDATE_EMAIL
if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL))
{ return 2; }
return false;
}
else
{ // Prüft ob E-Mailadresse ungültig
if(preg_match('/^[^s@<>]+@[^s@<>]+.[a-z]{2,4}$/', $mailAdresse))
{ return 2; }
return false;
}
}
else
{ return 1; }
}

/** *checkFile($file) * * @param array $file * @param array $types * @return boolean */
function checkFile($file, $types = array())
{
if(isset($file['tmp_name']) && $file['tmp_name'] != '' && isset($file['name']) && $file['name'] != '')
{
$size = $file['size'];
$type = $file['type'];
if($size > FILE_SIZE)
{ return 7; }
elseif(isset($types) && !in_array($type, $types))
{ return 8; }
else
{ return false; }
}
}

/** * function fileUpload($file) * * @param array $file * @param integer $action wird zur prüfung auf Fehler verwendet.
* 1 prüft auf Fehler * 2 erlaubt den Dateiupload * @return array $array */

function fileUpload($file = array())
{
if(isset($file['tmp_name']) && isset($file['name']))
{
$tmp= $file['tmp_name'];
$name= $file['name'];
$type= $file['type'];
$dateiendung = preg_replace('#[a-z+]+/#i', '', $type);
$filename = date('d_m_Y').'_'. time() .'.'. $dateiendung;
if(move_uploaded_file($tmp, FILE_SAVE_PATH . $filename))
{$array = array(0 => $filename, 1 => $name);return $array;}
}
else{return;}
}
$textmitteilung = '';
// Variable indiziert
$error_a = 0;
$checkedKopie = '';
$fileName = '';
$m_anrede = _gp('anrede');
if(intval(_gp('action')) == 1)
{ // Prüft, ob die E-Mail-Adresse angegeben wurde.
if($m_email = _gp('email'))
{$error_a = checkMail($m_email);}
else { $error_a = 1;}
// Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.
if(!$m_mitteilung = _gp('mitteilung'))
{ $error_a = 3; }
// Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.
if(!$m_fname = _gp('fname'))
{ $error_a = 4; }
//Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung
if(!$m_vorname = _gp('vorname'))
{ $error_a = 5; }
// prüft ob die Uploaddatei erlaubt ist
if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 7) { $error_a = 7; }
if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 8) { $error_a = 8; }
// prüfe ob User Mailkopie wünscht
if($mailKopie = _gp('kopie') == 1)
{ $checkedKopie = 'checked="checked"'; }
// Prüft, ob eine Anrede ausgewählt wurde, wenn nicht
if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }
//Prüft, ob eine Strasse angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_strasse = _gp('strasse')) { $m_strasse = ''; }
// Prüft, ob die Hausnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_hausnummer = _gp('hausnummer')) { $m_hausnummer = ''; }
//Prüft, ob eine PLZ angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_plz = _gp('plz')) { $m_plz = ''; }
// Prüft, ob ein Wohnort angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_ort = _gp('ort')) { $m_ort = ''; }
// Prüft, ob eine Vorwahl angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_vw = _gp('vw')) { $m_vw = ''; }
// Prüft, ob die Rufnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
if($m_rn = _gp('rn')) { $m_rn = ' / '. $m_rn; }
// Prüft, ob alle Pflichtfelder vorhanden sind.
if(!$error_a)
{
$fileNameAdmin = '';
$fileNameUser= '';
if(FILE_UPLOAD && is_array($_FILES['file']))
{
$fileName = fileUpload($_FILES['file']);
$fileNameAdmin= $fileName[0];
$fileNameUser= $fileName[1];
}
// Mailbedingungen in From von MIME und HTML
$header = 'MIME-Version: 1.0'."rn";
$header .= 'Content-type: text/html; charset='. MAILCHARSET ."rn";
$header .= 'From: <'. MAIL_SENDER .'>';
if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }
else { $anrede = ''; }
// Mitteilungstext für den Seiteninhaber
$mailTextWM = sprintf("%srnAnrede: %snrVorname Name: %s %snrStrasse /
HsNr: %s %snrPLZ Wohnort: %s %snrTelefon: %s %snrE-Mail:
%snrMitteilung:nnr%srnnDateiname: %srnnnMitgeteilt am: %s",
STARTTEXT, $anrede, $m_vorname, $m_fname,
$m_strasse, $m_hausnummer, $m_plz, $m_ort,
$m_vw, $m_rn, $m_email, $m_mitteilung,
$fileNameAdmin, date('d.m.Y, H:i:s'));
// E-Mail an Seiteninhaber wird gesendet.
mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);
// Bestätigungsmail an Absender
if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1)
{
// Textzusammenstellung für den Absender
$msgUser = sprintf($USER_MAIL_TEXT,$anrede, $m_vorname, $m_fname, $m_strasse, $m_hausnummer, $m_plz, $m_ort, $m_vw, $m_rn, $m_email, $m_mitteilung, $fileNameUser);
// Senden der Bestätigungsmail an den Formularausfüllenden.
mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);
}
// Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
header('Location: '.LOCATION); exit();
}
}
?>

<!-- Dieser HTML Teil kann entweder direkt unterhalb
des obigen PHP-Teil oder in ein Template kopiert werden oder alternativ in
eine andere PHP-Datei.Es ist jedoch zwingend erforderlich, dass PHP-Code
korrekt geparst wird. Das Tabellelayout ist lediglich als Beispiel.-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formular</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body { background: #fffbd7; margin: 0 0 0 0; }
.text {
font-family: verdana, arial, helvetica, sans-serif; font-style: normal;
font-size: 0.8em; font-weight: normal; color: #333; }
.error {
font-family: verdana, arial, helvetica, sans-serif; font-style: normal;
font-size: 0.9em; font-weight: normal; font-weight: bold; color:
#CC0000; }
table { margin-left: auto; margin-right: auto; }
td {
background: #edebd3; }
</style>
</head>
<body class="text">
<?php
// Bereich für Fehlerausgabe
if((int)$error_a) { echo '<p align="center" class="error">'. _E($error_a) .'</p>';}
?>
<form action="<?php echo ACTION_PATH; ?>"method="post"<?php echo ENCTYPE; ?>>
<input type="hidden" name="action"value="1" />
<table width="70%" cellspacing="2" cellpadding="5"border="0">
<tr>
<td colspan="2"><p align="center"><b>Kontakt</b></p><p align="right">* =Optional</p></td>
</tr>

<tr>
<td>Anrede *</td>
<td><select name="anrede"><?php _selectAddress($htmlAddress, $m_anrede);?></select></td>
</tr>

<tr>
<td>Vorname</td>
<td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>"/></td>
</tr>

<tr>
<td>Name</td>
<td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>"/></td>
</tr>

<tr>
<td>Strasse / Haus.-Nr. *</td>
<td><input type="text" name="strasse" size="40" maxlength="100" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>"/>
<input type="text" name="hausnummer" size="5" maxlength="8" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>"/></td>
</tr>

<tr>
<td>PLZ / Wohnort *</td>
<td><input type="text" name="plz" size="5" maxlength="5" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" />
<input type="text" name="ort" size="40" maxlength="100" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" /></td>
</tr>

<tr>
<td>Telefon *</td>
<td><input type="text" name="vw" size="10" maxlength="5"value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" />
<input type="text" name="rn" size="10" maxlength="15" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" /></td>
</tr>

<tr>
<td>Ihre E-Mailadresse</td>
<td><input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" /></td>
</tr>

<tr>
<td valign="top">Mitteilung</td>
<td><textarea name="mitteilung" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?></textarea></td>
</tr>

<?php if(MAIL_KOPIE ===1) { ?>
<tr>
<td>Wünschen Sie eine Kopie</td>
<td><input type="checkbox" value="1" name="kopie"<?php echo $checkedKopie; ?> /></td>
</tr>

<?php } if(FILE_UPLOAD === 1) {?>
<tr>
<td>Bilddatei anhängen</td>
<td><input type="file" size="50" name="file" /></td>
</tr>

<?php } ?>
<tr>
<td colspan="2"><p align="center"><input type="submit" value="Mittelungsenden" /></p></td>
</tr>
</table>
</form>
</body>
</html>



als Antwort auf: [#468021]

brauche hilfe bei define und $_server

Pozor
Beiträge gesamt: 892

30. Mär 2011, 23:31
Beitrag # 3 von 4
Beitrag ID: #468049
Bewertung:
(1204 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wie immer beim Probleme finden, gib es mit print_r aus.
Sonst wirst Du schlecht dein Problem finden.

In dem Fall sieht es danach aus, als fehle http:// vor dem redirect Pfad.


als Antwort auf: [#468021]

brauche hilfe bei define und $_server

Excalibur80
Beiträge gesamt: 3

30. Mär 2011, 23:50
Beitrag # 4 von 4
Beitrag ID: #468050
Bewertung:
(1201 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ja genau das war es auch, habe ich auch gerade herraus gefunden.

aber dennoch danke!!!


als Antwort auf: [#468049]
X