mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 18:03 Benutzername: Passwort: Auto-Login

Thema: sessionaufruf geht nicht! vom 13.01.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> sessionaufruf geht nicht!
Seite: Zurück  1, 2
Autor Nachricht
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 15.01.2007 17:39
Titel

Antworten mit Zitat Zum Seitenanfang

So, hier Quelltext:

Code:

<link rel="stylesheet" type="text/css" href="style.css">

<div id="content">
 <div class="spalte_ganz" style="outline: 2px solid #AA0000">
 
  <h2 style="margin: 10px">Contact:</h1>
  <p style="margin: 10px">This site is under maintence! Please visit again soon.</p>
<?php
// *** Spam Schutz
session_start();

function check_email($email) // Checkt, ob Emails gültig sind
{
  $nonascii      = "\x80-\xff"; # Non-ASCII-Chars are not allowed

  $nqtext        = "[^\\\\$nonascii\015\012\"]";
  $qchar         = "\\\\[^$nonascii]";

  $protocol      = '(?:mailto:)';

  $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
  $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
  $user_part     = "(?:$normuser|$quotedstring)";

  $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
  $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
  $dom_tldpart   = '[a-zA-Z]{2,5}';
  $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";

  $regex         = "$protocol?$user_part\@$domain_part";
  // RegEx end

  return preg_match("/^$regex$/",$email);
}

if(isset($_POST['Senden']))
{
   if (isset($_SESSION['uid']) && isset($_POST['uid']) && $_SESSION['uid'] == $_POST['uid'])
   {
    // alles ok... mail verschicken...
      unset($_SESSION['uid']);

      foreach($_POST as $key=>$value) $_POST[$key]=trim(strip_tags($value)); // Leerzeichen und HTML löschen
      foreach($_POST as $key=>$value) $_POST[$key]=preg_replace("/\r\n|\r|\n/", "\n", $value); // \r\n und \r ändern in \n

      if((!empty($_POST['name'])) && (!empty($_POST['nachricht'])))
         {

            $name=utf8_decode($_POST['name']);
            if(check_email($_POST['email']))
            {
               $email=$_POST['email'];
            }
            else
            {
               $email="";
            }
            $betreff=$_POST['betreff'];
            $nachricht=$_POST['nachricht'];

            // === BCC Spam check =======================================================
            if
            (
               eregi("\r",$email) || eregi("\n",$email) || eregi("\r\n",$email)
               || eregi("\r",$name) || eregi("\n",$name) || eregi("\r\n",$name)
            )
            {
               die('Get lost');
            }

            foreach($_POST as $k=>$v)
            {
                if(eregi("bcc:",$v)){
                    die('Get lost');
                }
                if(eregi("MIME-Version:",$v)){
                    die('Get lost');
                }
                if(eregi("Content-Type:",$v)){
                    die('Get lost');
                }
            }
            // === BCC Spam check end =======================================================

            $message="Contactform"
                  ."#################################################################\n"
                  ."\n"
                  ."A new message was written from the contact form.\n"
                  ."\n"
                  ."By: $name, Email: $email\n\n"
                  ."Content: $betreff\n\n"
                  ."Message:\n"
                  ."\n"
                  ."$nachricht";
            $message=utf8_decode($message);

                if (isset($_POST['empfaenger'])) {
                    switch ($_POST['empfaenger']) {
                         case '####':
                         $email = '-.-@-.de';
                         break;
                    case '####':
                     $email = '-@-.de';
                    default:
                     $email = '-@-.de';
    }   
}

            $absender=$name." <".$email.">";      // Absender, wird automatisch erstellt
            $titel="$betreff | hannemann Photography - Contact";   // Titel/Betreff der Email - kann geändert werden
            $extheader = "From: $absender\n"      // Nötige HEADER-Angaben
                     ."Content-Type: text/plain; charset=\"iso-8859-1\"\n"
                     ."Content-Transfer-Encoding: 8bit\n"
                     ."Return-Path: $empfaenger\n"
                     ."X-Mailer: PHP ".phpversion()." / PHP Mail";
            mail("$empfaenger","$titel","$message","$extheader");

            $fehler='<p style="color: #0c0; font-weight: bold;">Thank you. The message was sent.</p>';
         }
         else
         {
            $fehler='<p style="color: #f00; font-weight: bold;">! You have to fill recommended fields <em>(recommended)</em></p>';
      }
   }
   else
   {
      echo "Sorry. There had been an error. Please try again!";
      exit;
   }
}

// UID erzeugen für den Spamschutz
$_SESSION['uid'] = md5(microtime()*rand());

echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
         <div id="kontaktform">
            <h1>Kontakt</h1>
            <hr />
            <form action="/kontakt/" method="post" id="kontaktform">
               <?php if(isset($fehler)) echo $fehler."\n"; ?>
               
               <p><label for="empfaenger"><b>To:</b></label><br />
                    <select name="empfaenger" id="empfaenger">
                             <option value="###" selected="selected">###</option>
                      <option value="###">###</option>
                         </select></p>
               
               <p><label for="vorname"><b>prename:</b> <em>(recommended)</em></label><br />
                  <input type="text" id="vorname" name="vorname" size="30" maxlength="15" tabindex="1" /></p>
               
                    <p><label for="nachname"><b>name:</b> <em>(recommended)</em></label><br />
                  <input type="text" id="nachname" name="nachname" size="30" maxlenghth="20" tabindex="1" /></p>
                  
               <p><label for="straße"><b>street, number:</b></label><br />
                   <input type="text" id="strasse" name="strasse" size="23" maxlength="30" tabindex="1" />&nbsp;
                  <input type="text" id="hausnr" name="hausnr" size="1" maxlength="3" tabindex="1" /></p>
                  
               <p><label for="ort"><b>zip, city:</b></label><br />
                  <input type="text" id="plz" name="plz" size="4" maxlength="5" tabindex="1" />&nbsp;
                  <input type="text" id="ort" name="ort" size="20" maxlength="25" tabindex="1" /></p>
                  
               <p><label for="tel"><b>phone:</b></label><br />
                  <input type="text" id="tel" name="tel" size="30" maxlength="20" tabindex="1" /></p>   
                  
               <p><label for="email"><b>mail-adress:</b> <em>(recommended)</em></label><br />
                  <input type="text" id="email" name="email" size="30" maxlength="40" tabindex="2" /></p>
                  
               <p><label for="betreff"><b>subject:</b></label><br />
                  <select name="betreff" id="betreff" tabindex="3">
                     <option value="Allgemeines" selected="selected">general</option>
                     <option value="Jobangebot">request</option>
                     <option value="Problem">website</option>
                  </select></p>
                  
               <p><label for="nachricht"><b>your message:</b> <em>(recommended)</em></label><br />
                  <textarea id="nachricht" name="nachricht" rows="8" cols="30" tabindex="4"></textarea></p>
                  
               <p>
               <label for="Senden"><input id="Senden" name="Senden" value="Abschicken" type="submit" tabindex="5" /><input type="hidden" name="uid" value="<?php echo $_SESSION['uid']; ?>" /></label>
               <laber for="Reset"><input id="Reset" name="Reset" value="reset" type="reset" tabindex="6"
               </p>
               
            </form>
         </div>

 </div>

</div>



vorher wird nur eine id variable per GET übergeben, was aber normalerweise kein problem darstellen sollte.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Mo 15.01.2007 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

ROFL - da steht ja 'n ganzes Buch vor deinem session_start()
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Account gelöscht


Ort: -
Alter: -
Verfasst Mo 15.01.2007 17:59
Titel

Antworten mit Zitat Zum Seitenanfang

rtfm!!!

schreib mal in die ERSTE Zeile deiner Datei <?php ob_start()?>
und in die LETZTE Zeile deiner Datei <?php ob_end_flush()?>

dann sollte es funzen. Und lies dir bitte mal die Doku zu php-sessions durch, bevor du hier mehrseitige Spamthreads produzierst... *Schnief*


Zuletzt bearbeitet von am Mo 15.01.2007 17:59, insgesamt 1-mal bearbeitet
 
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 15.01.2007 21:49
Titel

Antworten mit Zitat Zum Seitenanfang

OK! Danke für eure Hilfe! Leider steht halt in meinem Buch nix drin und da ich noch n ziemlicher PHP noob bin...
Thx! * Applaus, Applaus * * Ich bin unwürdig *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Di 16.01.2007 01:02
Titel

Antworten mit Zitat Zum Seitenanfang

Deswegen möchten wir dir auch die offizielle PHP-Doku ans Herz legen.
Neben der eigentlichen Dokumentation findest Du in den am Ende der Seite
stehenden User-Kommentaren viele nützliche Tipps und Tricks.
http://de.php.net/manual/en/function.session-start.php#71764
Zitat:
I hope this helps spare someone time debugging sessions that won't save.

I had a include that had trailing spaces after the ?> close before the session_start() function. This caused a headers already sent error and the session/cookie failure.

Hope this helps someone else.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Di 16.01.2007 08:51
Titel

Antworten mit Zitat Zum Seitenanfang

...oder einfach die Antworten hier nicht schneller lesen, als du sie auch verstehen kannst -- und selbst damit zitier ich nur dastefs zweiten Post (der erste enthielt ja schon die vollstaendige Loesung)!!!
  View user's profile Private Nachricht senden
 
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.