Beiträge von Stef

    Hey,

    du kannst variablen welche du außerhalb der mail deklariert hast in der email nutzen. Da rate ich dir mit htmlspecialchars dann die ausgabe in der email zu machen.

    Z.b. so :

    PHP
    $telefonnummer = $_POST['phone'] ; 
    
    
    $message = 'Sehr geehrte Damen und Herren, <br> <br>  Sie haben gerade unser Formular ausgefüllt. Anbei möchte ich ihnen noch die Telefonnummer geben.<br> Unsere Telefonnummer lautet '. htmlspecialchars($telefonnummer) .' <br><br> MfG, <br> Test Team';

    Du musst um Variablen darin zu verwenden den html teil kurz unterbrechen und mit den . Operator (welcher auch verkettungsoperator genannt wird) welche dann den php teil mit dem html teil wieder verkettet verwenden.
    Ebenso rate ich dir dringend bevor du die eingegebenen Daten weiterverarbeitest erstmal diese zu filtern. Zur Sicherheit. Dies kannst du mit der funktion filter_var machen, siehe -> http://php.net/manual/de/function.filter-var.php , dann brauchst du auch bei der ausgabe nicht bei jeder value sowie ausgabe strip_tags() zu verwenden.

    Wenn du die funktionen isset()/empty() und andere verwendest brauchst du diese nicht, wie du es gemacht hast, mit true oder false vergleichen zu lassen. Denn wenn du isset($deinevar) verwendest ist dies automatisch true die false variant von isset ist so : !isset($deineVar) . Und bei empty das selbe. empty() heißt leer und der gegenspieler ist !empty() dies heist dann nicht leer.

    Ich rate dir als erstes zu überprüfen ob das Formular abgesendet wurde, z.b. so:

    Dein HTML:

    HTML
    <form method = POST>
     <input></input> <!-- Die ganzen input und label tags -->
     
    <input type="submit" value="Formular absenden!" name="submitted"> <!-- Hier der submit button -->
    </form>

    Dein PHP:

    PHP
    if(isset($_POST['submitted'])) // damit überprüfst du ob das formular abgesendet wurde, denn  $_POST ist bei dem erstaufruf der kontaktseite leer und bekommt erst die infos nach dem absende dieses formulares
    {
        // führe was aus
    }

    Ebenso rate ich dir die mails mit dem PHP-Mailer zu machen. Siehe http://www.php-rocks.de/thema/51-html-…-phpmailer.html



    http://www.php-rocks.de/thema/51-html-…-phpmailer.html

    Gruß,
    Stef

    Hey,

    ok gut zu wissen ist auch viel weniger arbeit dann z.b. bei dem filtern usw.

    Ich habe jetzt mal so ein Beispiel erstellt. Hab ich es richtig gemacht oder kann man da noch was verbessern ?

    Hm komisch. Hier wird das filtern irgendwie nicht durchgeführt und keine fehlermeldungen angezeigt. Warum denn das?

    Stef

    Hi,

    vielen Dank für die Info. Nun klappt es.

    Wenn ich jetzt alle formulareingaben in ein array lege, und dies dann mit filter_input_array() durchfiltere wie kann ich dann die werte in dem array in die db mit den platzhaltern eintragen ?

    Gruß Stef

    Hey,

    ich habe es nun mal geändert. Und nun funktioniert alles. Danke.

    Nun noch eine frage zur Sicherheit. Und zwar wenn jetzt ein "böser" Mitarbeiter javascript code in die text fälder eingiebt und somit eine attacke ausführt wie kann man sich dagegen am besten schützen ?

    ich habe gelesen das man die function htmlspecialchars() verwenden kann. Hab ich jetzt auch gemacht wie folgt:

    Dies erfolgt vor datenbank eintrag.
    Nun wenn ich jetzt über das Formular javascript code absende und auf der 2ten seite den Mitarbeiter mit namen aufrufe als link und dann auf ihn klick wird zwar die user eingabe angegeben (z.b. Mitarbeiter : <script>alert('Hallo Guys');</script> <script>alert('Hallo Guys');</script>) aber nicht ausgeführt. Bei den vorigen test wurde immer der js code ausgeführt. Ist es jetzt dann eigentlich sicher oder immernoch auf diese weise angreifbar ?

    Denn htmlspecialchars() sollte ja sonderzeichen in HTML-Code umwandeln. Hat es aber nicht gemacht.

    EDIT: Habe als Test nochmals mehrere XSS-Attacken durchgeführt (Javascript code in input feld reingeschrieben und abgesendet) und beim aufrufen des namens nach dem suchen klicken wird der JS-code dann ausgeführt. Also hat htmlspecialchars() nix genützt....

    Nochwas: Ich möchte überprüfen ob sucheingabe größer als $row->id ist. Ich habe es wie folgt gemacht:

    PHP
    if($personal_id > $row->id){
                    $error[] = '<p class="error">Bitte eine richtige Mitarbeiternummer angeben!</p>';
    
    
                }

    Nun wird aber bei jeder eingabe der nummer diese Meldung ausgegeben. Ich geh davon aus das $row-> id ja die zahlen 1-14 (momentan enthält als array) und daher immer der error kommt. Aber wie kann man es nun machen das die fehlermeldung erst kommt wenn man eine nummer größer als die letzte id eingibt ?

    Gruß,
    Stef

    Hey zusammen,

    ich habe jetzt mit einem kleinen Projekt begonnen. Dabei möchte ich das ein Mitarbeiter das Mitarbeiterformular ausfüllt. Dann werden die Daten in die Datenbank gespeichert. Dann möchte ich mittels der id des jeweiligen Mitarbeiters auf einer anderen seite ein link ausgeben (welcher aus den vornamen und nachnamen besteht). Und zum Schluss auf der 3.Seite möchte ich das da die ganzen Daten zu diesem Mitarbeiter ausgegeben werden. Auf allen scripts habe ich verbindung zur datenbank.

    Mein Problem ist das immer nach dem klicken des submit buttons bei der file mitarbeitersuche.php folgende fehlermeldung kommt : Fehler bei Datenbankverbindung: SQLSTATE[HY000] [2002] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.

    Warum ist das denn so ? Ich habe schon nachgeschaut ob password und die verbindungsdaten alle stimmen. Aber die stimmen alle.

    Hoffe ihr könnt mir helfen :)

    Hier ist die file mitarbeitersuche.php:


    Gruß,
    Stef

    Hi,

    ja stimmt so kann man es auch machen ganz vergessen. Dabei gibts aber ein Nachteil.
    Dieser ist, dass das runterswitchen , so nenne ich es mal, nicht flüssig ist sondern abrupt und dann nicht so gut aussieht finde ich, ist aber Geschmackssache.

    Daher würde ich dabei js benutzen.

    Stef

    Hey,

    Zu diesen 3 HTML-Elementen/Tags. Die sind eigentlich sehr einfach zu unterscheiden.

    mit ul erstellst du ungeordnete ´listen d.h. mit Punkten
    mit ol erstellst du geordnete Listen d.h. mit Zahlen

    Die li sind dann die Listenelemente, diese kommen in ul oder ol rein weil diese beiden die Elternelemente von li sind.

    Beispiel:

    HTML
    <ul> 
      <li>Punkt1</li>
       <li>Punkt1</li>
       <li>Punkt1</li>
    </ul>

    Dies gibt dann aus :

    • Punkt1
    • Punkt1
    • Punkt1

    Mit Ol , ul zu ol ändern:

    HTML
    <ol> 
      <li>Punkt1</li>
       <li>Punkt1</li>
       <li>Punkt1</li>
    </ol>

    Dies gibt dann aus :

    • Punkt1
    • Punkt1
    • Punkt1

    Gruß,
    Stef

    Hey,

    ich möchte das wenn man runterscrollt, und der header nichtmehr sichtbar ist, das die navigation erst den fixed zustand bekommt und dann mitgeht.

    Jetzt geht die navigation aber nicht mit. Das soll ja nicht sein.

    Wie kann man es denn machen ?

    Stef

    Hey zusammen,

    ich habe mal eine sticky navigation versucht zu erstellen. Jedoch fxiert sich die navigation nicht. Ich habe heute etwas begonnen jquery zu lernen (anhand der sticky navigation) aber ich weiß nicht warum das nicht klappt.

    Anbei meine codeschnipsel :

    Freue mich auf eure Hilfe.

    Gruß,
    Stef

    Hey,

    kein Ding.

    Und wenn du ein label benutzt dann must du das for attribut benutzen und den zugewiesenen text dann dem input feld hinzufügen das html weis, dass der label-tag zum input element gehört
    d.h.:

    HTML
    <label for="male">Male:</label>
    <input type="radio" name="geschlecht" id="male" value="maenlich">
    
    
    <label for="female">Female:</label>
    <input type="radio" name="geschlecht" id="female" value="weiblich">

    Stef

    Hey,

    ja habe ich gemacht und da kommt die richtige email bis jetzt.

    doch ich poste den korrekten code.

    Aber das problem ist doch das das statement die erste hash id immer benutzt, warum passiert das ?


    EDIT:

    Habe jetzt alle Datensätze gelöscht. Nun klappt es nur beim ersten eintrag. Beim 2ten wieder nicht.

    Es gibt mir aus :

    tring(32) "3a92cd53875f4a4915ab8ef316cc182a" string(32) "3a92cd53875f4a4915ab8ef316cc182a" string(24) "meine email"

    Beim 2.ten mal :

    1. Hash aus db: string(32) "3a92cd53875f4a4915ab8ef316cc182a"
    2. Hash aus url: string(32) "c060a57bbe67d459dfe102a76dfd7bbf"

    Ja sie heißt email.

    Da hast du recht.


    Dann muss es doch am Session liegen oder ? Weil bei der Abfrage sehe ich keine fehler..
    Villt. lasse ich die session weg und selektiere aus der db erstmal dann die email ,selektiere diese und pack diese in ne variable und dann nochmals diese verwenden um die hashid zu ermitteln mit bindParm.?

    Was hälst du davon ?