[GastForen Programmierung/Entwicklung PHP und MySQL Prob bei Formular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Prob bei Formular

alpr
Beiträge gesamt: 15

4. Sep 2007, 15:49
Beitrag # 1 von 12
Bewertung:
(2961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

bei diesem Script wird nie angezeigt wenn ich Einträge nicht eintrage, nur die AGB werden als nicht eingetragen angezeigt (als Testausgabe) wenn ich das Feld frei lasse.

Kann mir da jemand helfen?



<body>
<?php
if (isset ($_POST['submit'])) {
if (isset($_POST['name_site']) && !is_array($_POST['name_site'])) {
echo 'Name der Web-Site ist: ' . htmlspecialchars($_POST['name_site']) . '<br />';
} else {
echo 'Keine Web-Site eingetragen!<br />';
}



if (isset($_POST['url_site']) && !is_array($_POST['url_site'])) {
echo 'Link der Web-Site ist: ' . htmlspecialchars($_POST['url_site']) . '<br />';
} else {
echo 'Keine URL eingetragen!<br />';
}



if (isset($_POST['keywords_site']) && !is_array($_POST['keywords_site'])) {
echo 'Die Keywords sind: ' . htmlspecialchars($_POST['keywords_site']) . '<br />';
} else {
echo 'Keine Keywords eingetragen!<br />';
}



if (isset($_POST['beschreibung_site']) && !is_array($_POST['beschreibung_site'])) {
echo 'Die Beschreibung lautet: ' . htmlspecialchars($_POST['beschreibung_site']) . '<br />';
} else {
echo 'Keine Beschreibung eingetragen!<br />';
}



if (isset($_POST['email_user']) && !is_array($_POST['email_user'])) {
echo 'Ihre Email lautet: ' . htmlspecialchars($_POST['email_user']) . '<br />';
} else {
echo 'Keine Email eingetragen!<br />';
}



if (isset($_POST['agb']) && !is_array($_POST['agb'])) {
echo 'AGB akzeptiert? ' . htmlspecialchars($_POST['agb']) . '<br />';
} else {
echo 'AGB nicht akzeptiert!<br />';
}

}

?>


<form action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']); ?>" method="post">

<table width="800" border="0">

<tr>
<td width="295">Name der Web-Site<br />
(z.B.: i-found, das Suchportal) </td>
<td width="295"><label>
<input type="text" name="name_site" size="70" />
</label></td>
</tr>

<tr>
<td>URL der Web-Site<br />
(z.B.: www.i-found.de) </td>
<td><label>
<input type="text" name="url_site" size="70" />
</label></td>
</tr>

<tr>
<td>Suchw&ouml;rter f&uuml;r die Web-Site (max. 10 W&ouml;rter) <br />
(z.B.: suchmaschine, senioren, kinder...)</td>
<td><label>
<textarea name="keywords_site"></textarea>
</label></td>
</tr>

<tr>
<td>Beschreibung<br />
(beschreiben Sie kurz Ihre Web-Site) </td>
<td><label>
<textarea name="beschreibung_site" size="265"></textarea>
</label></td>
</tr>

<tr>
<td><p>Ihre Email Adresse<br />
(wird ben&ouml;tigt um Ihnen ein EMail zu schicken<br />
Sie bekommen dann ein Email von uns das Sie<br />
best&auml;tigen m&uuml;ssen, erst dann wird die Site vom<br />
Admin &uuml;berpr&uuml;ft und freigeschaltet .
</td>
<td><label>
<input type="text" name="email_user" size="70" />
</label></td>
</tr>

<tr>
<td><a href="agb.php" target="_blank">Bitte best&auml;tigen Sie die Bedingungen </a></td>
<td><label>
<input type="checkbox" name="agb" value="OK" />
<a href="agb.php" target="_blank">Bin mit AGBs einverstanden</a></label></td>
</tr>

<tr>
<td><label>

</label></td>
<td><label>
<input type="submit" name="submit" value="Senden" />
</label></td>
</tr>

</table>
</form>
</body>
</html>
X

Prob bei Formular

flobaer
Beiträge gesamt: 317

4. Sep 2007, 17:13
Beitrag # 2 von 12
Beitrag ID: #310995
Bewertung:
(2946 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo alpr,

so ganz spontan: Was willst du denn über !is_array($_POST['name_site']) rausfinden? Du hast ein Textinput. Also wenn du wissen willst, dass da nichts drin steht, musst die Abfrage so lauten:
Code
if (isset($_POST['name_site']) && $_POST['name_site']!="") 

Das sollte dann auch funktionieren.

Viele Grüße,
Florian


als Antwort auf: [#310975]

Prob bei Formular

alpr
Beiträge gesamt: 15

5. Sep 2007, 14:26
Beitrag # 3 von 12
Beitrag ID: #311126
Bewertung:
(2927 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

danke für deine schnelle Hilfe, ich hab das Problem lösen können.

Auf arrays habe ich überprüft, da ich später evtl. eine Mehrauswahl einfügen möchte und dadurch eine höhere Sicherheit habe, da so kein Angreifer ein Array php vormachen kann (so in etwa)

Jetzt hab ich eine andere Frage, vielleicht kannst du mir dabei auch helfen.

Ich möchte das bei einem nicht ausgefüllte Testfeld daneben ein roter Stern erscheint, so das der User das Feld sofort erkennt wo er nichts eingetragen hat.

Dafür würde ich diese Zeile gerne einfügen, nur weiß ich nicht wie und wo:
( echo '<span style="color:red">*</span>'; )
Ich habe natürlich versucht es in die "echo" Zeile einzutragen, aber ohne Erfolg.


<td><input type="text" name="name_site" value="<?php
if (isset($_POST['name_site']) && !is_array($_POST['name_site'])) {
echo htmlspecialchars($_POST['name_site']);
}
?>" /></td>

Kannst du oder jemand anderer mir da helfen?

Danke schon mal

Alex


als Antwort auf: [#310995]

Prob bei Formular

flobaer
Beiträge gesamt: 317

5. Sep 2007, 15:19
Beitrag # 4 von 12
Beitrag ID: #311141
Bewertung:
(2920 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
probier es mal so (ungetestet):
Code
if(isset($_POST['name_site']) && !is_array($_POST['name_site']) && $_POST['name_site'] !="") 
echo("<input type='text' name='name_site' value='".htmlspecialchars($_POST['name_site'])."' />");
else
echo("<span style='color:red;'>*</span><input type='text' name='name_site' />");


Viele Grüße,


als Antwort auf: [#311126]

Prob bei Formular

alpr
Beiträge gesamt: 15

5. Sep 2007, 16:05
Beitrag # 5 von 12
Beitrag ID: #311163
Bewertung:
(2912 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
danke, aber geht leider nicht.

Habe diesen Code genommen:
Code
        <td><input type="text" name="name_site" value="<?php 
if(isset($_POST['name_site']) && !is_array($_POST['name_site']) && $_POST['name_site'] !="")
echo("<input type='text' name='name_site' value='".htmlspecialchars($_POST['name_site'])."' />");
else
echo("<span style='color:red;'>*</span><input type='text' name='name_site' />");
?>"
/></td>


Er schreibt jetzt in das Textfeld diesen Text beim ausführen: <span style='color:red;'>*</span><input type='text' name='name_site' />

Gruß

Alex


als Antwort auf: [#311141]

Prob bei Formular

flobaer
Beiträge gesamt: 317

5. Sep 2007, 16:22
Beitrag # 6 von 12
Beitrag ID: #311173
Bewertung:
(2908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, das hast du ihm (wer ist eigentlich er) ja auch gesagt. Versuch es mal so:
Code
<td> 
<?php
if(isset($_POST['name_site']) && !is_array($_POST['name_site']) && $_POST['name_site'] !="")
echo("<input type='text' name='name_site' value='".htmlspecialchars($_POST['name_site'])."' />");
else
echo("<span style='color:red;'>*</span><input type='text' name='name_site' />");
?>
</td>



als Antwort auf: [#311163]

Prob bei Formular

alpr
Beiträge gesamt: 15

5. Sep 2007, 16:31
Beitrag # 7 von 12
Beitrag ID: #311177
Bewertung:
(2906 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke,

er ist Fritz ;-) (gebe meinen Programmen immer Namen).

Danke jetzt geht es und eigentlich viel besser als ich es wollte, er zeigt jetzt sofort das rot * an, noch bevor er was gemacht hat, meinte eigentlich das es erst kommt wenn er es verschickt, aber so kann ich rotes * als Pflichtfelder angeben und wenn er es richtig ausfüllt sind die * weg.

Super, echt toll von dir, ist mein erstes Projekt das ich mache, da klappt noch nicht alles so wie es soll.

Gruß

Alex


als Antwort auf: [#311173]

Prob bei Formular

flobaer
Beiträge gesamt: 317

5. Sep 2007, 16:38
Beitrag # 8 von 12
Beitrag ID: #311178
Bewertung:
(2904 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

du musst natürlich noch eine Überprüfung machen, ob das Formular schon mal abgeschickt wurde. Dafür kannst du die eine Variable definieren, die auf false steht und nach dem Abschicken auf true geschaltet wird. Das könnte dann etwa so aussehen:
Code
$abgeschickt=false; 
if(isset($_POST['submit'])) $abgeschickt=true;

Bei der Ausgabe musst die dann entsprechend abfragen:
Code
<td>  
<?php
if(isset($_POST['name_site']) && !is_array($_POST['name_site']) && $_POST['name_site'] !="")
echo("<input type='text' name='name_site' value='".htmlspecialchars($_POST['name_site'])."' />");
else
{
if($abgeschickt)
echo("<span style='color:red;'>*</span>");
echo("<input type='text' name='name_site' />");
?>
</td>


Das sollte das dann lösen.

Viele Grüße,
Florian


als Antwort auf: [#311177]

Prob bei Formular

alpr
Beiträge gesamt: 15

5. Sep 2007, 16:58
Beitrag # 9 von 12
Beitrag ID: #311185
Bewertung:
(2899 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

danke für den Tip, werde mich so bald wie möglich drann machen.

Ist das, dass es nicht zweimal abgeschickt/eingetragen wird?

Ich habe mir für dieses Problem gedacht, das ich eine Datei habe, das Formular schreibt die aktuelle Zeit rein (in sec.) wenn es verschickt wird und wenn es noch mal verschickt wird (das gleiche) die Zeit in der Datei verglichen wird, da die Zeit im Formular dann wieder die gleich sein müsste (dachte ich mir), würde true/false ausgegeben und dann einfach nicht mehr verschickt/eingetragen.

Ich denke aber das deine Methode viel besser ist, meine scheint kompliziert zu sein und ich habe es mir nur mal so überlegt, kann ja nicht mal sagen ob meine Idee gehen würde.

Aber danke noch mal für deine Hilfe.

Gruß

Alex


als Antwort auf: [#311178]

Prob bei Formular

flobaer
Beiträge gesamt: 317

5. Sep 2007, 17:09
Beitrag # 10 von 12
Beitrag ID: #311187
Bewertung:
(2897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

die Variable verhindert nicht, dass irgendwelche Datenbankeinträge doppelt gemacht werden, sondern sorgt nur dafür, dass die roten Sterne nicht ausgegeben werden bevor das Formular überhaupt abgeschickt wird.
Wenn du verhindern willst, dass Daten mehrfach eingetragen werden (das wäre zum Beispiel dann der Fall, wenn nach dem Eintragen der Daten der User die Seite über einen Reolad neu lädt) musst du das anders lösen. Der einfachste Weg wäre nach erfolgreichem Eintragen der Daten per header auf eine andere Seite zu springen. Du kannst aber auch eine Prozedur verwenden, die ähnlich funktiniert wie das, was du dir da ausgedacht hast. Das wäre dann aber schon wieder ein anderes Thema.

Viele Grüße,
Florian


als Antwort auf: [#311185]

Prob bei Formular

alpr
Beiträge gesamt: 15

5. Sep 2007, 17:23
Beitrag # 11 von 12
Beitrag ID: #311190
Bewertung:
(2895 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Florian,

danke, aber ich finde es gut wenn die Sterne gleich am Anfang da sind, so konnte ich auch schreiben "Bitte füllen Sie alle * Felder aus" oder so.

Aber danke, ich werde auch deine Idee in ein anderes Formular machen, dann hab ich es schon mal, man kann nie sagen was man mal braucht ;-) .

Das Problem mit dem Reolad werde ich erst mal selber versuchen, sollte ich es nicht schaffen, weiß ich ja in welchem Forum einem geholfen wird, Danke.

Gruß

Alex


als Antwort auf: [#311187]

Noch einfacher

Bitfilme
Beiträge gesamt: 264

5. Sep 2007, 18:20
Beitrag # 12 von 12
Beitrag ID: #311200
Bewertung:
(2880 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch einfacher:
Code
<td>  
<?php
if(isset($_POST['name_site']) && !is_array($_POST['name_site']) && $_POST['name_site'] !="")
echo("<input type='text' name='name_site' value='".htmlspecialchars($_POST['name_site'])."' />");
else
{
if(isset($_POST['submit']) && $_POST['submit'])
echo("<span style='color:red;'>*</span>");
echo("<input type='text' name='name_site' />");
?>
</td>

Gruss Bitfilme


als Antwort auf: [#311178]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
29.10.2020

Ortsunabhängig
Donnerstag, 29. Okt. 2020, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. 30-minütigen Webinar das neueste Produkt aus dem Hause Enfocus vor. Enfocus bringt mit BoardingPass eine pfiffige Lösung auf den Markt, welche eingehende Daten auf die wichtigsten druckrelevanten Kriterien hin gleich im Mail-Browser prüfen lässt. Mit BoardingPass sind auch Kundenberater und Avor-/Vertriebs-Mitarbeiter in der Lage, eingegangene Druckdaten innerhalb ihres Mail-Programmes sofort zu prüfen und dem Auftraggeber eine leicht verständliche Rückmeldung über diese zu geben. Die Druckdaten müssen also gar nicht erst über den internen Workflow des Druckdienstleisters laufen, sondern können direkt auf druckrelevante Kriterien geprüft und auch begutachtet werden.

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=292

Enfocus BoardingPass
Veranstaltungen
02.11.2020 - 03.11.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 02. Nov. 2020, 08.30 Uhr - Dienstag, 03. Nov. 2020, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Preis: CHF 1'400.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/desktop-publishing/adobe-indesign-cc/kurs-indesign-cc-basic

Neuste Foreneinträge


Affinity Designer Objekte auswählen

Bestimmte PDF-Kommentare löschen

Affinity Photo und Photoshop: HSL-Farbbereich als Maske speichern

Buchdateien kopieren

Werkzeugleiste und Bedienfelder sind verschwunden

Wie importiere ich eine Word Datei mit Fussnoten in Indesign?

PDF Export mit Briefpapier einfügen

Pantone - reiner Buntaufbau

Flächendeckung einer Datei

Absurde Werte der automatischen Unterstreichungstärke
medienjobs