Jetzt kostenlos registrieren
   
News    Board    DBase    Kinoarchiv    Gruppen    Chat    Teamspeak    Wiki    Banner    Regeln    Team Jetzt kostenlos registrieren! 

Willkommen :)
Nachrichten
Neu: n/a
Insg.: n/a
Neue PN schreiben
Mein Profil
Du hast schon einen Account? Hier kannst du dich anmelden.


 



Wir speichern nicht!


Wenn du dich aktiv gegen den Überwachungswahn engagieren möchtest,
klicke hier



 
M0derat0r
Benutzerbild von Pee-ooH

Registriert seit:
26.06.2007
Ort: Freiburg
Beiträge: 1.738
Für Beiträge bedankt: 410
Erhielt 546 Danke
für 364 Posts
Rang: 90
Pee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes Ansehen
Pee-ooH eine Nachricht über ICQ schicken
 
Standard #1 (Link) [PHP + MySql] Gästebuch *Teil 2* erstellt am: 12.06.2008 um 18:24
So Leute das ist die Fortsetzung von >>> Teil 1 <<<

Jetz werden wir Beiträge erstellen und sie wieder löschen. Auf das aussehen habe ich keinen Wert gelegt das könnt ihr selber machen wie ihr wollt.

Da wir das alles in einer Datei haben wollen werden wir mit einem Switch arbeiten und mit Pseudofunktionen.

Na dann fangen wir mal an:

Zuerst erstellen wir unser Grundgerüst

HTML-Code:
<html>
<head>
<title>Unser Gästebuch</title>
</head>
<body>
<?php

?>
</body>
</html>
zwischen die <?php und ?> kommt unser PHP. Anfangen müssen wir damit eine Verbindung zur Datenbank herzustellen dazu definieren wir ein paar Variablen:

PHP-Code:
$host 'localhost';
$password 'ddl-board';
$user 'newbe';
$db 'gästebuch';
$connect mysql_connect($host$user$password);
$base mysql_select_db($db$connect); 
Mit $connect stellen wir eine Verbindung zu MySql her und mit $base zur jeweiligen Datenbank

Mehr Infos zu den functionen findet ihr hier

Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Nun erstellen wir vorerst einen leeren Switch() da wir noch keine functionen haben:

PHP-Code:
switch($_GET['display']) {


$_GET['display'] wird uns später sagen welche function er ausführen soll

Mehr Infos zu den functionen findet ihr hier

Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 



Nun erstellen wir unsre erste function() und zwar das Formular:

PHP-Code:
function eintrag() {
    echo 
"<p>
           <form action='buch.php?display=do_eintrag' method='post'>
            Name:<input type='text' name='name' >
            E-Mail:<input type='text' name='mail' >
            Beitrag:<textarea name='beitrag'></textarea>
            <input type='submit' value='abschicken'>
           </form>    
         </p>"
;

Das tragen wir nun auch in unseren Switch() ein der dann so aussieht:

PHP-Code:
switch($_GET['display']) {
    case 
'view' :
            
eintrag();
                break;
    default:
        
eintrag();
        break;

das default wird dann eingesetzt wenn keines der cases zutrifft.
Jetz werden wir das natürlich noch verarbeiten so das es in unere MySql Datenbank steht. Ja jetz wird es spannend! Dazu erstellen wir diese function:

PHP-Code:
function do_eintrag() {
    
$name $_POST['name'];
    
$email $_POST['mail'];
    
$beitrag $_POST['beitrag'];
    
$sql ="INSERT INTO            beiträge (Name,E_Mail,Beitrag,Datum)
          VALUES                ('$name','$email','$beitrag', NOW())"
;
    
    
$result mysql_query($sql) OR die (mysql_error());


So das schöne an SQL seht ihr schon: Es spricht für sich selbst! Man kann leicht nachvollziehen was hier geschieht. Mit INSERT INTO sagt ihr in welche Spalten etwas geschriben werden sollen und mit VALUE sagt ihr was in die Spalten geschrieben werden soll.
Mit der function mysql_query sendet ihr dann den Befehl zur Datenbank

Mehr Infos zu den functionen findet ihr

Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Nun müssen wir wieder unseren Switch aktuallisieren der nun so aussieht:

PHP-Code:
switch($_GET['display']) {
    case 
'view' :
        
eintrag();
        break;
    case 
'do_eintrag':
        
do_eintrag();
        
eintrag();
        break;
    default:
        
eintrag();
        break;

Und jetz wollt ihr natürlich auch sehn was ihr da Eingetragen habt. Sprich wir kommen zum auslesen der Daten, der Grund warum wir das alles hier machen. Wie immer eine neue function:

PHP-Code:
function view() {
    
$sql ="SELECT            *
          FROM            beiträge"
;
                
    
$result mysql_query($sql);
    while(
$data mysql_fetch_assoc($result)){
        echo
"
        <p>Name:"
.$data['Name']." E-Mail:".$data['E_Mail']."<br>
             hat geschrieben am "
.$data['Datum']."<br>
             Beitrag:"
.$data['Beitrag']."
             Aktion:<a href='buch.php?display=delete&id="
.$data['ID']."'>Löschen</a><br><hr>";
    }

Mit SELECT können wir sagen welche Spalten wir haben wollen. Mit de * sage ich das ich alles haben möchte.
Nun gebe ich die daten in einer while() Schleife mittels mysql_fetch_assoc() aus.

Mehr Infos zu den functionen findet ihr hier
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Ihr wisst es bestimmt schon! Wir müssen unseren switch erweitern:

PHP-Code:
switch($_GET['display']) {
    case 
'view' :
        
eintrag();
        
view();
        break;
    case 
'do_eintrag':
        
do_eintrag();
        
eintrag();
        
view();
        break;
    default:
        
eintrag();
        
view();
        break;

Und weil ich heute gute laune habe zeige ich euch noch wie man einen datensatz löscht. DieseOption sollte aber nur im admin Bereich zur Verfügung stehen:

PHP-Code:
function delete() {
    
$id $_GET['id'];
    
$sql ="DELETE FROM            beiträge
          WHERE                ID = '$id'"
;
    
$result mysql_query($sql);
    } 
Hier hilft uns die ID den Richten Datensatz in der DB zu finden und zu löschen. Sehr einfach und simpel dieser Vorgang.

Der switch sieht nun so aus und ist komplett:

PHP-Code:
switch($_GET['display']) {
    case 
'view' :
        
eintrag();
        
view();
        break;
    case 
'do_eintrag':
        
do_eintrag();
        
eintrag();
        
view();
        break;
    case 
'delete':
        
delete();
        
eintrag();
        
view();
        break;
    default:
        
eintrag();
        
view();
        break;

Nun könnt ihr noch das HTML anpassen und das ganze mit CSS Übersichtlich machen

In Teil 3 werde ich euch dann noch zeigen wie man die Beiträge bearbeitet.

Bei Fragen könnt ihr es gerne Posten oder ->
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Viele Grüße

Pee-ooH

Teil 3 kommt

Für meine Beiträge muss man sich grundsätzlich nicht bedanken!
Usern zu helfen ist selbstverständlich
Pee-ooH ist offline Mit Zitat antworten Antwort
 
DDLB-Elly
treue Memberin


Registriert seit:
26.06.2007
Beiträge:
228

Für Beiträge
bedankt:
326
Erhielt 194 Danke
für 79 Posts
Rang:
91

knoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäre
knoob sorgt für eine eindrucksvolle Atmosphäre
Standard erstellt am: Gestern um 19:02

Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen.
Albert Einstein



 
treuer Member
Benutzerbild von Quark

Registriert seit:
06.11.2007
Ort: Bayern
Alter: 17
Beiträge: 99
Für Beiträge bedankt: 113
Erhielt 80 Danke
für 25 Posts
Rang: 14
Quark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz seinQuark kann auf vieles stolz sein
Quark eine Nachricht über ICQ schicken
 
Standard #2 (Link) erstellt am: 23.06.2008 um 00:22
Geändert von Quark (23.06.2008 um 00:27 Uhr).

Ich weiß man sollte hier ja keine Kommentare zu den Tutorials abgeben, aber in diesem Fall kann ich nicht anders...

Das Script von oben öffnet einem Hacker alle Türen.

1. Variablen sollten grundsätzlich initialisiert und auf Existenz hin geprüft werden, ansonsten gibts ein Warning von PHP

2. Auf keinen Fall Variablen unbearbeitet an die Datenbank schicken (besser vorher mit mysql_real_escape_string() bearbeiten)

3. Eingaben die vom User kommen und anschließend ausgegeben werden immer vorher via htmlspecialchars() oder htmlentities() bearbeiten

Ergo: Das Tutorial von oben auf keinen Fall ohne Änderungen übernehmen, es enthält mehrere Lücken. Zum einen ist ohne weiteres eine SQL Injektion möglich, mit der alles mögliche aus der Datenbank gestohlen werden kann, zum anderen ließe sich beliebiger HTML Code ausführen (XSS/Cross Site Scripting).

The box said, 'Requires Windows XP or better', so I installed Linux...
Quark ist gerade online Mit Zitat antworten Antwort
 

 
M0derat0r
Benutzerbild von Pee-ooH

Registriert seit:
26.06.2007
Ort: Freiburg
Beiträge: 1.738
Für Beiträge bedankt: 410
Erhielt 546 Danke
für 364 Posts
Rang: 90
Pee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes Ansehen
Pee-ooH eine Nachricht über ICQ schicken
 
Standard #3 (Link) erstellt am: 23.06.2008 um 07:04
Zitat:
Zitat von Quark Beitrag anzeigen
Ich weiß man sollte hier ja keine Kommentare zu den Tutorials abgeben, aber in diesem Fall kann ich nicht anders...

Das Script von oben öffnet einem Hacker alle Türen.

1. Variablen sollten grundsätzlich initialisiert und auf Existenz hin geprüft werden, ansonsten gibts ein Warning von PHP

2. Auf keinen Fall Variablen unbearbeitet an die Datenbank schicken (besser vorher mit mysql_real_escape_string() bearbeiten)

3. Eingaben die vom User kommen und anschließend ausgegeben werden immer vorher via htmlspecialchars() oder htmlentities() bearbeiten

Ergo: Das Tutorial von oben auf keinen Fall ohne Änderungen übernehmen, es enthält mehrere Lücken. Zum einen ist ohne weiteres eine SQL Injektion möglich, mit der alles mögliche aus der Datenbank gestohlen werden kann, zum anderen ließe sich beliebiger HTML Code ausführen (XSS/Cross Site Scripting).
Dein Kommentar ist erwünscht Nur weiß ich deine Information zu schätzen und weiß auch alles was du mir sagst aber hättest du in Teil 1 gelesen das ich das hier für Anfänger mache und es so einfach wie möglich halten will.

Wenn jemand später zusätzlich dieses Script verbessern will dann kann er das machen, dies hier ist nur die Basis

Für meine Beiträge muss man sich grundsätzlich nicht bedanken!
Usern zu helfen ist selbstverständlich
Pee-ooH ist offline Mit Zitat antworten Antwort
 

 
UltimateM0der
Benutzerbild von Seoson

Registriert seit:
23.06.2008
Ort: NRW
Beiträge: 132
Für Beiträge bedankt: 79
Erhielt 142 Danke
für 28 Posts
Rang: 22
Seoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes AnsehenSeoson genießt hohes Ansehen
Seoson eine Nachricht über ICQ schicken Seoson eine Nachricht über MSN schicken
 
Lächeln #4 (Link) erstellt am: 23.06.2008 um 13:39
Ich kann mich dem was Quark sagt nur anschließen.

Dieser Sscipt bzw Part Script sollte so nicht verwendet werdne für eine Demonstration reciht er aber volkommen aus.

Wervor hat ein Gästebuch zu betreiben, der sollte einen Captach schutz einbauen und alle Variablen auf unerwünschten inhalt(HTML & PHP) prüfen sowie einmal mit MYQL ad Slashes drüberfliegen.

MfG
Seoson ist offline Mit Zitat antworten Antwort
 

 
M0derat0r
Benutzerbild von Pee-ooH

Registriert seit:
26.06.2007
Ort: Freiburg
Beiträge: 1.738
Für Beiträge bedankt: 410
Erhielt 546 Danke
für 364 Posts
Rang: 90
Pee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes AnsehenPee-ooH genießt hohes Ansehen
Pee-ooH eine Nachricht über ICQ schicken
 
Standard #5 (Link) erstellt am: 23.06.2008 um 17:04
Zitat:
Zitat von Seoson Beitrag anzeigen
Ich kann mich dem was Quark sagt nur anschließen.

Dieser Sscipt bzw Part Script sollte so nicht verwendet werdne für eine Demonstration reciht er aber volkommen aus.

Wervor hat ein Gästebuch zu betreiben, der sollte einen Captach schutz einbauen und alle Variablen auf unerwünschten inhalt(HTML & PHP) prüfen sowie einmal mit MYQL ad Slashes drüberfliegen.

MfG
Einen Captcha Schutz? Spam hin oder her aber diese Säuche werde ich nicht unterstützen. Wiederhole mich zwar ungern aber lest doch alle mal Teil 1 durch und was da steht in den ersten 3 Sätzen.

Ihr könnt aber gerne ein TUT machen wie man Sicherheitslücken schließt und dies mit meinem TUT Verknüpfen. Ist aber nur ein Vorschlag

Für meine Beiträge muss man sich grundsätzlich nicht bedanken!
Usern zu helfen ist selbstverständlich
Pee-ooH ist offline Mit Zitat antworten Antwort
 

 
Moderator
Benutzerbild von Abra

Registriert seit:
27.05.2007
Alter: 19
Beiträge: 2.343
Für Beiträge bedankt: 872
Erhielt 1.346 Danke
für 589 Posts
Rang: 204
Abra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes AnsehenAbra genießt hohes Ansehen
Abra eine Nachricht über ICQ schicken
 
Standard #6 (Link) erstellt am: 27.06.2008 um 10:55
Für mich als absoluten PHP Newbie reicht das vollkommen aus, werde ja wohl sowas als Übungsprojekt aufbauen dürfen, außerdem werde ich keine Angst vor Hackern in meinem Projekt haben da die sowas eh nicht interessiert.


Danke für das Tut, echt gelungen.
Abra ist offline Mit Zitat antworten Antwort
 


  Lesezeichen

Antwort


Themen-Optionen

 
Themen, die dich interessieren könnten
Thema Autor Forum Antworten Letzter Beitrag
[PHP + MySql] Gästebuch *Teil 1* Pee-ooH Tutorials 0 09.06.2008 16:57
PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training) Rascal Diskussionsforum 12 01.04.2008 14:01
[s] Hilfe für PHP und MySQL -Saithron- Programmierung 2 01.12.2007 18:15
Pocker basiernd auf php,mysql ibrf Programmierung 5 25.04.2007 17:35



News   |   Board    |   Chat    |   Teamspeak    |   Team   |   Stuff    |   Partner   |   Archive

SEO by vBSEO 3.2.0


Umbau läuft (v4)