php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-01-2008, 12:21
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Exclamation Eintragen in DB funzt aber löschen nicht! Bitte Hilfe!

Hallo @ all.

Ich bin dabei einen kjleinen Newsletter zu schreiben und habe ein Problem. Und zwar wenn der User meine Seite betritt dann soll er sich mit seiner E-Mail Adresse eintragen können oder auch wieder austragen. Das eintragen funktioniert so wie es soll nur das austragen (löschen) klappt gar nicht. Ich habe schon seid Tagen probiert doch es geht nicht. Entweder bin ich zu blöd oder ich weis es nicht.

Ich sende hier mal den Code und das Formular dazu. Ich danke vielmals für eure Hilfe MFG der Litter!

PHP-Code:
<?php
session_start
();
error_reporting(E_ALL);

require(
'config.inc.php');

//Newsletter eintragen

if(isset($_POST['senden']))
{
    
//Variablen für Post Versand
    
$wahl    =    $_POST['wahl'];
    
$email    =    $_POST['email'];
    
        if(
$_POST['wahl']==0)
        {
            
mysql_query("Delete From $tab_nl where id='".$_POST['id']."'")or die(mysql_error());
        }
        else
        {
            if(
$_POST['wahl']=="" && $_POST['email']=="")
            {
                echo 
"Du musst eintragen/oder austragen wählen und/oder eine Mailadresse eingeben!<br>
                <a href=\"http://localhost/my-page/index.php\">Zurück</a>"
;
            }    
            else
            {
                if(
$_POST['wahl']==1)
                {
                    
mysql_query("Insert Into $tab_nl
                                (email)
                        VALUES    ('$email')
                                "
)or die (mysql_error());
                    
header("Location: [url]http://localhost/my-page/index.php[/url]");
                    
mysql_close();
                }
            }
        }

$nl_result mysql_query("Select * From $tab_nl");
while(
$nl_row = @mysql_fetch_array($nl_result)){

        
$nl_id        =    $nl_row['id'];
        
$nl_email    =    $nl_row['email'];
    }

}

//Newsletter beendet
?>

<table cellspacing="0" cellpadding="0" width="160">
    <tr>
    <td colspan="2" background="http://localhost/my-page/grafiken/newsletter-hg.png">&nbsp;</td>
    </tr>
    <form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" name="formular">
    <tr>
    <td width="160" class="menu_td" align="center"><input type="radio" name="wahl" value="1">
    eintragen</td>
    </tr>
    <tr>
    <td width="160" class="menu_td" align="center"><input type="radio" name="wahl" value="0">
    austragen</td>
    </tr>
    <tr>
    <td width="160" class="menu_td" align="center" height="30">
    E-Mail:&nbsp;<input type="text" name="email" class="textfeld" style="width: 90px; height: 18px;">
    </td>
    </tr>
    <tr>
    <td width="160" class="menu_td" align="center" height="30">
    <input type="submit" name="senden" class="textfeld" value="Senden">
    </td>
    </tr>
    </form>
    </table>

Geändert von litterauspirna (08-01-2008 um 13:17 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 08-01-2008, 13:02
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Vielleicht mal ein
PHP-Code:
or die( mysql_error() ); 
hinter deine delete-query?
Mit Zitat antworten
  #3 (permalink)  
Alt 08-01-2008, 13:06
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Woher kommt $_POST['id']? Kann ich in deinem Form nicht sehen. Und ich nehme an, dass id der Primary Key der Tabelle ist und daher ist es ein Integer und kein String --> keine ' und ' um den Wert von id
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #4 (permalink)  
Alt 08-01-2008, 13:06
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe ich grade gemacht,sorry habe ich vergessen. Aber es bringt mir keinerlei Fehlermeldung dabei. Es wird einfach nicht ausgeführt das löschen. Nur das eintragen funktioniert tadellos
Mit Zitat antworten
  #5 (permalink)  
Alt 08-01-2008, 13:10
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

WOHER KOMMT $_POST['id']????
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #6 (permalink)  
Alt 08-01-2008, 13:10
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

Wo kommt denn $_POST['id'] her? Sollte nicht der Datensatz gelöscht werden, in dem die eingegebene eMail steht?
PHP-Code:
mysql_query('DELETE FROM $tab_nl WHERE email="'.$_POST['email'].'"') or die(mysql_error()); 
EDIT:
^^ zu langsam....habt ihr Leute keine Mittagspause?

EDIT:
sorry, musst natürlich nach der Email suchen, nicht der ID

Geändert von ZombieChe (08-01-2008 um 13:16 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 08-01-2008, 13:11
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja genau er sollte gelöscht werden. Muss ich den vorher erst auslesen? Ich tue ja in dem Scriptteil auch die Datensätze eintragen was ja geht. Habe den Code obern geändert. funktioniert aber immer noch nicht

Geändert von litterauspirna (08-01-2008 um 13:17 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 08-01-2008, 13:26
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

Zitat:
$nl_result = mysql_query("Select * From $tab_nl");
while($nl_row = @mysql_fetch_array($nl_result)){

$nl_id = $nl_row['id'];
$nl_email = $nl_row['email'];
}
Das ist absolut sinnfrei. Du brauchst nur deine Query zum Löschen ändern. Du musst dich beim Löschen eines Datensatzes nicht auf die ID beschränken und brauchst erst recht nicht den kompletten Datenbestand manuell zu durchlaufen (wie gesagt - sinnfrei).

Du löschst den Datensatz, wo das Feld `email` gleich der eingegebenen eMail ist, also 'WHERE email = "'.$_POST['email'].'"'
Mit Zitat antworten
  #9 (permalink)  
Alt 08-01-2008, 13:26
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nochmals zu Sicherheit: Was genau willst du löschen? Einen Datensatz mit einer bestimmten ID (die du natürlich kennen musst) oder einen Datensatz mit einer bestimmten Email (welche du auch kennen musst)?
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 08-01-2008, 13:32
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es soll der User die möglichkeit haben wenn er den Newsletter nicht mehr in Anspruch nehmen will seine E-Mail Adresse zu löschen. Wenn ich das nur nach dem Feld email mache bleibt doch die eigentliche id bestehen oder? Es soll der ganze Datensatz gelöscht werden
Mit Zitat antworten
  #11 (permalink)  
Alt 08-01-2008, 13:46
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wenn ich das nur nach dem Feld email mache bleibt doch die eigentliche id bestehen oder? Es soll der ganze Datensatz gelöscht werden
Bei dieser Argumentation würde aber bei id ebenfalls nur die id gelöscht werden, oder? Es werden immer ganze Datensätze sprich alle Spalten eines Datensatzes gelöscht.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #12 (permalink)  
Alt 08-01-2008, 13:53
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gut wieder was gelernt. Wo liegt bei mir der Fehler? Ich werde es nach email löschen.

Danke allen hier für die Untestützung. Jetzt funktioniert es richtig.

Geändert von litterauspirna (08-01-2008 um 13:57 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 08-01-2008, 13:57
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@ZombieChe
PHP-Code:
mysql_query('DELETE FROM $tab_nl WHERE email="'.$_POST['email'].'"') or die(mysql_error()); 
Wie war das nochmal mit Vars und Strings ?
@Topicstarter
Hast du genau ZombieChe's Code genommen? Die Var $tab_nl wird dabei nicht interpretiert sondern als String behandelt.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #14 (permalink)  
Alt 08-01-2008, 14:07
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja ich habe das genommen und es funktioniert? Ist das zu unsicher?
Mit Zitat antworten
  #15 (permalink)  
Alt 08-01-2008, 14:20
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Die Var $tab_nl wird dabei nicht interpretiert sondern als String behandelt.
Vielleicht hat er andere Anführungszeichen gesetzt oder die Variable durch seine Tabelle ersetzt.
Zitat:
Ist das zu unsicher?
mysql_real_escape_string anwenden.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43 Uhr.