Fehlerabfrage

Yvi91

Grünschnabel
Hey
brauche ganz dringend Hilfe..und vorab..bin ganz am Anfang von php...also noch nicht so wissend in diesem Bereich.

Ich bin in der 12. Klasse und muss ein Gästebuch erstellen. Hab ich alles und funktioniert auch, nur n Bekannter hat mir größtenteils geholfen. Der ist jezz aba nich da.
So mein Problem:
Wenn ein Gästebuch Eintrag im Formular gemacht wird, soll dies überprüft werden auf Name, E-Mail, Nachricht, Land und Lieblingsbild, ob was eingetragen wurde. Mir fehlen jezz die Fehlerabfragen für Land (select funktion) und Lieblingsbild (radiobuttons). Bei Namen usw. kann ich ja die Länge der Zeichenkette abfragen mit if...else. Nun weiß ich aber nicht, wie man das beim Land und beim Lieblingsbild abfragen kann ob da etwas ausgewählt worden ist oder nicht. Hoffe das war einigermaßen verständlich. Kann mir jmd weiterhelfen

Liebe Grüße Yvi
 
Angenommen die Select-Gruppe sieht in etwa so aus:
HTML:
<select name="lieblingsland">
	<option value="">ungültig</option>
	<option value="a">A</option>
	<option value="ch">CH</option>
	<option value="de">DE</option>
	<option value="gb">GB</option>
	<option value="us">USA</option>
</select>

In diesem Fall kannst du einfach überprüfen, ob der "lieblingsland"-Parameter übergeben wurde, und ob etwas drinsteht. Die erste Variante überprüft, ob überhaupt etwas übergeben wurde mit Inhalt, die zweite Variante prüft stattdessen, ob die Eingabe (sofern vorhanden) gegen ein vorgegebenes Set an gültigen Daten validiert werden kann.
PHP:
<?php
$lieblingsland = ( isset( $_REQUEST['lieblingsland'] ) )
		? $_REQUEST['lieblingsland']
		: null;

/// simple Variante
if ( $lieblingsland !== null ) {
	// Lieblingsland wurde ausgewählt
} else {
	// Lieblingsland wurde nicht ausgewählt
}


/// geringfügig präziser
$erlaubteLieblingslaender = array(
		'a', 'ch', 'de', 'gb', 'us'
	);

if ( in_array( $lieblingsland, $erlaubteLieblingslaender, true ) ) {
	// Lieblingsland okay
} else {
	// Lieblingsland ungültig, oder es wurde keines ausgewählt
}

Ähnlich kannst du dann auch die Auswahlt in Bezug auf die Radio-Boxen gestalten. Schau nach, wie der Parameter im Formular heißt, und überprüf anschließend, ob der Wert übergeben wurde, und ob etwas drinsteht (Beispielsweise über Vergleich mit einem leeren String oder einer Überprüfung der String-Länge).
PHP:
if ( '' == $wert ) {
	// leer -> ungültig
} else {
	// gültig
}

if ( strlen( $wert ) == 0 ) {
	// leer -> ungültig
} else {
	// gültig
}

Mal davon ab: Lernt man heute nicht mehr, wie "jetzt" und "aber" geschrieben wird?
 
Zuletzt bearbeitet:
Hey
danke für die schnelle Antwort.
Das mit der Abfrage der Länder funktioniert jetzt, aber das mit den Radio Buttons habe ich noch nicht hinbekommen. Irgendetwas hat dann wohl in meinen Angaben noch gefehlt, da er gar nichts gemacht hat. Noch nicht mal das Feld rot umrandet. Werde mich daran weiterversuchen und wenn ich das dann immer noch nicht hinbekomme mich wieder melden.
Und nochmal DANKE SCHÖN. Hat mir sehr geholfen :)
Und doch...man lernt die Rechtschreibung in der Schule, nur im Internet (in Foren etc.) ist mir das eigentlich ziemlich egal.

Liebe Grüße Yvi
 
Hi!

Und doch...man lernt die Rechtschreibung in der Schule, nur im Internet (in Foren etc.) ist mir das eigentlich ziemlich egal.

Aber uns nicht, denn wir müssen es auch noch lesen können! ;-]
Nein, mal ehrlich. Hier im Netzt fängt es an... und so etwas schleift sich schnell ein...
Dann viel Spaß im Beruf, in der Ausbildung oder im Studium. Man hat die Rechtschreibung nicht umsonst erfunden und wir sollten unserer Sprache soviel Respekt gegenüber erweisen und uns an die Regeln, nach Möglichkeit, halten.

- - - - - - - - - - -

So, jetzt zu deinem Anliegen:

Die Radiobuttons funktionieren eigentlich analog zu der Select-Box:
PHP:
<input type="radio" name="meinBild" value="Bild1" />
<input type="radio" name="meinBild" value="Bild2" />
<input type="radio" name="meinBild" value="Bild3" />
<input type="radio" name="meinBild" value="Bild4" />

Die Auswertung kann wie so erfolgen:
PHP:
if(isset($_REQUEST["meinBild"]))
    {
        echo "Bild ausgewählt";
    }
else {
        echo "Kein Bild ausgewählt";
}


Viele Grüße,
Jacka
 
PHP:
if(isset($_REQUEST["meinBild"]))
    {
        echo "Bild ausgewählt";
    }
else {
        echo "Kein Bild ausgewählt";
}

Lieber die Variable nehmen, über die es Übertragen wird:
$_GET falls in der Form: method="get"
und
$_POST falls in der Form: method="post"

Macht es insbesondere bei einem Formular das per Post übertragen wird schwerer dieses zu manipulieren.
 
Hey,

Vielen Dank, habe es hinbekommen. :) Und jetzt noch etwas, ist mir ja ein wenig peinlich..ich habe ein login für den Adminbereich, jedoch kein Logout *rotwerd* Habt ihr vielleicht noch simple Vorschläge für ein logout?

Ich werde darauf achten, dass ich mir die richtige Schreibweise, egal wo, wieder annehme. :)

Liebe Grüße YVi
 
Zuletzt bearbeitet:
Ich werde darauf achten, dass ich mir die richtige Schreibweise, egal wo, wieder annehme. :)
Ach lass dich mal von denen da oben bloß nicht einschüchtern. :D
Auch wenn sie Recht haben, wie du in anderen Foren schreibst darf uns hier mächtig egal sein. ;)

Zur Frage: Wenn du mit Sessions arbeitest, musst du diese lediglich beenden, z. B. mit session_destroy().

Ansonsten erklär, bzw. zeig mal dein Login-Skript.
 
Ach lass dich mal von denen da oben bloß nicht einschüchtern. :D
Auch wenn sie Recht haben, wie du in anderen Foren schreibst darf uns hier mächtig egal sein. ;)

Zur Frage: Wenn du mit Sessions arbeitest, musst du diese lediglich beenden, z. B. mit session_destroy().

Ansonsten erklär, bzw. zeig mal dein Login-Skript.

Also, mit sessions arbeite ich bisher noch gar nicht.
Mein Login erfolgt über die Datenbank, wo ich in der Tabelle "Admin", Passwort und Name stehen habe und im Skript beziehe ich somit beides aus der Datenbank und lasse das auch mit if...else überprüfen, ob es die beiden variablen aus der Datenbank sind. Halt so:
PHP:
<?php

$admin_name = $_POST["admin_name"];
$admin_passwort = $_POST["admin_passwort"];

include("../include/connect.inc.php");
$admin_sql = "select * from admin where admin_name = '$admin_name' and admin_passwort = '$admin_passwort'";
$admin_query = mysql_query($admin_sql);
$admin_zugang = mysql_num_rows($admin_query);


if($admin_zugang == 0){
	echo '<table width="500" border="0" cellspacing="0" cellpadding="3" class="admin_rand" align="center">';
	echo '<tr>';
	echo '<td class="admin_ueberschrift">';
    echo 'Loginmeldung</td>';
	echo '</tr><tr><td align="center">';
	echo "Name oder Passwort falsch";
	echo "<br>";
	echo "<a href='../index.php?vs=$vs' target='_top'>Neuer Versuch</a>";
	echo "</td></tr></table></body></html>";
	exit();
}else{

?>
 
Hinterlegst du nirgendwo, ob der User XY gerade eingeloggt ist oder nicht?
Weil, wenn dem so ist, ist man nach einem einzigen Klick sowieso wieder ausgeloggt, ausser du übergibst die beim Login übergebenen Daten bei jedem Klick aufs neue. :confused:
 
Nee, das mache ich nicht. Weil der Admin nach dem Einloggen nur im Gästebuch ist um die Einträge zu löschen, mehr nicht. Sprich, er loggt sich nur dafür ein. Also muss ich da nicht unbedingt ein Logut haben
 
Zurück