Linkliste

Wenn du Fragen zu EasyHP hast, eröffne hier ein Thema.

Moderator: Supporter

Antworten
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Linkliste

Beitrag von matze93 »

Hi,
ich habe ein Problem (mal wieder).
Ich habe eine Linkliste erstellt (komplette Codes werden als Download vielleicht freigegeben). Jedoch funktioniert es nicht, dass der Inhalt in die Datenbank übernommen wird. Die Ausgabe aus der Datenbank hat aber geklappt.
Wo ist hier der Fehler?

Code: Alles auswählen

<div align="center">
<?php
$benutzer="xxxxx";
$pwd="xxxxx";
$database="xxxxx";

mysql_connect("localhost","$benutzer","$pwd");//Verbindung Zur Datenbank aufnehemen
mysql_select_db ("$database"); 

if($action=="link"){//Wenn das Formular abgeschickt wurde



  //Neuen Link in die Datenbank eintragen
  $link_SQL_insert="INSERT INTO EasyHP_links (url,name,beschr,autor,mail) VALUES ('$url','$name','$beschr','$autor','$mail')";
  $bool=mysql_query($link_SQL_insert);
  if($bool==1) echo "Link wurde aufgenommen<br>";
  if($bool<>1) echo "Beim Aufnehmen des Links ist ein Fehler aufgetreten<br>"; 
  
  //Mail an Webmaster senden um über neuen Link zu verständigen
$recipient="Hier deine e-Mailadresse";
$subject="Neuer Link wurde in die Linkliste eingetragen";
$header="Von: " . $mail . "n";
$mail_body= "Jemand hat einen neuen Link eingetragen:";
$mail_body.=$url;

mail($recipient,$subject,$mail_body,$header);


mysql_close(); 

?>
<br><br><br>
<a href="links.php">Zurück</a> zur Linkliste!
<?php

}else{

//Keinen Kommentar, einfach ein Formular

?>

<form action=add_link.php method=post>
  <table width="400" border="0" cellspacing="2" cellpadding="2">
    <tr valign="middle">
      <td>Linkname:</td>
      <td>
        <input type="text" name="name" size="25" maxlength="100">
    </td>
  </tr>
    <tr valign="middle">
      <td>Adresse(mit http://):</td>
      <td>
        <input type="text" name="url" size="25" value="http://www" maxlength="100">
    </td>
   <tr valign="middle">
      <td>Beschreibung(höchstens 255 Zeichen):</td>
      <td>
        <textarea name="beschr" rows="5" cols="40"></textarea>
    </td>
  </tr>
    <tr valign="middle">
      <td>Verfasser:</td>
      <td>
      <input type="text" name="autor" size="25" maxlength="30">
    </td>
  </tr>
    <tr valign="middle">
      <td>E-Mail:</td>
      <td>
      <input type="text" name="mail" size="25" maxlength="30">
    </td>
  </tr>
    <tr>
      <td>
        <div align="center">
        <input type="hidden" name="action" value="link">
        <input type="submit" name="Submit" value="Eintragen">
      </div>
    </td>
  </tr>
</table>
</form>

<?php
}
?>
</div> 
Und noch etwas: kann ich die Datenbank-Einstellungen irgendwie includen, sodass ich die Verbindung über EasyHP bekomme? Und kann ich dann z.B.

Code: Alles auswählen

INSERT INTO EasyHP_links
umschreiben zu

Code: Alles auswählen

INSERT INTO ' . LINKS_TABLE .
?

Danke schon mal im Vorraus!
EasyHP
Administrator
Administrator
Beiträge: 731
Registriert: 1. April 2007, 17:42

Re: Linkliste

Beitrag von EasyHP »

Hallo,

die Variable

Code: Alles auswählen

$action
ist nicht definiert. Also kommst du nicht mal in die If-Anweisung hinein, folglich wird nichts ausgeführt. Die Vorlage für eine in EasyHP eingebundene Seite lautet:

Code: Alles auswählen

<?php

/*
* File: NAME_DER_DATEI.php, not admin
* Package EasyHP
* Version: Stable Release - v1.2.3, August 25th, 2009
* Copyright (c) 2007-2009 EasyHP CMS
* License: http://license.easyhp.org EasyHP CMS Public License (ECPL)
*/

define("IN_EASYHP", true);

include "includes/mysql.php";
include "common.php";

/* 
  CODE 
 */

footer(0);

?>
Außerdem mache bitte keine Formulare mit Tabellen. Das ist scheusslich.

LG, Tim
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Linkliste

Beitrag von matze93 »

Danke für deine Antwort.
Meine linklist.php sieht jetzt so aus:

Code: Alles auswählen

<?php

define("IN_EasyHP", true);

if (!isset($_SESSION['captcha']) AND $_COOKIE['captcha_set'] != 'TRUE') {
	header("Location: captcha.php?link=linklist.php");
}

include "includes/mysql.php";
include "common.php";
include "includes/website.php";


$link_select_sql="SELECT * FROM . LINKS_TABLE . ORDER BY name";
$link_select_result=mysql_query($link_select_sql);

mysql_close(); 
//Jetzt folgt die Ausgabe
?>
<div align="center" margin-top="10px">
<h2>Linkliste</h2>

<?php
while($links=mysql_fetch_array($link_select_result)){ //Eine while Schleife um alle EInträge auszugeben
?>

Link: <a href="<? echo $links['url']; ?>" target="new"><? echo $links['name']; ?> </a><br>
Von: <a href="mailto:<? echo $links['mail']; ?>"><? echo $links['autor']; ?> </a><p>

<?php
echo $links['beschr']
?>

<br>
<hr width="100%" noshade  size="1">
<p>


<?php
}
?>
 <div align="left"><a href="add_link.php">Link hinzufügen</a></div><? //Hier der Link um neue Links einzutargen *g* ?>
 <div align="right"><a href="add_link.php">Link hinzufügen</a></div> <? //Nochmals ?>

</div> 

<?php

footer(0);

?>
Wie kann ich da die add_link.php einbauen, sodass ich nur ein Code habe?

Code: Alles auswählen

<?php

define("IN_EasyHP", true);

if (!isset($_SESSION['captcha']) AND $_COOKIE['captcha_set'] != 'TRUE') {
	header("Location: captcha.php?link=linklist.php");
}

include "includes/mysql.php";
include "common.php";
include "includes/website.php";

if($action=="link"){//Wenn das Formular abgeschickt wurde

  //Neuen Link in die Datenbank eintragen
  $link_SQL_insert="INSERT INTO . LINKS_TABLE . (url,name,beschr,autor,mail) VALUES ('$url','$name','$beschr','$autor','$mail')";
  $bool=mysql_query($link_SQL_insert);
  if($bool==1) echo "Link wurde aufgenommen<br>";
  if($bool<>1) echo "Beim Aufnehmen des Links ist ein Fehler aufgetreten<br>"; 
  
  //Mail an Webmaster senden um über neuen Link zu verständigen
$recipient="Hier deine e-Mailadresse";
$subject="Neuer Link wurde in die Linkliste eingetragen";
$header="Von: " . $mail . "n";
$mail_body= "Jemand hat einen neuen Link eingetragen:";
$mail_body.=$url;

mail($recipient,$subject,$mail_body,$header);


mysql_close(); 

?>
<br><br><br>
<a href="linklist.php">Zurück</a> zur Linkliste!
<?php

}else{

//Keinen Kommentar, einfach ein Formular

?>

<form action=add_link.php method=post>
Linkname: <input type="text" name="name" size="25" maxlength="100"> <br>
Adresse(mit http://): <input type="text" name="url" size="25" value="http://www" maxlength="100"> <br>
Beschreibung(höchstens 255 Zeichen): <textarea name="beschr" rows="5" cols="40"></textarea> <br>
Verfasser: <input type="text" name="autor" size="25" maxlength="30"> <br>
E-Mail: <input type="text" name="mail" size="25" maxlength="30"> <br>
<input type="hidden" name="action" value="link">
<input type="submit" name="Submit" value="Eintragen">
</form>

<?php
}

footer(0);

?>
Und wie muss die $action aussehen?
Und war das mit Links_Table so richtig?
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Linkliste

Beitrag von daniel »

matze93 hat geschrieben:Wie kann ich da die add_link.php einbauen, sodass ich nur ein Code habe?
versuch es mal damit:

Code: Alles auswählen

if ($action=="new" or $action=="link"){
//code der add_link.php ohne Header und footer ;)
}
dahinter setzen.
und statt

Code: Alles auswählen

<a href="add_link.php">Link hinzufügen</a>
den Link verwenden:

Code: Alles auswählen

<a href="linklist.php?action=new">Link hinzufügen</a>
Und wie muss die $action aussehen?

Code: Alles auswählen

$action = $_GET['action']
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Linkliste

Beitrag von matze93 »

ok ich teste das mal.
Danke, jetzt habe ich schon mal mehr gelernt.
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Linkliste

Beitrag von matze93 »

Nee, geht leider nicht, mein Code sieht jetzt so aus:

Code: Alles auswählen

<?php

define("IN_EASYHP", true);

if (!isset($_SESSION['captcha']) AND $_COOKIE['captcha_set'] != 'TRUE') {
   header("Location: captcha.php?link=linklist.php");
}

include "includes/mysql.php";
include "common.php";
include "includes/website.php";

$action = $_GET['action']

$link_select_sql="SELECT * FROM . LINKS_TABLE . ORDER BY name";
$link_select_result=mysql_query($link_select_sql);

//Jetzt folgt die Ausgabe
?>
<div align="center">
<h2>Linkliste</h2>

<?php
while($links=mysql_fetch_array($link_select_result)){ //Eine while Schleife um alle EInträge auszugeben
?>

Link: <a href="<? echo $links['url']; ?>" target="new"><? echo $links['name']; ?> </a><br>
Von: <a href="mailto:<? echo $links['mail']; ?>"><? echo $links['autor']; ?> </a><p>

<?php
echo $links['beschr']
?>

<br>
<hr width="100%" noshade  size="1">
<p>


<?php
}
?>
<div align="left"><a href="linklist.php?action=new">Link hinzufügen</a></div><? //Hier der Link um neue Links einzutargen *g* ?>
<div align="right"><a href="linklist.php?action=new">Link hinzufügen</a></div> <? //Nochmals ?>

</div>

<?php

if ($action=="new" or $action=="link"){
  //Neuen Link in die Datenbank eintragen
  $link_SQL_insert="INSERT INTO . LINKS_TABLE . (url,name,beschr,autor,mail) VALUES ('$url','$name','$beschr','$autor','$mail')";
  $bool=mysql_query($link_SQL_insert);
  if($bool==1) echo "Link wurde aufgenommen<br>";
  if($bool<>1) echo "Beim Aufnehmen des Links ist ein Fehler aufgetreten<br>";
 
  //Mail an Webmaster senden um über neuen Link zu verständigen
$recipient="Hier deine e-Mailadresse";
$subject="Neuer Link wurde in die Linkliste eingetragen";
$header="Von: " . $mail . "n";
$mail_body= "Jemand hat einen neuen Link eingetragen:";
$mail_body.=$url;

mail($recipient,$subject,$mail_body,$header);


mysql_close();

?>
<br><br>
<a href="linklist.php">Zurück</a> zur Linkliste!
<?php

}else{

//Keinen Kommentar, einfach ein Formular

?>

<form action=linklist.php?action=new method=post>
Linkname: <input type="text" name="name" size="25" maxlength="100"> <br>
Adresse(mit http://): <input type="text" name="url" size="25" value="http://www" maxlength="100"> <br>
Beschreibung(höchstens 255 Zeichen): <textarea name="beschr" rows="5" cols="40"></textarea> <br>
Verfasser: <input type="text" name="autor" size="25" maxlength="30"> <br>
E-Mail: <input type="text" name="mail" size="25" maxlength="30"> <br>
<input type="hidden" name="action" value="link">
<input type="submit" name="Submit" value="Eintragen">
</form>

<?php
}

footer(0);

?>
Habe ich etwas falsch zusammengebaut? Jetzt wird nämlich nichts angezeigt. Vorher habe ich ja wenigstens die Anzeige gesehen, aber der Post hat nicht geklappt.
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Linkliste

Beitrag von daniel »

Code: Alles auswählen

$link_select_sql="SELECT * FROM . LINKS_TABLE . ORDER BY name";
:?: :?: :?:
Das soll funktioniert haben? Da wird der mysql-error() garantiert was zurückgeben.
außer bei dir gibt es eine Tabelle die . LINKS_TABLE . heißt. (mit Punkten)

bevor du eine Konstante einsetzten kannst, musst du erstmal den String beenden:

Code: Alles auswählen

$link_select_sql="SELECT * FROM ". LINKS_TABLE ." ORDER BY name";
Antworten