 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
16.12.2002, 01:20
|
#1
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Gernsbach
|
Abfrage
Hi @ll,
bei meiner Linkliste auf http://www.paulke.com sind mir zwei Fehler aufgefallen und ich weiss nicht wie ich diese beheben kann... Ich habe sämtliche mir zur Verfügung stehende Lektüre durchgesehen, die Fehler sind aber nirgendwo explizit aufgeführt.
Zum einen:
Wenn jemand doppelt auf den Link in der Mail klickt, so wird er auch zwei oder mehrmals in der Liste gespeichert. D.h. es müsste doch möglich sein, z.B. die Nachnamen und Vornamen auf doppelte Einträge zu überprüfen.
Zum zweiten:
Wenn jemand z.B. von Namen heisst, und dieses im Nachnamen auch eingibt, schneidet mir der Link immer den Namen nach dem erstem Wort ab. Soll ich hier vielleicht die Funktion trim() mit einbauen?
Vielen Dank für die Hilfe...
BRIX

|
|
|
16.12.2002, 08:28
|
#2
|
|
TP-Veteran
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
|
poste doch bitte mal das php-skript für die anmeldung!
|
|
|
16.12.2002, 10:30
|
#3
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
bau dir deine app anders auf. speichere den namen schon direkt beim mailversand und füge ein 'aktivieren' flag ran. dieses setzt du dann via mailklick. und dann kann der user tausendmal draufdrücken - der status wird sich dann nicht mehr ändern.
voraussetzung, du schickst ihm auch noch eine eindeutige id mit dem link mit, da du ja schon auf einen bestehenden datensatz zurückgreifst.
dein zweites problem würde sich übrigends auch mit der methode lösen, da du dir ersparst, den vollen namen über den link mitzuschicken.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
16.12.2002, 21:10
|
#4
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Gernsbach
|
Zitat:
Original geschrieben von jph
poste doch bitte mal das php-skript für die anmeldung!
|
Hallo, vielen Dank für die Antworten. Zum allgemeinem Verständnis poste ich mal das Script hier... :-)
Script:
PHP-Code:
<td height="134" valign="top">
<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
//Hier der allgemeine Teil des Scripts mit Datenbankanbindung.
<?php
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
$result = mysql_query($sql);
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";}
?>
<br>
<br>
<br>
<hr>
<br>
Sie haben hier die Möglichkeit noch andere Personen anzumelden. Sollten
Sie dieses nicht vorhaben, können Sie hier die Seite schließen,
oder hier zur Homepage zurückgehen.<br>
<br>
<br>
<table width="100%" border="0">
<tr>
<td width="40%"><div align="right">Ihr Vorname:</div></td>
<td width="60%"> <input name="vorname" type="text" id="vorname" size="20" onfocus="style.background='<?php echo $bgcolor; ?>'" onblur="style.background='<?php echo $bgcolorfeld; ?>'"></td>
</tr>
<tr>
<td><div align="right">Ihr Nachname:</div></td>
<td> <input name="nachname" type="text" id="nachname" size="20" onfocus="style.background='<?php echo $bgcolor; ?>'" onblur="style.background='<?php echo $bgcolorfeld; ?>'"></td>
</tr>
<tr>
<td><div align="right">Ihre eMail-Adresse:</div></td>
<td> <input name="email" type="text" id="vorname3" size="20" onfocus="style.background='<?php echo $bgcolor; ?>'" onblur="style.background='<?php echo $bgcolorfeld; ?>'"></td>
</tr>
<tr>
<td><div align="right">Ihre Homepage:</div></td>
<td> <input name="homepage" type="text" id="vorname4" size="20" onfocus="style.background='<?php echo $bgcolor; ?>'" onblur="style.background='<?php echo $bgcolorfeld; ?>'"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Absenden" onfocus="style.background='<?php echo $bgcolor; ?>'" onblur="style.background='<?php echo $bgcolorfeld; ?>'">
</div></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td height="19" valign="top"><br>
<br>
</td>
</tr>
<tr>
<td height="34" valign="top"> <div align="center"><strong>[<a href="index.php">zurück
zur Startseite</a>]<br>
<br>
<br>
<br>
</strong></div></td>
</tr>
<tr>
<td height="29" valign="top"><div align="center">
<?php echo $copyright; ?></div></td>
Ich werde noch etwas anderes versuchen...
Danke für die HILFE...

Geändert von mike (17.12.2002 um 00:14 Uhr).
|
|
|
16.12.2002, 23:11
|
#5
|
|
TP-Supporter
Registriert seit: Feb 2002
Ort: Hamburg
|
du solltest auch gleich beim anmelden überprüfen ob der datensatz schon existiert. sonst kann man sich ja trotzdem tausendmal anmelden
das machst du einfach indem du überprüfst ob vorname in kombination mit nachname und evtl domain schon einmal vorhanden ist (hier einfach die mysql_num_rows benutzen) und dann kannst du falls anzahl >= 1 einen fehler ausgeben. andernfalls kannst du einfach das ganze normal einfügen lassen.
das mit dem aktivieren flag ist, wie bereits von longfang erwähnt, zu empfehlen.
|
|
|
17.12.2002, 00:16
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
ich werd aus deinem script nicht schlau.
was geanau macht das und von wo kommen die daten her, die du insertest?
wer ruft das script auf?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
18.12.2002, 00:15
|
#7
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Gernsbach
|
Zitat:
Original geschrieben von Longfang
ich werd aus deinem script nicht schlau.
was geanau macht das und von wo kommen die daten her, die du insertest?
wer ruft das script auf?
|
Hi Longfang, Hi Sebi,
das Script holt die Informationen aus der config.php und die Einträge aus der anmelden.php. Sobald die Anmelden PHP abgeschickt ist, bekommt der User eine Mail mit dem Bestätigungslink. Bis hierhin habe ich es geschafft. Aber jetzt bin ich halt am Problem. Habe aufgegriffen das ich mit der Funktion msql_num_rows() die Anzahl der Zeilen zurückgeben kann. Ich habe jetzt folgenden Script ausprobiert und bekomme immer folgende Fehlermeldung:
Geliefertes Argument ist nicht ein gültiges MySQL Resultat.
Der Code sieht da jezt so aus:
<?php
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);
$vergleichen = mysql_num_rows("vorname, nachname");
if($vergleichen ==0)
{
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
}
$result = mysql_query($sql);
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";
?>
Vieleicht sieht ja einer von Euch jetzt eine passende Lösung. Ich werde zwar weiterprobieren, aber schwer ist es für einen Anfänger wie mich schon...
Gruß BRIX

|
|
|
18.12.2002, 16:25
|
#8
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Äh, bevor Du irgendwas aus der Datenbank "vergleichen" willst, musst Du doch erstmal Daten holen via SELECT dies, das FROM tabelle ...
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
19.12.2002, 19:58
|
#9
|
|
TP-Supporter
Registriert seit: Feb 2002
Ort: Hamburg
|
so sollte es gehen.
PHP-Code:
$select=mysql_query("SELECT vorname, nachname FROM tabelle");
$vergleichen = mysql_num_rows($select);
if($vergleichen == 0)
{
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
}
else{
$result = mysql_query($sql);
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";
}
|
|
|
20.12.2002, 10:42
|
#10
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
sorry sebi, aber was soll gehen?
spätestens nach dem ersten datensatz, der gespeichert wird, ist ruhe im keller, da du immer mehr als 0 datensätze mit deinem vorgehenden select rausbekommst.
$select=mysql_query("SELECT id FROM tabelle where vorname=$vorname and nachname=$nachname");
triffts wohl eher.
deine if abfrage verstehe ich nicht.
if -then -else sind entweder - oder abfragen.
wenn 0 dann macht er dir einen string namens $sql und sonst nichts.
wenn > 0 dann fügt er dir einen string namens $sql (von wo?) ein.
das stimmt also nicht ganz.
$sql = "insert...."
if ($ergebnis == 0)
mysql_query($sql)
__________________
Gehelft? Hier kannst du dich bedanken.
mike
Geändert von mike (20.12.2002 um 10:49 Uhr).
|
|
|
27.01.2003, 13:30
|
#11
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Gernsbach
|
Linkliste Lösung
Hi Leutz,
hier die Antwort auf das Problem...
Mit Hilfe eines anderen Forums bin ich auf die Lösung gekommen...
Vielen Dank für alle Helfer.
Hier der Code:
<?php
// Verbindung zur DB herstellen
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);
// alle Zeilen aus der DB, auf die die eingegebenen Daten zutreffen,
// sollen gezählt werden
$user = "SELECT * FROM link WHERE vorname='$vorname' AND nachname='$nachname' AND email='$email' AND homepage='$homepage'";
$result = mysql_query($user);
$num_rows = mysql_num_rows($result);
// Falls keine passenden Zeilen gefunden wurden
// ist $num_rows=0
if($num_rows==0 || $num_rows=='') {
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
$result = mysql_query($sql);
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";
} else {
echo "<h3>Ihre Daten sind doppelt</h3>";
}
?>
Gruß BRIX

|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:59 Uhr.
|
 |