kostenloser Webspace werbefrei: lima-city


PHP echo Text

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hi !

    Ich habe mal wieder ein kleines Problem. Folgendes Script habe ich mir eben gemacht:

    <?php
    
    $sql = "insert into newsletter (email, vorname, nachname) values ('".$_POST['email']."', '".$_POST['vorname']."', '".$_POST['nachname']."')";
    mysql_query($sql);
    
    echo "<font size='2'>Ihre Emailadresse wurde erfolgreich eingetragen!</font>";
    
    ?>


    Allerdings wird der echo Text auch angezeigt, wenn garnichts eingetragen wurde. Wie kann ich es machen, dass dieser Text nur angezeigt wird, wenn es erfolgreich in die Datenbank eingetragen wurde?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t*****b

    $sql = "insert into newsletter (email, vorname, nachname) values ('".$_POST['email']."', '".$_POST['vorname']."', '".$_POST['nachname']."')";
    if(mysql_query($sql)) {
     echo "<font size='2'>Ihre Emailadresse wurde erfolgreich eingetragen!</font>";
    } else {
    echo "sorry, hat nicht funktioniert";
    }
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    trueweb schrieb:
    $sql = "insert into newsletter (email, vorname, nachname) values ('".$_POST['email']."', '".$_POST['vorname']."', '".$_POST['nachname']."')";
    if(mysql_query($sql)) {
     echo "<font size='2'>Ihre Emailadresse wurde erfolgreich eingetragen!</font>";
    } else {
    echo "sorry, hat nicht funktioniert";
    }



    Es wird aber immernoch dieser Text angezeigt, wenn nichts eingetragen wurde.

    Ich schreibe mal das ganze Formular:

    <form method="POST" action=""><div align="center">
        <center>
        <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="50%" id="AutoNumber3">
          <tr>
            <td width="50%"><b><font face="Arial">Vorname: </font></b></td>
            <td width="50%"><b><font face="Arial">
            <input type="text" name="vorname" size="20"></font></b></td>
          </tr>
          <tr>
            <td width="50%"><b><font face="Arial">Nachname:</font></b></td>
            <td width="50%"><b><font face="Arial">
            <input type="text" name="nachname" size="20"></font></b></td>
          </tr>
          <tr>
            <td width="50%"><b><font face="Arial">E-Mail Adresse:</font></b></td>
            <td width="50%"><b><font face="Arial">
            <input type="text" name="email" size="20"></font></b><br></td>
          </tr>
        </table>
        &nbsp;<p><b><font face="Arial"><input type="submit" value="Abschicken" name="B1"></font></b></p>
        </center>
      </div>
    </form>
    
    
    <?php
    
    $sql = "insert into newsletter (email, vorname, nachname) values ('".$_POST['email']."', '".$_POST['vorname']."', '".$_POST['nachname']."')";
    if(mysql_query($sql)) {
     echo "<font size='2'>Ihre Emailadresse wurde erfolgreich eingetragen!</font>";
    } else {
    echo "Sorry, hat nicht funktioniert";
    }
    
    ?>
  5. Ich sehe hier noch ein generelles Problem, Du prüfst das Formular nicht ob nicht ggf. unerwünschte Einträge gemacht wurden. Stichwort SQL Injections. Faustregel hier ist, traue keiner Eingabe! Sprich Du solltest prüfen ob der Name wirklich ein Name ist und so weiter. Tutorials solltest Du ohne Probleme via Google finden können.
  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Ich hab grad bemerkt, dass das Script bei jedem Aufruf von diesem Formular einen leeren Eintrag in die DB schreibt.
    Wie kriege ich das weg?
  7. Ich hab grad bemerkt, dass das Script bei jedem Aufruf von diesem Formular einen leeren Eintrag in die DB schreibt.
    und hast du schon gecheckt, ob in $_POST['...'] überhaupt was drin ist? und warum schreibst eine tabelle in ein formular? was bringt das? du wilst damit etwa nicht formatieren?
  8. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hat jemand noch eine Idee?
    `
    Ich will, dass der echo Text nur ausgegeben wird, wenn was eingetragen wurde und nicht immer.

  9. t*****b

    czibere hat dir bereits die Antwort gegeben. Du solltest erst einmal die Grundlagen lernen, sonst wirst du nie selbständig ein Script schreiben können und wir nehmen dir hier sicherlich nicht die Arbeit ab!
  10. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    trueweb schrieb:
    czibere hat dir bereits die Antwort gegeben. Du solltest erst einmal die Grundlagen lernen, sonst wirst du nie selbständig ein Script schreiben können und wir nehmen dir hier sicherlich nicht die Arbeit ab!


    Ich finde in dem Script keinen Fehler. Außerdem funktioniert es ja, bis auf das, das bei jedem Aufruf eine leere Zeile in die DB gespeichert wird. Ich will ja erst einen Eintrag in die Datenbank schreiben, wenn man auf Abschicken klickt.
  11. dadurch dass IMMER die qry ausgeführ wird, EGAL was bzw ob was in den textfeldern respektive im $_POST stehet, ist es wohl naheliegend, dass leere datensätze in die db eingetragen werden.

    wie schon erwähnt: fang erst mal mit den basics an, dann wage dich an datenbanken

    mfg
  12. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    syberpsace schrieb:
    dadurch dass IMMER die qry ausgeführ wird, EGAL was bzw ob was in den textfeldern respektive im $_POST stehet, ist es wohl naheliegend, dass leere datensätze in die db eingetragen werden.

    wie schon erwähnt: fang erst mal mit den basics an, dann wage dich an datenbanken

    mfg


    Wie kann ich das Problem denn lösen?
  13. wurde doch schon vorgeschlagen
    einfach prüfen ob was im $_POST drinnen ist;
    und achte darauf, dass keine sql-injections getätigt werden können

    mfg
  14. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    syberpsace schrieb:
    wurde doch schon vorgeschlagen
    einfach prüfen ob was im $_POST drinnen ist;
    und achte darauf, dass keine sql-injections getätigt werden können

    mfg


    Im $_POST ist natürlich nichts drinnen, wenn ich die Seite aufrufe. Wenn ich was in die Felder eintrage und abschicke, wird es problemlos eingetragen. Ich will nur, dass beim Seitenaufruf keine leere Zeile eingetragen wird.

    mfg
  15. DANN MUSST DU EINE ABFRAGE MACHEN; OB IM POST WAS DRINN IST!!!!
    wie oft denn noch????????????????????????????????????
  16. Es zeigt es momentan schon richtig an es wird ja eine Spalte erstellt , aber du möchest deine Datensätze natürlich auch eintragen.

    Versuche ma mit dieser Vorlange vlt etwas weiterzukommen.

    Versuche mal nicht sofort das $_POST einzutragen leg es erst in einer variable fest

    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];
    $email = $_POST['email'];

    $eintrag = "INSERT INTO newsletter
    (email,vorname,nachname)

    VALUES
    ('$email', '$vorname',
    '$nachname')";

    $eintragen = mysql_query($eintrag);
  17. kyzu schrieb:
    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];
    $email = $_POST['email'];

    $eintrag = "INSERT INTO newsletter
    (email,vorname,nachname)

    VALUES
    ('$email', '$vorname',
    '$nachname')";

    $eintragen = mysql_query($eintrag);


    das kommt aufs KOMPLETT gleiche raus (bis auf die tatsache, dass der server gaaanz wenig mehr speicher für das anlegen der variablen verbrät)

    du musst mit isset($variablenname) abfragen, ob überhaupt was drinn steht, sonst wirst du dir bis in alle ewigkeit die datenbank mit leerzeilen anfüllen.

    ich darf dir php.net empfehlen bevor du weitermachst, auch nur irgendwas mit php zu machen, wenn du nichtmal weißt, wie man richtig abfragt ob eine $_POST variable belegt ist

    mfg
  18. davy schrieb:Ich will nur, dass beim Seitenaufruf keine leere Zeile eingetragen wird.
    dann schau mal hier rein: http://czibere.lima-city.de/davy/index.php und mache es einfach nach, aber versuch's, die logik dahinter reinzuziehen :o)
  19. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Ich habe mir folgendes zusammengebastelt:

    <?php
    
    }elseif(!isset($_POST['vorname']) || $_POST['vorname'] == ""){
       echo '<p align="center"><br><br><br>Bitte gib deinen Vornamen an!<br><br><a href="javascript:history.back()">Zur&uuml;ck</a><br><br><br></p>';
    }elseif(!isset($_POST['nachname']) || $_POST['nachname'] == ""){
       echo '<p align="center"><br><br><br>Bitte gib deinen Nachnamen an!<br><br><a href="javascript:history.back()">Zur&uuml;ck</a><br><br><br></p>';
    }elseif(!isset($_POST['email']) || $_POST['email'] == ""){
       echo '<p align="center"><br><br><br>Bitte gib deine E-Mailadresse an!<br><br><a href="javascript:history.back()">Zur&uuml;ck</a><br><br><br></p>';
    
    
    if($insert = @mysql_query("INSERT INTO newsletter SET email = '".$_POST['email']."', vorname = '".$_POST['vorname']."', nachname = '".$_POST['nachname']."'")) {
    echo '<p align="center"><br><br>Deine Emailadresse wurde erfolgreich eingetragen.<br></p>';
    }else{
    echo '<p align="center"><br><br><br>Der Eintrag war leider nicht erfolgreich!<br>Bitte probieren Sie es erneut!<br><br><a href="index.php?site=anmelden">Zur&uuml;ck</a><br><br><br></p>';
    }
    
    ?>


    Allerdings kommt nur eine weiße Seite. Was mache ich falsch?
  20. t*****b

    davy schrieb:
    Was mache ich falsch?


    Du versuschst PHP anzuwenden, ohne die Logik und die Sprache zu verstehen. Solange du das nicht tust, wirst du nie selbständig programmieren können.
  21. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    trueweb schrieb:
    davy schrieb:
    Was mache ich falsch?


    Du versuschst PHP anzuwenden, ohne die Logik und die Sprache zu verstehen. Solange du das nicht tust, wirst du nie selbständig programmieren können.


    Wenn ihr mir nicht zeigt, was ich falsch mache, lern ich ja auch nicht
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!