1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

safe_mode

  • topkick
  • 23. Februar 2008 um 22:28
  • topkick
    Schüler
    Beiträge
    43
    • 23. Februar 2008 um 22:28
    • #1

    hallo,ich habe mal wieder eine frage,
    habe ein Shop Installiert, da muss ich safe_mode off und register_globals auf off stellen, dann klappt aber mein Kontaktformular nicht mehr, woran liegt das.
    g
    topkick

  • DarkSyranus
    Shogun
    Beiträge
    3.446
    • 23. Februar 2008 um 22:34
    • #2

    Ja, moment, wo ist meine geheimnisvolle Code-Kugel schon wieder ... achja, die ist ja auf der letzten Fete kaputt gegangen ... so ein Mist.

    Zu Deutsch: Wenn du uns den Code deines Formulars nicht zeigst, dann könnten wir hier auch Samba tanzen, das wär genau so hilfreich.

    Aber ich setze einfach mal darauf, dass du einfach $name anstatt [/i]$_POST['name'][/i] genommen hast.

    [Blockierte Grafik: http://img28.imageshack.us/img28/7551/anleitungt.jpg]

  • topkick
    Schüler
    Beiträge
    43
    • 23. Februar 2008 um 23:08
    • #3

    natürlich seit Ihr keine Hellseher
    hier ist das send Script
    =========================
    <?php

    $fehler="";

    $absenderemail=trim($absenderemail);

    $absenderemail=str_replace(" ","",$absenderemail);

    $svorkommen=strrpos($absenderemail, "@");

    $svorkommen2=strrpos($absenderemail, ".");

    if ($svorkommen==0 OR $svorkommen2==0)

    {

    $fehler.="Keine richtige Email-Adresse !!!

    ";

    }

    if (strlen($absenderemail)<10)

    {

    $fehler.="Bitte Email-Adresse prüfen

    ";

    }


    if (($aname=="ja") AND (strlen($absendername)<6))

    {

    $fehler.="Bitte Name angeben

    ";

    }


    if (($telefon=="ja") AND (strlen($absendertelefon)<6))

    {

    $fehler.="Bitte Telefonnummer angeben

    ";

    }


    if (strlen($absendermitteilung)<10)

    {

    $fehler.="Bitte im Feld Mitteilung etwas schreiben

    ";

    }


    if (strlen($fehler)>1)

    {

    echo '<font color="#FF0000">Ihre Eingaben sind falsch oder unvollständig !

    </font>';

    echo $fehler;

    echo '<a href="javascript:history.back()">';

    echo "Ich möchte meine Angaben vervollständigen";

    echo "</a>";

    exit;

    }


    $betreff="Anfrage von ";

    if ($aname=="ja")

    {

    $betreff.=$absendername;

    $betreff.=" / ";

    }

    $betreff.=$absenderemail;

    $absendermitteilung=nl2br($absendermitteilung);

    $text=$absendermitteilung;

    $text.="

    ";

    $text.="Grund der Anfrage:";

    $text.=$absendergrund;

    $text.="
    ";

    if ($aname=="ja")

    {

    $text.="Im Formular angegebener Name: ";

    $text.=$absendername;

    $text.="
    ";

    }


    if ($adresse=="ja")

    {

    $text.="Im Formular angegebene Adresse: ";

    $text.=$absenderstrasse;

    $text.=" / ";

    $text.=$absenderort;

    $text.="
    ";

    }


    if ($telefon=="ja")

    {

    $text.="Im Formular angegebene Telefonnummer: ";

    $text.=$absendertelefon;

    $text.="
    ";

    }


    $header="From:";

    $header.=$absenderemail;

    $header.="\r\nContent-Type:text/html";


    mail($emailempfaenger, $betreff, $text, $header);

    echo '<font size="+4">Versendet</font>
    ';

    echo "Danke für Ihren Event er wird in kürze hier erscheinen.
    ";

    echo " ";


    echo "

    ";

    exit;

    ?>


    hier das Formular Script:
    =====================
    <?php $emailempfaenger="meine adresse"; $name="ja"; $adresse="ja"; $telefon="nein"; $name=strtolower($name); $name=trim($name); $adresse=strtolower($adresse); $adresse=trim($adresse); echo '<font size="+1">Kontaktformular - Große und Kleine Events</font>
    '; echo '<form action="formular-senden.php" method="post" >'; echo '<input type="Hidden" name="emailempfaenger" value="'; echo $emailempfaenger; echo '">'; echo '<input type="Hidden" name="aname" value="'; echo $name; echo '">'; echo '<input type="Hidden" name="adresse" value="'; echo $adresse; echo '">'; echo '<table >'; echo '<tr>'; echo '<td>'; if ($name=="ja") { echo "Ihr Name:"; } echo '</td>'; echo '<td>'; echo '<input type="Text" name="absendername" size="40" maxlength="40">'; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td>'; echo "Ihre Email Adresse:"; echo '</td>'; echo '<td>'; echo '<input type="Text" name="absenderemail" size="40" maxlength="80">'; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td>'; echo "Event melden:"; echo '</td>'; echo '<td>'; echo '<select name="absendergrund" size="1">'; echo '<option value="event melden">Ihr Event</option>'; echo '</select>'; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td>'; echo "Wo-Wann:"; echo '</td>'; echo '<td>'; echo '<textarea name="absendermitteilung" cols="35" rows="10"></textarea>'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '<font size="-2">'; echo ' </font>
    '; echo '<input type="Submit" name="" value="Absenden">'; echo '</form>'; ?>

    g
    topkick

  • lukasn
    Großmeister(in)
    Reaktionen
    2
    Beiträge
    490
    • 23. Februar 2008 um 23:33
    • #4

    So sollte es Funktionieren:

    PHP
    <?php 
    
    
    $fehler=""; 
    
    
    $absenderemail=trim($_POST['$absenderemail']); 
    
    
    $absenderemail=str_replace(" ","",$absenderemail); 
    
    
    $svorkommen=strrpos($absenderemail, "@"); 
    
    
    $svorkommen2=strrpos($absenderemail, "."); 
    
    
    if ($svorkommen==0 OR $svorkommen2==0) 
    
    
    { 
    
    
    $fehler.="Keine richtige Email-Adresse !!!
    
    
    "; 
    
    
    } 
    
    
    if (strlen($absenderemail)<10) 
    
    
    { 
    
    
    $fehler.="Bitte Email-Adresse prüfen
    
    
    "; 
    
    
    } 
    
    
    
    
    
    
    if (($_POST['aname']=="ja") AND (strlen($_POST['absendername'])<6)) 
    
    
    { 
    
    
    $fehler.="Bitte Name angeben
    
    
    "; 
    
    
    } 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    if (($_POST['telefon']=="ja") AND (strlen($_POST['absendertelefon'])<6)) 
    
    
    { 
    
    
    $fehler.="Bitte Telefonnummer angeben
    
    
    "; 
    
    
    } 
    
    
    
    
    
    
    if (strlen($_POST['absendermitteilung'])<10) 
    
    
    { 
    
    
    $fehler.="Bitte im Feld Mitteilung etwas schreiben
    
    
    "; 
    
    
    } 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    if (strlen($fehler)>1) 
    
    
    { 
    
    
    echo '[b]<font color="#FF0000">Ihre Eingaben sind falsch oder unvollständig !
    
    
    </font>[/b]'; 
    
    
    echo $fehler; 
    
    
    echo '<a href="javascript:history.back()">'; 
    
    
    echo "Ich möchte meine Angaben vervollständigen"; 
    
    
    echo "</a>"; 
    
    
    exit; 
    
    
    } 
    
    
    
    
    
    
    
    
    
    
    $betreff="Anfrage von "; 
    
    
    if ($_POST['aname']=="ja") 
    
    
    { 
    
    
    $betreff.=$_POST['absendername']; 
    
    
    $betreff.=" / "; 
    
    
    } 
    
    
    $betreff.=$_POST['absenderemail']; 
    
    
    $absendermitteilung=nl2br($_POST['$absendermitteilung']); 
    
    
    $text=$absendermitteilung; 
    
    
    $text.="
    
    
    "; 
    
    
    $text.="Grund der Anfrage:"; 
    
    
    $text.=$_POST['absendergrund']; 
    
    
    $text.="
    "; 
    
    
    if ($_POST['aname']=="ja") 
    
    
    { 
    
    
    $text.="Im Formular angegebener Name: "; 
    
    
    $text.=$_POST['absendername']; 
    
    
    $text.="
    "; 
    
    
    } 
    
    
    
    
    
    
    if ($adresse=="ja") 
    
    
    { 
    
    
    $text.="Im Formular angegebene Adresse: "; 
    
    
    $text.=$_POST['absenderstrasse']; 
    
    
    $text.=" / "; 
    
    
    $text.=$_POST['absenderort']; 
    
    
    $text.="
    "; 
    
    
    } 
    
    
    
    
    
    
    if ($telefon=="ja") 
    
    
    { 
    
    
    $text.="Im Formular angegebene Telefonnummer: "; 
    
    
    $text.=$_POST['absendertelefon']; 
    
    
    $text.="
    "; 
    
    
    } 
    
    
    
    
    
    
    $header="From:"; 
    
    
    $header.=$absenderemail; 
    
    
    $header.="\r\nContent-Type:text/html"; 
    
    
    
    
    
    
    mail($_POST['emailempfaenger'], $betreff, $text, $header); 
    
    
    echo '<font size="+4">[b]Versendet[/b]</font>
    '; 
    
    
    echo "Danke für Ihren Event er wird in kürze hier erscheinen.
    "; 
    
    
    echo " "; 
    
    
    
    
    
    
    echo "
    
    
    "; 
    
    
    exit; 
    
    
    ?>
    Alles anzeigen
  • DarkSyranus
    Shogun
    Beiträge
    3.446
    • 23. Februar 2008 um 23:35
    • #5

    Jup, genau wie ich vermutete.
    Du hast nun 2 Möglichkeiten.
    Entweder du benutzt extract($_POST); oder du schreibst alle Variablen, die vom Formular gesendet werden, das erste Mal in $_POST['variable'] um.
    Beispiel:

    Code
    $absenderemail=trim($_POST['absenderemail']);
    Code
    if (($_POST['telefon']=="ja") AND (strlen($_POST['absendertelefon'])<6))

    In PHP stehen alle Werte, die mittels POST an das Script übergeben wurden im Array $_POST[] zur Verfügung.
    Bei register_globals kann man auch so drauf zugreifen, aber das ist eine Sicherheitslüscke.

    Ich hoffe du hast verstanden, was ich meine, andernfalls erkläre ich es morgen ausführlicher =)

    Edit: Zu spät ...

    [Blockierte Grafik: http://img28.imageshack.us/img28/7551/anleitungt.jpg]

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 23. Februar 2008 um 23:38
    • #6

    Der Darky ist ja doch Hellseher :D
    falsch:

    Code
    $absenderemail=trim($absenderemail);

    Richtig:

    Code
    $absenderemail=$_POST['absenderemail'];
    $absenderemail=trim($absenderemail);

    Das musst du dann mit allen Variablen machen, die per post kommen.

    Gruß,
    Jojo


  • lukasn
    Großmeister(in)
    Reaktionen
    2
    Beiträge
    490
    • 23. Februar 2008 um 23:41
    • #7

    Die Antwort von Dark ist eigentlich besser als meine, auch wenn sie später kommt =) Davon hat er mehr gelernt.

    die Methode mit extract($_PHP); gefällt mir =) Hätte viel Tipparbeit gespart.

  • DarkSyranus
    Shogun
    Beiträge
    3.446
    • 23. Februar 2008 um 23:50
    • #8

    Nein, Elvis, aber ich bin knapp 2 Jahre im Forum, da lernt man schon die Probleme anhand der fehlenden Informationen der Fragesteller zu erraten xD

    lukasn: extract() ist zwar schön und gut, stellt aber auch ein hohes Sicherheitsrisiko da.

    [Blockierte Grafik: http://img28.imageshack.us/img28/7551/anleitungt.jpg]

  • lukasn
    Großmeister(in)
    Reaktionen
    2
    Beiträge
    490
    • 23. Februar 2008 um 23:53
    • #9

    Stimmt, man kann ja auch von nem externen Script darauf zugreifen. Naja, ich stoppe meine Offtopic sünden gleich wieder, sonst wird das ein kurzer besuch auf dem Forum ;)

    Gute nacht,
    -Lukas

  • topkick
    Schüler
    Beiträge
    43
    • 23. Februar 2008 um 23:53
    • #10

    danke erst einmal ich melde mich, wenn es geklappt hat.
    g
    topkick

Tags

  • html
  • mod
  • color
  • text
  • post
  • input
  • installiert
  • fehler
  • javascript
  • shop
  • ts
  • mode
  • history
  • font
  • formular
  • eingabe
  • header
  • events
  • kontaktformular
  • variable
  • select
  • register
  • safe
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern