Wenn ein User jetzt seine E-Mail in ein Login-Skript eingibt, wie kann ich den Domain anschauen d.h wie kann ich das machen das sich nur User mit einem bestimmten E-Mail Hoster anmelden dürfen?
mfG,
Suicune_STar
Sammeltopic für kurze Codingfragen
Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!
Zu der Infoseite von „Die Mo-Mo-Manie“-
-
Schau einfach mal den ersten Teil des Tutorials hier [1] an, welches zwar eine Validitätsprüfung macht, dessen Code du aber für deine Ansprüche abändern kannst.
Referenzen:
[1] www.id.uzh.ch/cl/zinfo/pdf/phpneu.pdf -
Ich hab ein Problem mit meiner Pagination (Seitenblätterfunktion) von meinem Gästebuch. Wenn ich auf Seite 2 oder 3 gehe, gibt es mir nicht die 10 aus, die da eigentlich sein müssten, sondern alle Einträge.
PHP
Alles anzeigen<?php // (c) Manuel J. (http://random.square7.de), 2010-2011 if(isset($_POST["submit"])) { echo "<head><title>Installation</title></head>"; include('config.inc.php'); $name = mysql_real_escape_string($_POST["x2pQL1"]); // post value for spam bots $entry = mysql_real_escape_string($_POST["6ru3SH"]); // post value for spam bots $date = date("d.m.Y"); $time = date("H:i"); $email = mysql_real_escape_string($_POST["aB7x0t"]); // post value for spam bots $url = mysql_real_escape_string($_POST["3zIm9n"]); // post value for spam bots if(empty($name) || empty($entry) || empty($email)) { echo "Sie müssen alles ausfüllen! <br> <a href=\"guestbook.php\">Zurück</a>"; } else { $sql = "INSERT INTO guestbook (name, entry, date, time, email, url) VALUES ('".$name."', '".$entry."', '".$date."', '".$time."', '".$email."', '".$url."')"; $query = mysql_query($sql) OR die(mysql_error()); if($query == 1) { echo "Ihr Eintrag wurde erfolgreich gespeichert. <br/> <a href=\"guestbook.php\">Zurück</a>"; } else { echo "Es ist ein Fehler beim Speichern aufgetreten! <br/> <a href=\"guestbook.php\">Zurück</a>"; } } mysql_close($connection); exit; } ?> <!DOCTYPE html> <head> <title>Gästebuch</title> <style>body { background-color: lightblue; } #content { font-family: Arial; margin-left: 25%; margin-right: 25%; margin-top: auto; }</style> </head> <body> <div id="content"> <h2><font color="blue">Gästebuch</font></h2> <form action="guestbook.php" method="post"> <b><small>Ihr Name</small></b> (<b><font color="red">*</font></b>)<br> <input type="text" name="x2pQL1"><br> <b><small>Ihre E-Mail</small></b> (<b><font color="red">*</font></b>)<br> <input type="text" name="aB7x0t"><br> <b><small>Ihre Homepage</small></b><br> <input type="text" value="http://" name="3zIm9n"><br> <b><small>Ihr Eintrag</small></b> (<b><font color="red">*</font></b>)<br> <textarea cols="25" rows="5" name="6ru3SH"></textarea><br> <input type="Submit" value="Absenden" name="submit"> </form> <hr> <?php // (c) Manuel J. (http://random.square7.de), 2010-2011 include('config.inc.php'); if (!(isset($pagenum))) { $pagenum = 1; } $sql = "SELECT id, name, entry, date, time, email, url FROM guestbook ORDER BY id DESC"; $query = mysql_query($sql) OR die(mysql_error()); $result = mysql_num_rows($query); $page_rows = 4; $last = ceil($result/$page_rows); if ($pagenum < 1) { $pagenum = 1; } elseif ($pagenum > $last) { $pagenum = $last; } $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; if($result == 0) { echo "Keine Einträge vorhanden"; echo "<br><br><br><br>"; } else { $i = $result + 1; while($row = mysql_fetch_object($query)) { $i--; $entry = nl2br(htmlspecialchars($row->entry)); $name = htmlspecialchars($row->name); $email = htmlspecialchars($row->email); $url = htmlspecialchars($row->url); echo "<small><b>#".$i."</b> Geschrieben von <a href=".$url.">".$name."</a> am ".$row->date." um ".$row->time." Uhr.</small><br><br> <small>".$entry."</small> <br>"; echo "<hr />"; } echo "<p><small>Seite ".$pagenum." von ".$last." || <small><b>Copyright © 2010-2011 <a href=\"http://random.square7.de\">Manuel J.</a></b></small></small><p>"; if ($pagenum == 1) { } else { echo " <a href='{$_SERVER['PHP_SELF']}?seite=1'><small><<</small></a> "; $previous = $pagenum-1; echo " <a href='{$_SERVER['PHP_SELF']}?seite=$previous'><small><</small></a> "; } if ($pagenum == $last) { } else { $next = $pagenum+1; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'><small>></small></a> "; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'><small>>></small></a> "; } } mysql_close($connection); ?> </div> </body> </html>
Habe eigentlich alles gründlich nach einem Tutorial ausgearbeitet, will aber nicht klappen.
-
Vielleicht den Limit-String aus Zeile 85 passend an den eigentlichen Query in Zeile 72 Anhängen?
Ansonsten reicht es btw auch, um die Anzahl aller Einträge einer Tabelle zu bestimmen, mit der SQL-Funktion COUNT() zu arbeiten. Damit kannst dir dann deine Limit-Parameter errechnen. Will heißen: Der Query aus Zeile 72 wird erst später zum Auslesen der Daten verwendet. Zum bestimmen der Anzahl benutzt du an der Stelle nen Query mit COUNT(). -
Okay, ich habe mal die Variable $max an das Query angehangen, so wie du es gesagt hattest und dabei wahrscheinlich irgendetwas falsch gemacht. Jetzt werden mir nämlich nur die letzten 10 Einträge aus der Tabelle ausgegeben, was vermutlich an dem Limit aus der Variable liegt.
PHP
Alles anzeigen<?php // (c) Manuel J. (http://random.square7.de), 2010-2011 include('config.inc.php'); if (!(isset($pagenum))) { $pagenum = 1; } $page_rows = 10; $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; $sql = "SELECT id, name, entry, date, time, email, url FROM guestbook ORDER BY id DESC $max"; $query = mysql_query($sql) OR die(mysql_error()); $result = mysql_num_rows($query); $last = ceil($result/$page_rows); if ($pagenum < 1) { $pagenum = 1; } elseif ($pagenum > $last) { $pagenum = $last; } if($result == 0) { echo "Keine Einträge vorhanden"; echo "<br><br><br><br>"; } else { $i = $result + 1; while($row = mysql_fetch_object($query)) { $i--; $entry = nl2br(htmlspecialchars($row->entry)); $name = htmlspecialchars($row->name); $email = htmlspecialchars($row->email); $url = htmlspecialchars($row->url); echo "<small><b>#".$i."</b> Geschrieben von <a href=".$url.">".$name."</a> am ".$row->date." um ".$row->time." Uhr.</small><br><br> <small>".$entry."</small> <br>"; echo "<hr />"; } echo "<p><small>Seite ".$pagenum." von ".$last." || <font color=\"blue\">Copyright © 2010-2011 <a href=\"http://random.square7.de\">Manuel J.</a></font></small><p>"; if ($pagenum == 1) { } else { echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'><small><<</small></a> "; $previous = $pagenum-1; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'><small><</small></a> "; } if ($pagenum == $last) { } else { $next = $pagenum+1; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'><small>></small></a> "; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'><small>>></small></a> "; } } mysql_close($connection); ?>
Den COUNT()-Befehl habe ich erstmal rausgelassen.
-
Get-Parameter nimmt man via $_GET an, da man nicht davon ausgehen kann, dass register_globals an sind.
-
Ich habe jetzt ein älteres Skript von mir bearbeitet, in dem ich mich selber nicht mehr richtig auskenne. Man kann Pokémon (für einen Tauschbasar) eintragen, welche dann in Tabellen angezeigt werden. Jetzt habe ich eine Seite hinzugefügt, in der man wählen kann, ob es ein Pokémon der 5. oder 4. Generation ist. Das wird dann per $_POST an die eigentliche Eintragungsseite weitergegeben, aber wenn man auf Absenden klickt, kommt nur der immer angezeigte Copyrighthinweis, und nicht die Eintragunsseite.
Der wichtige Teil des Skripts:[PHP]<?php
if ($page == "choose" AND isset($_POST['pw']) AND $_POST['pw'] == "dfggs" AND isset($_POST['pw2']) AND $_POST['pw2'] == "fgdfs") {
$pw = $_POST ['pw'];
$pw2 = $_POST ['pw'];
echo '
Willst du ein Pokémon, dass sich auf einem Spielmodul der 5. oder auf einem Spielmodul der 4. Generation
befindet, eintragen?<br />
<br />
<form action="?page=add" method="POST">
<input type="radio" name="generation" value="4"><strong>4. Generation</strong><br />
<input type="radio" name="generation" value="5"><strong>5. Generation</strong><br />
<input type="hidden" name="pw" value="'.$pw.'"><br />
<input type="hidden" name="pw2" value="'.$pw2.'>"<br />
<input type="submit" value="Absenden">
</form>';
}
elseif ($page == choose AND $_POST ['pw'] != "gjtrs") {
echo '
<strong>Error:</strong>2 Passwort falsch!<br />
<a href="http://unkas.bplioö.net/tb">Zurück zur Übersicht</a>';
}
// [-] Generationswahlseite
// [+] Eintrageformular
if ($page == "add" AND $_POST ['generation'] == "5" AND isset($_POST['pw']) AND $_POST ['pw'] == "tghs" AND isset($_POST['pw2']) AND $_POST ['pw2'] == "ghs") {
$pw = $_POST ['pw'];
$pw2 = $_POST ['pw2'];
echo ' Eintragungsformulare';
?>[/PHP] -
In Zeile 16 hast du bei 'choose' Anführungszeichen vergessen.
Das letzte IF muss noch mit '}' beendet werden. -
Danke.
Das beim letzen IF lag daran, dass ich da da Script einfach "abgerissen" habe, und der Fehler daran, dass ichin Zeile vier das 1. Passwort auch zum 2. Passwort gemacht habe...
-
Bevor du mittels $_POST['pw'] bzw. den vergleichbaren Methoden $_GET[] und $_REQUEST[] Werte verwendest empfehle ich noch ein Test mittels isset() ob der Wert überhaupt gesetzt ist und dann der Datentyp und Inhalt dem erwartetem entspricht. Man will ja nicht unnötig Sicherheitslöcher aufmachen ;)
-
1. Ist es eigentlich sinnvoll jetzt schon auf HTML 5 umzusteigen, da momentan ja nur moderne Browser davon profitieren können.
2. Dürfen in HTML 5 wirklich <html>, <head> und <body> weggelassen werden oder hat das irgendwelche Nachteile für die Besucher der Seite? -
1. Die älteren sollten aber kein Problem damit haben
2. Gegenfrage: Warum solltest du sie weglassen wollen? -
1. Die älteren sollten aber kein Problem damit haben
Ich dachte IE (mal ausgenommen IE9) hätte Probleme mit HTML 5 und CSS 3.2. Gegenfrage: Warum solltest du sie weglassen wollen?
Naja, weil der Code somit gekürzt wird und Besucher, die die Seite per iPhone/iPad aufrufen von geringeren Ladezeiten profitieren können. Genauso habe ich in einer Zeitschrift gelesen das man die End-Tags weglassen kann (</li>, </p>, etc.), wobei dieses Thema aussagt, dass es recht wenig bringen würde den schließenden Tag wegzulassen. -
1. Ältere Browser, die kein HTML5 können, ignorieren glaube ich die HTML5-Tags wie <video> oder <audio>
Der darin enthaltene Inhalt, mit Ausnahme des Inhalts der Media-Tags, sollte aber angezeigt werden.
Selbiges gilt für CSS32. Grundsätzlich kann man html, body und head weglassen, was bei älteren Versionen von HTML jedoch auch schon so war.
Jedenfalls ist es sinnvoll, diese Tags zu schreiben, der Übersicht halber.
Bei allen anderen Tags mit Ausnahme von <li> sollte man den End-Tag verwenden, weil der Browser sonst nicht weiß, wo ein bestimmer Bereich zu Ende ist.Wenn du die Ladezeiten verringern möchtest, könntest du alle Zeilenumbrüche und sonstige Formatierungen weglassen, sprich den Code in nur eine Zeile schreiben.
Selbiges Prinzip wird z.B. auch bei jQuery verwendet, um die Ladezeiten der JS-Datei zu verringern.
Da kann man auch ruhig alle Tags schreiben ;) -
2. Meinst du die 50 Bytes machen den Brei fett?
-
2. Meinst du die 50 Bytes machen den Brei fett?
Wurde im verlinkten Thema ausgesagt:ZitatDas Argument der Byte-Ersparnis lasse ich nicht gelten, die paar Byte im Vergleich zum üblicherweise "dicken" Content an Bildern usw. fallen nicht ins Gewicht.
Ich wollte jetzt eigentlich nur wissen, ob das Weglassen von Tags Vorteile und/oder Nachteile für die Besucher der Seite hat. -
Eher Nachteile.
-
Durch weggelassene Tags muss die Fehlerkorrektur des Browsers wieder bemüht werden. Je weniger der Browser zu tun hat umso schneller wird die Seite dem Benutzer auch angezeigt. Suchmaschinen können darüber hinaus auch allergisch reagieren wenn man kein valides HTML verwendet was wiederrum Auswirkung auf die Platzierung in den Suchmaschinen hat. Korrektes HTML und die Suchmaschine freut sich.
Bei der Byteersparnis muss auch bedacht werden das fast alle Webserver heutzutage in der Lage sind den Inhalt vor dem verschicken zu komprimieren. Wenn der Webserver anständig konfiguriert ist lässt sich viel manuelle Trickserei, wird dann eh automatisch für alle Inhalte durchgeführt.
-
Noch ein Problem: Wie kann ich mittels .htaccess (mod_rewrite) sämtliche alte Adressen auf meine neue URL umleiten, sodass beispielsweise http://abc.xyz/test.php auf http://abc.lol/test.php umgeleitet wird. Es soll im Grunde genommen nur die Subdomain von den Adressen umgeschrieben werden. -