hmmm eine tolle Überlegung. danke. Nur wie mache ich das dann? soll ich dann meine zweite Domain auf das selbe Verzeichnis schicken statt ne domainumleitung?
Beiträge von flo96
-
-
Hallo Leute,
ich schreib für meinen D Grundkurs grad ne Website bei der ein Teil eine Umfrage ist.
Die Umfrage generell ist nicht das Problem.
Das ganze geht über das Thema "Heimat" und es soll eine Spontan-Beantwortung mit 5 Schlagwörtern erfolgen.Danach will ich ein weiteres Formular erscheinen lassen (darunter) wenn also auf den Weiter-Button gedrückt wurde und die Benutzereingaben sollen in Variablen gespeichert werden und wieder im Formular zurückgegeben werden. Am Schluss soll das ganze mit einer Rechenaufgabe als Spamschutz abgerundet werden.
Hier meinen Code den ich bis jetzt habe:
PHP
Alles anzeigen<?php //Variablen deklarieren um gesendete Objekte einfacher zu packen $spontan = $_POST['spontan']; $geschlecht = $_POST['geschlecht']; $alter = $_POST['altersgruppe']; /*$zip = $_POST["zip"]; $zip2 = $_POST["zip2"]; $fehler2['sicherheit'] = (md5($_POST["zip"]) != ($_POST["zip2"])); $fehler2 = array("sicherheit"=>"",); $sicherheit = 'test'; --> Für Spamschutz wichtig*/ ?>
HTML
Alles anzeigen<section> <!--Inhalt--> In kürze wird eine Umfrage bereit stehen. <br> <?php error_reporting(E_ALL); //Testphase -> alle Fehler und Warnungen ausgeben if(isset($_POST['weiter'])){ //wenn Weiter-Button gedrückt $fehler = array(); //$fehler ist anfangs ein leeres array //Eingabefeld prüfen if(!empty($spontan)){ $spontan = $_POST['spontan']; }else{ $fehler[] = 'Bitte antworte spontan'; } //fehler vorhanden? if(empty($fehler)){ //keine Fehler vorhanden /*Hier soll dann das nächste Formular "erstellt" werden*/ }else{ //Fehler vorhanden -> ausgeben foreach($fehler as $err){ echo $err.'<br>'; } } echo $spontan; //für Testphase } //if(isset($_POST['weiter'])) ENDE ?> <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST"> <table cellspacing="5"> <thead> <tr> <th colspan="4">Wir bitten euch um eure Meinung</th> </tr> <tr> <th class="erkl" colspan="4">Bitte füllen Sie alle mit <span class="pf">*</span> gekennzeichneten Felder aus (Pflichtfelder)</th> </tr> </thead> <tfoot> <tr> <td colspan="4"><input type="submit" name="weiter" id="weiter" value="Weiter" /></td> </tr> </tfoot> <tbody> <tr> <td rowspan="2" colspan="2"><span class="pf">*</span> Was bedeutet für dich Heimat?<br><span class="ht">~ 5 Wörter, Trennung p. [Enter], möglichst spontan ~</td> <td colspan="2"><textarea rows="6" name="spontan" id="spontan" value="<?php $spontan; ?>"></textarea></td> </tr> </tbody> </table> </form> </section>
Wenn ihr mir recht zeitnah helfen könntet wäre das echt cool
-
-
ja Moment das hier ist doch nur für im SQL oder?
Zitat
INSERT INTO `points`
SET
`mitglied_id` = 2,
`punkte` = 22,
`monat` = MONTH(NOW()), -- monat = DER MONAT VON (JETZT())
`jahr` = YEAR(NOW()) -- jahr = DAS JAHR VON (JETZT())
ON DUPLICATE KEY UPDATE -- wenn schon vorhanden, dann update:
`punkte` = `punkte` + 22
;wie wäre der passende PHP-Snippet dazu?
also wie mache ich das dann in meinem bsp?
-
Zitat
$sQl = mysql_query("INSERT INTO ON DUPLICATE KEY UPDATE rangliste_neu4 (name, ".$monat2.") VALUES ('$name', '$monat')");
// wenn Daten in Datenbank eingetragen
if($sQl) {
echo "<br>Punkte erfolgreich eingetragen";
}//ansonsten
else {
echo "<br>Es konnte leider keine Verbindung zur Datenbank hergestellt werden";Die letztere...
"Es konnte leider keine Verbindung zu Datenbank hergestelt werden" -
Das bekomme ich raus wenn ich für meinen Vater das ganze eingebe:
ZitatSELECT * FROM `autority` WHERE HIGHER(`benutzername`) = 'zippo2005' AND `passwort` = 'c82d888b9845549ea6607d91b01f7e86' AND `aktiviert` = 1
Pswd ist natürlich in md5
EDIT:
wenn ich wieder auf normales SQL umstelle also statt mysqli, mysql benutze, so funktioniert es wieder...
-
aso... dachte es gibt in xampp direkt ne Funktion wie sicher oder sooo... xD danke
funktionierte leider nicht... -
häh Moment ja das verwirrt mich grd ein wenig...
aber weshalb gibt er ein false zurück?
Erklärung wäre sehr nett...
EDIT:
Also wenn ich das richtig versteh, liegt das an der Eingabe bzw dem Vergleich der Eingabe mit dem Eintrag in der DB...
Wenn der Cookie Hash stimmt, so gibt er einen richtigen wert mit...Wenn aber die benutzereingabe mit der dem Eintrag in der DB nicht stimmt kann er keinen Wert zurückgeben d.h. False... das bedeutet das mit der Eingabe oder dem Eintrag in der DB was nicht stimmt nicht?
-
ok und wie? xD
hab mich noch nicht so durchgelesen -
-
Hi Leute,
ich stelle grd meine Website auf mysqli um und bekomme nun folgene Fehlermedung dank <?php error_reporting(E_ALL); ?> :
ZitatWarning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\neu\login.php on line 88
hier das passende code snippet (Betroffenes ist FETT markiert):
PHP
Alles anzeigen<?php // Session starten session_start(); // Variablen deklarieren $_SESSION['angemeldet'] = false; $benutzername = ''; $passwort = ''; $fehlermeldung = ''; // Funktion zum verbinden zur Datenbank function db_connect() { // Zugangsdaten für die DB $dbhost = 'localhost'; $dbuser = 'root'; /*$dbpass = '******';*/ $dbname = 'DB1447462'; // Verbindung herstellen und Verbindungskennung zurückgeben $conid = mysqli_connect( $dbhost, $dbuser/*, $dbpass */) or die( 'Verbindungsfehler!' ); if (is_resource( $conid )) { mysqli_select_db( $dbname, $conid ) or die( 'Datenbankfehler!' ); } return $conid; } // Prüfen ob ein Cookie existiert und zu einem gültigen User gehört if (isset( $_COOKIE['UserLogin'] )) { // Wert aus dem Cookie mit dem Wert in der Datenbank vergleichen $conid = db_connect(); $sql = "SELECT `id` FROM `autority` WHERE `cookie_hash` = '" .mysqli_real_escape_string( $conid, $_COOKIE['UserLogin'] ). "' AND `aktiviert` = 1"; $ergebnis = mysqli_query( $sql, $conid ); // Stimmt der Cookie Hash überein, wurde 1 Datensatz gefunden if (mysqli_num_rows($ergebnis) == 1) { // Wenn der Hash aus dem Cookie mit dem aus der DB übereinstimmt, // Session Variable setzen und auf die geheime Seite weiterleiten $_SESSION['angemeldet'] = true; while($row = mysqli_fetch_object($ergebnis)) { $_SESSION["user"] = $row->benutzername; } header( 'location: versteck.php' ); exit; } } // Wenn das Formular abgeschickt wurde if (isset( $_POST['login'] )) { // Maskierende Slashes aus POST Array entfernen if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); } // Benutzereingabe umladen, von Leerzeichen befreien und $benutzername = strtolower( trim( $_POST['benutzer'] ) ); $passwort = md5( trim( $_POST['passwort'] ) ); // Benutzereingabe mit User in der Datenbank vergleichen $conid = db_connect(); $sql = "SELECT * FROM `autority` WHERE LOWER(`benutzername`) = '" .mysqli_real_escape_string( $conid, $benutzername ). "' AND `passwort` = '" .mysqli_real_escape_string( $conid, $passwort ). "' AND `aktiviert` = 1"; $ergebnis = mysqli_query($conid, $sql); // Stimmen die Benutzereingaben überein, wurde 1 Datensatz gefunden -->if (mysqli_num_rows($ergebnis) == 1)<-- { // Abfrageergebnis fetchen $usercookie = mysqli_fetch_assoc( $ergebnis ); // Wenn die Anmeldung korrekt war Session Variable setzen, // COOKIE an Browser schicken und auf die geheime Seite weiterleiten $_SESSION['angemeldet'] = $usercookie['id']; setcookie( 'UserLogin', $usercookie['cookie_hash'], time()+2 ); header( 'location: versteck.php' ); exit; } else { $fehlermeldung = '<br><h4>Die Anmeldung war fehlerhaft!</h4><br>'; } } ?>
Was mich wundert, dass er nicht schon beim vergleichen des hash meckert...
hoffe ihr könnt mir helfen! -
Leute, weiß irgendwer wie man phpMyAdmin in XAMPP updatet?
neueste Version ist schon heruntergeladen und entpackt...
Wie muss ich weiter verfahren? -
Hallo,
danke für den Tipp, habe ich eben ausprobiert, dann schreibt er mir die Fehlermeldung, (die von mir gewählte) wenn das Eintragen nicht funktioniert hat "Es konnte leider keine Verbindung zur Datenbank hergestellt werden!"
Außerdem hab ich mal den hier eingesetzt:
[PHP]<?php error_reporting(E_ALL); ?>[/PHP]und der spukt mir das hhier aus:
Zitat
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\neu\versteck.php on line 21Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\neu\rechteranking.php on line 9
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\neu\ansprache.php on line 8
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\neu\versteck.php on line 480
Was hat das nun auf sich?
wie muss ich das mit dem mysqli machen?
UPDATE:
Das mit dem mysqli habe ich nun erledigt... aber warum kommt dann die Fehlermeldung?
-
was wars jetzt?
-
also da ich ein id-feld hab, dann kann ich das ja benutzen... oder?
PHP
Alles anzeigen<?php // Wenn Formular abgeschickt if(isset($_POST["send"])) { $server = "localhost"; $benutzer = "root"; $data = "rangliste"; // Zugangsdaten zum Verbinden mit dem MySQL-Server $dbconnection = mysql_connect($server, $benutzer) or die ("Fehler mysql_connect: ".mysql_error()); // Auswahl der zu verwendenden Datenbank auf dem Server mysql_select_db($data) or die ("Fehler bei select_db: ".mysql_error()); //Variablen definieren $name = $_POST["name"]; $monat = $_POST["punkte"]; $monat2 = $_POST["monat"]; /*$.$monat2. = $_POST["punkte"];*/ //Hilfe für das Entwickeln.... $echo = "Name: ".$name.", Punkte: ".$monat.", Monat: ".$monat2.""; //ebenfalls Hilfe für das Entwickeln... echo $echo; // wenn das nicht leer ist if(!empty($name) && !empty($monat2) && !empty($monat)){ // Daten in Datenbank eintragen $sQl = mysql_query("INSERT INTO ON DUPLICATE KEY UPDATE rangliste_neu4 (name, ".$monat2.") VALUES ('$name', '$monat')"); // wenn Daten in Datenbank eingetragen if($sQl) { echo "<br>Punkte erfolgreich eingetragen"; }//ansonsten else { echo "<br>Es konnte leider keine Verbindung zur Datenbank hergestellt werden"; } }//Aber wenn das leer ist... else { echo "<br>Bitte füllen Sie alle Felder aus"; } } ?>
Muss ich dann noch die id abfragen, oder ?!
-
Also damit ich ein Update machen kann, muss ich jedem Feld wo ich ein Update der Daten machen möchte einen Unique-Schlüssel geben?
-
ok wie wäre das dann mit meinem Bsp obendrüber?
und was hat das mit dem unique so auf sich? hab ich nämlich nicht vergeben
-
also deine Tabelle für deinen Admin löschst du wieder, da diese ja besteht aber mit Fehler... da das script was du uns "zu Verfügung gestellt hast" funktioniert einwandfrei, bei mir kam keine Fehlermeldung als ich das im localhost (Xampp) bei meinem phpmyadmin eingetragen habe.
diesen script nimmst du und machst in der zeile SQL deisen script rein und dann auf "ok" ...
das sollte eig funktionieren...
-
Bzw dass das:
[PHP]
$sQl = mysql_query("INSERT INTO punkte_neu4 (name, ".$monat3.") VALUES ('$name2', '$monat2')");
[/PHP]zu einem Update wird, da der Ersteintrag von mir per Hand gemacht wird...
-